技术分享 | 做为测试,那些必须掌握的测试技术体系

软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。其目的是尽快尽早地发现在软件产品中所存在的各种问题,与用户需求、预先定义的不一致性。检查软件产品中可能存在的 Bug,并且编写缺陷报告,交于开发人员修改。软件测试人员的基本目标是发现软件中的错误。

软件测试技术就相当于是软件测试人员的武器。作为软件测试人员,必须要清楚了解可以通过哪些手段去保障产品的质量。只有知道了这些,才能更好的完成测试的工作。

软件测试分类

软件测试的分类可以按照不同的维度去划分,一般来说可以按照下面的这些维度去划分。

按开发阶段分类

  • 单元测试
  • 集成测试
  • 冒烟测试
  • 系统测试
  • 验收测试

按测试实施组织分类

  • α 测试:非正式验收测试
  • β 测试:内测后的公测

按测试执行方式分类

  • 静态测试:不启动被测对象的测试,比如代码走读,代码评审,文档评审,需求评审等。
  • 动态测试:启动被测试对象的测试,比如白盒测试,黑盒测试等。

按是否查看代码分类

  • 黑盒测试:指的是把被测的软件看作是一个黑盒子,不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。
  • 白盒测试:指的是把盒子盖子打开,去研究里面的源代码和程序结果。

按是否手工执行分类

  • 手工测试:由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。通常用于黑盒测试方法或系统测试阶段。
  • 自动化测试:把以人为驱动的测试行为转化为机器执行的一种过程。

按测试对象分类

  • 性能测试:检查系统是否满足需求规格说明书中规定的性能。
  • 安全测试:各种的攻击手段,例如 SQL 注入、XSS 等。
  • 兼容性测试:软件和硬件之间是否能够发挥很好的效率工作,会不会影响导致系统的崩溃。
  • 文档测试:测试软件产品中的各类文档。
  • 易用性测试:用户体验测试。
  • 业务测试:测试人员将系统的各个模块串接起来运行、模拟真实用户实际的工作流程,满足永续需求定义的功能进行测试的过程。
  • 界面测试:也称为 UI 测试。测试用户界面的功能模块的布局是否合理,整体风格是否一致、各个控件的放置位置是否符合客户的使用习惯,还要测试操作界面操作便捷性、导航简单易懂性、页面元素的可用性,页面元素的可用性、界面中文字是否正确,命名是否统一,页面是否美观、文字、图片组合是否完美。
  • 安装测试:测试程序的安装、卸载。

其他分类

  • 回归测试:修改了旧代码后,重新执行测试以确认修改后没有引入新的错误或导致其他代码产生错误。
  • 随机测试:指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
  • 探索性测试:试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

黑盒测试

黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。

采用这种测试方法,测试工程师把测试对象看作一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求文档,检查程序的功能是否符合它的功能说明。测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。

黑盒测试方法能更好、更真实地从用户角度来考察被测系统的功能性需求实现情况。在软件测试的各个阶段,如单元测试、集成测试、系统测试及验收测试等阶段中,黑盒测试都发挥着重要作用,尤其在系统测试和确认测试中,其作用是其他测试方法无法取代的。

白盒测试

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒法可以全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

白盒测试常用的方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法。

分层测试体系

其中 Unit 代表单元测试,API 代表接口测试,UI 代表页面级的系统测试。分层的自动化测试倡导产品的不同层次都需要自动化测试,这个金字塔也正表示不同层次需要投入的精力和工作量。对于测试金字塔,越靠下越容易自动化,越靠下成本越低,越靠下效率越高。

分层测试顾名思义就是分多个层次一个层次一个层次的测试,比如先测完中间接口层,再测最上层的界面。当然了,也可以同时测试。

分层测试的测试方法还是原来的测试方法,但对测试人员的代码能力还有自动化测试水平有较高要求,同时要求测试人员和开发团队真正的理解敏捷开发和敏捷测试,甚至要求开发团队达到开发即测试、测试即开发的能力。

