|
(1)为效益而测试
测试为了什么?提高软件质量,增加客户满意度,多赚钱。测试的目的,是为了效益。在质量和成本之间寻求一个平衡点是测试要掌握的度。
(2)测试是全程测试
测试是贯穿软件生命周期全程的,而不仅仅是程序完成后。前期的需求验证和设计验证能够发现需求缺陷和设计缺陷,保证这些缺陷不产生放大效应。
保证每个周期禁得起考验,这需要引入对测试的评估,即测试本身也要被测试。
(3)测试是不完全的
无论多么小的程序,想要测试完全,都是不可能的。这是由需求不完整性,逻辑路径组合性,输入数据大量性,结果多样性这些因素造成的。
可以通过等价类划分,边界值等方法寻求最小集合。
(4)80-20原则
80%的bug存在于20%的代码中,这个理论提供的方法论就是在出问题多的模块加强测试。提高测试效率和bug的发现率。
另外,在系统分析,系统设计,系统实现阶段的复审、测试工作中能够发现和避免80%的软件缺陷;此后的系统测试中能够找出剩余缺陷的80%。最后的4%只能在交付后长期使用暴露出来。
第三,80%的bug由手工测试发现,20%的bug由自动化测试发现。
(5)测试的免疫性
简言之,测试的越多,寻找缺陷就越困难。
代码量不变,bug存在的数目越多的时候每找到一个bug平均走查的代码越少,花时间越少;
当bug存在的数目减少了,每找到一个bug平均走查的代码增加了,这样花的时间就多了。
(6)测试必须有预期结果
必须有标准来判定测试的结果,不能凭借感觉来评判缺陷。
(7)缺陷必然存在性
(8)测试后要做分析
对测试结果的分析可以为下次的测试提供借鉴。 |
|