前言
本章讲述软件测试的基本概念和一些基础知识介绍
一、软测概念及原则
-
概念:通过手工或者工具对 "被测对象"进行测试操作,从而验证实际结果与预期结果之间是否存在差异
-
软件测试的原则(七大原则):所谓的测试原则指的就是我们在执行测试工作时必须要遵守的一些规则。
1.测试证明软件存在缺陷:无论执行什么样的测试操作都保能证明当前软件是有缺陷的。
2.不能执行穷尽测试:有些功能是没有办法将所有的测试情况都逻列出来,所以任何的测试操作都有结束的时间。
3.缺陷存在群集现象:对于软件功能说,核心功能占 20%,非核心是 80%。在实际工作中我们会集中测试 20%的核心功能,所以这个部分发现缺陷的几率就会高于 80%。因此我们我 们就会遇到缺陷都集中在 20% 功能模块里的现象。
4.某些测试需要依赖特殊的环境:例如天气因素,冬天手机电池耗电快.
5.测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的开展。
6.杀虫剂现象: 同样的一个测试用例不能重的执行多次,因为软件会对它产生免疫。
7.不存在缺陷谬论:任何软件不可能是完美的。
二、软测分类思维导图
1)按照测试阶级分
- 软件的开发都会依据相应的开发模型,测试级别指的就在这个模型当中我们人为定义的开发步骤。其中对于测试来说我们最常见的一种级别分类如下:
1.单元测试[ UT unit test ]: 在软件测试中单元指的就是组成软件最小的底层代码结构,一般就是类、函数、组件( 当下的软件测试行业,不会刻意要求测试人员对源代码进行测试 )。
2.集成测试( IT system ingertaion test ): 将多个单元模块组合在一起,然后验证它们之间沟通的"桥梁"是否能正常工作( 接口测试 )
3.系统测试( ST system test ): 这是当前行业做的最多的一种测试。由测试人员充当用户然后对软件的功能主体进行测试。
-
(1) 功能测试:验证当前的软件主体功能是否可用。
-
(2) 兼容性测试:验证当前软件在不同的环境下是否还可以使用。
-
(3)安全测试:验证软件是否只是能授权用户提供功能使用。
-
(4)性能测试:相对于当前软件消耗的资源 它的产出能力。
4.验收测试:
- (1) α测试 ---- 内测(公司软测员工测,这时bug很多)
- (2) β测试 -----公测(给用户测,让用户提供建议,这时bug较少)
- (3) UAT( user acceptance test )测试---- 由客户派出对于业务非常精通的人员来使用该软件,从而对功能进行测试。
2)常见系统测试方法
- 1.按测试对象进行分类(下述三种方法当中的 “盒” 指的就是被测对象。)
1.白盒测试:这种测试的主体就是软件的底层代码,不会在意外在的界面是否 OK ,只要求底层功能实现,同时逻辑正确。
2.黑盒测试:这种测试就是指测试软件外在主体功能是否可用。
3.灰盒测试:介于二者之间( 接口测试 )
- 2.按测试对象是否运行分类
1.静态测试:指的就是测试不执行。
2.动态测试:将软件运行在真实的使用环境中进行测试。
- 3.按测试手段进行分类
1.手工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境。
2.自动化测试:所谓自动化主要有二种形式,一种是自已写测试脚本,另外一种就是通过第三方的工具对被测对象进行测试(可以高效率的去执行一些人工无法实现的操作)
三、软件质量
- 概念:描述当前软件是否好用,在当前的软件行业里我们所采用的一套标准是基于ISO组织制定的。需要我们记忆的就是软件质量的六大特性(简称方便记忆:功能靠用,效率可“以”):
1 功能性:软件需要满足用户显式或者稳式的功能。
2 易用性:软件易于学习 和上手使用。
3 可靠性:指的就是软件必须实现需求当中指明的具体功能。
4 效率性:类似于软件的性能。
5 可维护性:要求软件具有将某个功能修复之后继续使用的能力。
6 可移植性:当前软件可以从一个平台移植到另一个平台上去使用的能力。
- 场景题:
计算机求和,其中两个数求和之后,之前输入的数未清空.从程序员角度看:求和功能已经实现了,这不是一个缺陷。从软测师角度看:求和之后,原客户输入值未清空,是缺陷。作为一名软测工程师如何说服开发人员修改呢?
- 我们可以结合我们的软件质量来扯:软件有专门的软件质量标准来衡量一个软件是好还是坏,从易用性来看,我们分析,假如用户输入2和4,一点击求和的确能够看到6,单当他点击确认之后,对于用户来说,他可能会疑惑,我当前输入的值是已经计算过了还是没有计算过呢?其次,即使他记得自己计算了,他还需要手动去清空,有违易用性.若清空后,用户知道这是第二次计算了.
四、软件测试流程
1 需求分析
-
(1) 当前阶段的核心目的就是梳理清楚我们需要设计的点是什么。
-
(2) 需求的来源:需求规格说明书、API 文档、竟品分析、个人经验
2.设计用例:
-
(1) 用例就是用户为了测试软件的某个功能而执行的操作过程。
-
(2) 设计用例是有方法的( 等价类、边界值、判定表、因果分析、流程分析、场景法. )
3 评审用例: 对当前的用例进行添加或者删除。
4 配置环境
- (1) 环境:指的就是当前被测对象运行所需要的执行环境,做为测试人员需要具备配环
境的能力。【 一般情况下都会使用一键安装的集成环境 】 - (2) 环境分类:操作系统 + 服务器软件 + 数据库 + 软件底层代码的执行环境。
5.执行用例
-
(1) 一般在执行用例之前我们会做一个冒烟测试(快速的对当前软件的核心功能或者主体执行流程进行验证)如果冒烟测试阶段有问题,则可以将此版本回退给开发。 例如:电商网站核心是购物流程
-
(2) 如果冒烟测试通过那么才会开展示全面的测试。
6.回归测试及缺陷跟踪
-
(1) 回归测试指的就是当我们将某个缺陷提交给开发之后,由它们进行修复,修复完成之后需要测试认员再次对其进行测试【回归测试】
-
(2) 缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对其进行状态的跟踪。
7.输出测试报告: 将当前的测试过程中产生的数据进行可视化的输出。方便其它人去查看。
8. 测试结束: 当将整个测试过程中产生的一些文档进行整理归档,方便后续版本使用。