单元测试

对软件中的最小可测试单元进行检查和验证。具体的说就是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

接口测试

接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。

接口测试可以更早介入,介入越早越能更早的发现问题,还可以缩短项目周期,能够发现更底层的 Bug,减少开发成本。

因为不同端(前端,后端)的工作进度不一样,所以要针对最开始出来的接口,以及需要调用其他公司的(银行,支付宝,微信,QQ 等)一些接口进行接口测试及验证数据,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

UI 测试

UI 测试测的是应用中的用户界面是否如预期工作。比如,用户的输入需要触发正确的动作,数据需要能展示给用户看,UI 的状态需要发生正确变化等。

对于 UI 测试,可以采用静态测试方法,也可以采用动态测试方法。

对于用户界面的布局,风格,字体,图片等与显示相关的部分测试应该采用静态测试,比如点检表测试,即将测试必须通过的项用点检表一条一条列举出,然后通过观察确保每项是否通过。

对用户界面中各个类别的控件应该采用动态测试,即编写测试用例或者点检表,对每个按钮的响应情况进行测试,是否符合概要设计所规定的条件,还可以对用户界面在不同环境下的显示情况进行测试。

UI 测试需要关注的内容包括通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览。各种访问方法 (Tab 键、鼠标移动和快捷键)是否支持。还有窗口的对象和特征,比如菜单、大小、位置、状态和中心等都符合标准。


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战 

三、Web自动化项目实战

四、App自动化项目实战 

五、一线大厂简历

六、测试开发DevOps体系 

七、常用自动化测试工具

八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到! 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/250015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

创建型模式之工厂方法模式

一、概述 1、工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类 2、工厂方法模式:不再提供一个按钮工厂类来统一负责所有产品的创建,而是将具体的按钮创建过程交…

Lua【通俗易懂】

目录 1.什么是lua❤️❤️❤️ 2.特点 ❤️❤️❤️ 3.安装 ❤️❤️❤️ 4.Lua使用❤️❤️❤️ 5.Lua的注释 ❤️❤️❤️ 6.数据类型 ❤️❤️❤️ 7.控制结构 1.什么是lua❤️❤️❤️ Lua是一种轻量、小巧的脚本语言,用标准C语言编写并以源代码形式开发。设计的目…

爬虫入门案例——Java还能用来写爬虫?

目录 前言 入门案例 依赖导入 爬虫代码 注意事项 爬取结果 总结 前言 我们在和Python程序员交流的时候,经常会听到他们谈论和爬虫相关的事,爬这个网站,爬那个网站的。这个时候如果听不懂的话,气氛就显得尴尬了。事实上我们…

Redis设计与实现之对象处理机制

目录 一、前言 二、对象处理机制 1、redisObject 数据结构,以及 Redis 的数据类型 2、 命令的类型检查和多态 3、对象共享 4、引用计数以及对象的销毁 三、对象的处理 1、Redis是如何处理字符串对象的? 2、Redis是如何处理列表对象的&#xff1f…

wireshark抓包分析HTTP协议,HTTP协议执行流程,

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取「HTTP协议」的数据包&#…

干货 | 一文搞定 pytest 自动化测试框架(一)

简介 pytest 是一个成熟的全功能 Python 测试工具,可以帮助您编写更好的程序。它与 Python 自带的 Unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。pytest 有以下实用特性: pytest 能够支持简单…

mysql的ON DELETE CASCADE 和ON DELETE RESTRICT区别

​​ON DELETE CASCADE​​​ 和 ​​ON DELETE RESTRICT​​ 是 MySQL 中两种不同的外键约束级联操作。它们之间的主要区别在于当主表中的记录被删除时,子表中相关记录的处理方式。 ON DELETE CASCADE: 当在主表中删除一条记录时,所有与之相关的子表中…

