一、软件测试的定义
什么是软件测试?
找BUG,发现缺陷 ,通俗来讲就是在软件中找问题。
官方定义:
检查软件产品的是否符合设计的要求
确认软件产品是否符合用户的实际需求
提供软件产品的质量信息
投入较低的成本保障极大的降低劣质产品
验证软件产品的需求设计和实现的一致性
对软件质量的全面评估
揭示软件产品的质量风险
验证和确认
软件测试归根结底就是检查我们的产品是否符合我们实际的设计的一个要求,整个软件测试的过程就是属于验证和确认的过程。
测试的定义:
使用人工或者自动的手段或者测试某个系统的过程
目的在于检验它是否满足规定的需求
弄清预期结果和实际结果的差别
二、测试的目的和原则
目的:以最小的人力、物力和时间找出软件中潜在的错误和缺陷
原则:
证明软件中存在缺陷
不能穷尽测试
测试应该尽早介入
28原则
(80%的bug多发生在软件20%的模块;80%的用户只用到我们软件的20%的功能)
不存在缺陷谬论(所有的程序都有缺陷,你没测出来,或者这个缺陷不影响使用)
妥善保管一切文档(工作依据;回归测试)
三、测试的基本要求和方向
测试的标准
国际标准:ISO25010
国内标准:GBT20438;GBT18905
测试的基本要求:
外观界面测试
易用测试
兼容性测试
(eg:如果做的是一个网站,那么要看在各个不同的浏览器上运行看有没有问题;若做了一个IOS版app,那要看在IOS14,13,12等;应用程序:win10,win8,win7;Android:安卓7,8,9,10)
安全性测试
(不想让其他用户看到or个人隐私的一些东西;银行)
性能测试
功能测试(比如弱网之类的能不能正常运行)
四、bug的由来
Bug:小虫子,小臭虫,现在指代程序中的错误
(小虫子卡住了机器的运行)
五、测试的流程
1、测试的工作流程
需求分析
(阅读需求文档/产品文档,分析需求的点,参与需求评审)
测试计划和测试方案
(测试计划:测试整个项目的总体的规划,测试的范围,进度的安排,人力物力的安排,整体的测试策略,风险的评估,风险的规避
5w :why,when,who,what,where
为什么去做,何时去做,做哪里,如何去做
测试方案:how,怎么去做
被测试的目标,选取什么样的测试工具,测试的方法,测试的重点)
3. 设计测试用例
边界值、等价类…(后面有节笔记会说)
4. 执行测试用例
评估阶段、测试报告
六、测试用例
1、测试用例的概念
测试用例又叫做test case,是为某个特殊目标而编制的一组测试输入、执行条件以及测试结果,以便测试某个程序路径或核实是否满足某个特定需求。
测试用例的特性:
有效性
可复用性
易组织性
可评估性
可管理型
2、测试用例的要素
测试用例编号
测试项目
预置(前提)条件
测试输入
预期输入
操作步骤
测试用例标题
级别
·其他要素
用例的设计者
用例设计日期
对应的开发人员
测试结果
测试类型
3、测试用例的设计原则
明确性
代表性
简洁性
4、测试用例的设计方法
(1)等价类划分法
等价类:等价类是指某个输入域的子集合,在子集合中,各个输入数据对于揭露程序中的错误都是等效的,具有等价特性。
类型划分为有效等价类和无效等价类:
有效等价类
指对于程序的规格来说是合理的、有意义的输入数据构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类
指对程序的规格说明是不合理的、无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。利用无效等价类可校验程序对于无效数据的处理能力,检测程序的健壮性、容错能力。
注意:设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
·设计测试用例步骤
确定需求
确有效等价类和无效等价类
对每条等价类设计测试用例
案例:QQ登录
1、qq登录 6-10位的QQ号(闭区间:包括6和10位)
隐藏条件:qq号码必须是整数数字,不能以0开头
有效等价类:6位数字,7位,8位,9位,10位(不以0开头)
无效等价类:6位数字,7位,8位,9位,10位(以0开头)
小数,字母,特殊字符,汉字,组合
(2)边界值法
边界值分析法就是对输入或输出边界值进行测试的 ,也是一种黑盒测试。边界值分析法通常作为等价类划分法的补充,其测试用例来自等价类的边界。
长期的经验得知,大量的错误是发现在输入或输出范围的边界上,因此针对各种边界情况设计测试用例,可以查出更多错误。
等价类划分法的区别:
等价类划分法可以挑选等价范围内任意一个数据作为代表;边界值分析法要求每个边界值都要作为测试条件
边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况。
常见的边界值
边界点(上点):输入范围内的边界点
离点:离边界点最近的点
内点:输入范围内的任意一个点
(3)因果图法
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合,因=输入条件,果=输出结果。
·因果图法基本步骤
找出所有的原因,原因即输入条件或输入条件的等价类。
找出所有的结果,结果即输出条件。
明确所有输入条件之间的制约关系以及组合关系,哪些输出结果不能组合到一起,哪些输出结果可以组合到一起。
明确所有输入条件之间的制约关系以及组合关系,哪些输出结果不能同时输出,哪些输出结果可以同时输出。
找出什么样的输入条件组合会产生哪种输出结果。
1、案例:交通一卡通自动充值软件
系统需求
系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元;
若只输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
若只输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元;
若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;
若选择充值按钮后不输入纸币,提示错误。
第一步:列出所有的输入与输出以及他们的组合
第二步:找出输入对应的输出
第三步:测试用例
(4)判定表法
(5)正交表法
正交法,也叫正交实验法或者正交排列法,就是使用最小的测试过程集合获得最大的测试覆盖率。
(6)场景法
从起点,通过一系列操作步骤(事件),达成某一结果,到终点的测试过程。场景法主要用于冒烟测试。在通过了场景测试后,再通过其他方法进行更为细腻的测试。
(7)流程分析法
(8)错误推断法
根据经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。