软件测试的原则:
1、完全测试软件是不可能的
1.1输入量太大
1.2输出结果太多
1.3软件执行路径太多
在测试中我们往往会把重复的、无必要的测试条件剔除。
2、软件测试时有风险的行为
因为不能完全测试,那么在测试的过程中必然会漏掉一些软件的缺陷,
所以在测试的时候,我们应该做好哪些重要哪些不重要的测试选择。
3、没有完美的软件
没有软件是不存在缺陷的,只是暂时没有发现。
4、杀虫剂效应
引用第三点,在长时间不能有效的测试出软件缺陷的时候,就应该考虑
是否需要更换一个测试员或者是测试工具测试环境。
5、不是所有缺陷都需要修复
5.1修复的风险太大:需要考虑在修复这个缺陷的时候,是否会造成连锁反应,
导致软件的其它功能出现更大的问题。
5.2不算真正的缺陷:有的缺陷的产生可能是因为测试的错误或理解的错误造成,
超出需求范围的功能但是不影响软件的发行和使用。
5.3不值得修复的:偶然会出现的缺陷或者缺陷出现在不常用功能。
软件测试的术语和定义
1、精确(precision)和准确(acuracy)
精确可以理解为把某一件事做得很好,但是结果不确定是否正确。
准确可以理解为把某一件事做正确了,但是做的过程中走了很多弯路。
举例:
1.1扔三个飞镖,有两个飞镖分散命中靶盘,一个飞镖脱靶(既不精确也不准确)
1.2扔三个飞镖,三个飞镖都在同一个位置脱靶(精确但是不准确)
1.3扔三个飞镖,三个飞镖都命中靶盘,但是很分散(准确但是不精确)
1.4扔三个飞镖,三个飞镖都命中靶盘,并且位置相近(既精确又准确)
2、确认(verification)和验证(validation)
确认:检查软件功能和操作流程是否符合说明书。
验证:检验软件是否符合用户的使用要求。