Linux CentOS 安装 MySQL 8

Linux CentOS 安装 MySQL 8 一、离线安装 MySQL 1.1 检查是否已安装 MySQL rpm -qa | grep mysql如果已经安装了 MySQL,您可以通过以下步骤卸载它。 1.2 卸载已安装的 MySQL rpm -ev mysql80-community-release-el7-7.noarch rpm -ev mysql-community-client-pl…

设计模式——外观模式(结构型)

引言 外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。 ​ 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下, 你需要负责所有对象的初始化工作、 管理其依赖关系并按正确的顺序执行方法等。…

第1章:企业级研发测试流程

通过实际(自研互联网)企业的研发流程一览图。 我们发现分为9个阶段,当然每个公司细节并不一样。 所以我希望你能理解这句话: 一切的流程、行为、结果都是围绕“产品质量”这4个字开展活动。而作为测试,你该考虑的是如何…

26.Java安卓程序设计-基于SSM框架Android的网店系统设计与实现

1. 引言 1.1 背景 介绍网店系统的背景,说明为什么设计这个系统以及系统的重要性。 1.2 研究目的 阐述设计基于SSM框架的Android网店系统的目标和意义。 2. 需求分析 2.1 行业背景 分析网店行业的特点和需求,以及目前市场上同类系统的不足之处。 …

2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行,包含源码。

一、下载ndk链接NDK 下载 | Android NDK | Android Developers 二、解压ndk后得到下面的文件,里面包含ndk-build.cmd,这个是用来编译的。 三、Android.mk和C源码。完整源码下载路径https://download.csdn.net/download/qq_37858386/88622702 3.1 A…

SpringIOC之LoadTimeWeavingConfigurer

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

spring 笔记七 Spring JdbcTemplate

文章目录 Spring JdbcTemplateJdbcTemplate概述JdbcTemplate开发步骤Spring产生JdbcTemplate对象 Spring JdbcTemplate JdbcTemplate概述 它是spring框架中提供的一个对象,是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如&am…

Python基础教程——制作一个宿舍管理系统(完整版,附源码)

今天我们一起学习一个新的小案例——宿舍管理系统。主要涉及列表、字典的初始化、增加、删除、修改和查询操作,以及函数的定义和调用。 一、需求: 有操作指引界面,显示操作号 能添加一个新的入住学生信息,包括学生姓名、宿舍号床…

vue3引入Echarts图表

说明:echarts是父组件,stack是子组件,将stack引入到echarts文件中 查看echarts.vue时可看到stack.vue中的图表 # # # 引入方式 第一步 Echarts官网:快速上手 - 使用手册 - Apache ECharts 第二步 在控制台安装Echarts模块…

25.Java程序设计-基于SSM框架的微信小程序校园求职系统的设计与实现

1. 引言 1.1 背景 介绍校园求职系统的背景,说明为什么设计这个系统以及系统的重要性。 1.2 研究目的 阐述设计基于SSM框架的微信小程序校园求职系统的目标和意义。 2. 需求分析 2.1 行业背景 分析校园求职行业的特点和需求,以及目前市场上同类系统…

基于Java的教学信息反馈系统设计与实现(源码+调试)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于Java的教学信息反馈…

高频Postman接口测试面试题

一、Postman在工作中使用流程是什么样的? 新建集合管理根据接口所属的模块,在集合中不同模块下编写接口测试用例处理接口之间的数据关联操作添加环境变量在tests tab下中增加断言调试接口,确保接口能被正常调用批量运行用例或者导出通过Newm…

Dubbo 快速入门使用教程

文章目录 Dubbo 介绍Dubbo 入门使用一、Zookeeper 注册中心安装启动二、服务提供方三、服务消费方 Dubbo 介绍 dubbo 2.x版本官方文档 参考 Apache Dubbo 是一款 RPC(Remote Procedure Call 远程过程调用)服务开发框架,提供了远程调用方案和…