黑盒测试
又称功能测试或者基于需求的测试。
主要的测试方法包括边界值分析法、等价类划分法、错误推断法
边界值分析法:根据以往经验,大多数问题发生在数据的边界处。使用该方法需要,第一:确定测试单元输入信号的边界值;第二:用正等于边界值、略小于边界值、略大于边界值编写测试用例进行测试。
等价类划分法:把输入信号的范围分为若干子集,在每个子集中选取有少量有代表性的数据编写测试用例
错误推断法:根据经验分析,那些场景或者工况容易产生问题,针对性的设置用例进行测试
黑盒测试过程中边界值分析法是必不可少的,也是查找问题能力最强的。其次可以辅助使用等价类划分法编写一些用例。最后使用错误推断法补充一些用例。
白盒测试
又称结构测试或者逻辑驱动的测试。
在白盒测试又分为静态和动态两类。
静态是指不运行待测试的程序,通过代码检测、静态结构分析等通过工程师的逻辑思维去检查代码是否存在问题的方法。
动态是指运行待测试程序进行测试的方法统称。
白盒测试的目的:
a 对程序模块的所有独立的执行路径至少测试一次
b 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次
c 在循环的边界和运行界限内执行循环体
d 测试内部数据结构的有效性等
覆盖率
1)语句覆盖:所有的“语句”都要覆盖一遍。就是设计若干个测试用例,运行被测程序,使得每一个执行语句至少执行一次。
2)判定覆盖:包含语句覆盖,每个判断T、F各一次。使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。
3)条件覆盖:包含语句覆盖,每个条件T、F各一次是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。
4)判定条件覆盖:包含判定覆盖、条件覆盖。说白了就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖),同时每个判断本身所有的结果,也要至少执行一次(判定覆盖)。不难发现判定条件覆盖同时满足判定覆盖和条件覆盖,弥补了两者各自的不足,但是判定条件覆盖并未考虑条件的组合情况。
5)条件组合覆盖:每个条件的每种组合。在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。意思是说我们设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。
6)路径覆盖:所有路径至少执行一次。
语句覆盖是在所有的测试方法中一种最弱的覆盖
判定覆盖和条件覆盖比语句覆盖强,满足判定条件覆盖的测试用例一定满足语句覆盖、判定覆盖、条件覆盖
路径覆盖是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。
黑盒测试优缺点
优点
1、比较简单,不需要了解程序内部的代码以及实现
2、在用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题
3、在做软件自动化测试时较为方便
缺点
1、不可能覆盖所有的代码,覆盖率比较低,大概只能到达总代码量的30%
2、自动化测试的复用性较低
白盒测试优缺点
优点
1、帮助软件测试人员增大代码的覆盖率
2、提高代码的质量、发现代码中隐藏的问题
缺点
1、程序运行会有很多不同的路径,不可能测试所有的运行路径
2、测试基于代码,只能测试开发人员做的对不对,而不能知道设计的功能需求是否正确。
3、系统庞大,测试开销会非常大
单元测试
做单元测试时,覆盖度是衡量测试是否全面的,是否可靠的关键指标。覆盖度分为语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖
语句覆盖(Statement Coverage):设计测试用例,使被测程序中的每个语句至少被执行一次
判定覆盖(Decision Coverage,DC):又叫分支覆盖,要求程序中的每个判断的每个可能结果都应该被执行一次,即每个分支的“真”和“假”至少被执行一次。
条件覆盖(Condition Coverage,CC):程序中每个判定的每个条件的所有可能值至少执行一次
改进判定\条件覆盖(Modified Conditon and Decision Coverage,MC/DC):要求设计足够的测试用例,判定的每个条件的所有可能必须出现至少一次,并且每个判定的每个条件要独立地影响判定结果。
集成测试
介于单元测试和系统测试之间,验证检查各个模块接口是否能正常连接使用
系统测试
通过冒烟测试后,进行功能测试以及接口测试,性能测试等,把所有的功能都运行一遍,保证整个产品的质量:
验收测试
系统测试全部通过后,由产品,开发等以及最终用户体验;分为 正式验收测试,alpha测试和beta测试
回归测试
针对修复过的BUG,进行再一次的测试,避免bug的重现
版权归原作者 巳时桥 所有, 如有侵权,请联系我们删除。