软件测试原则
1)软件测试要尽早执行。
现有的数据表明,在大型程序中,大约有40%的错误时编码和逻辑设计错误,剩下的错误则产生于早期的设计阶段。
在大多数情况下,在需求分析阶段就会产生缺陷,而且需求分析阶段引入的缺陷是最多的,其修复成本却是最低的。
2) 在测试过程中记录每单位时间内发现的错误数量,然后通过检查统计曲线的形状,趋势是增长还是下降收敛,常常可以决定究竟是继续改阶段的测试,还是结束它并开始下一测试阶段。
3) 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。错误集中发生的现象,可能和程序员的编程水平和习惯有很大的关系。
缺陷的二八定理:一般情况下,软件80%的缺陷集中在20%的模块中。我们测试的时候要抓主要模块,投入主要的人力和精力重点测试这20%的模块,以提高我们的测试效率。
缺陷的二八定理也称为“缺陷的集群现象” 或“虫子窝现象”。
4.)Good Enough原则: 是一种权衡投入/产出比的原则
不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。
5.)不要试图穷举测试。
6) 缺陷具有免疫性。
需要根据新版本的特点去修改维护测试用例。
QA vs Tester
SQA(Software Quality Assurance):软件质量保障,完整定义是“为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价”。
QA:做SQA的具体工作人。
SQA是独立于项目组的第三方监督机构,监督整个项目的管理、需求分析、设计、编码、测试与维护等软件工程的各个环节。
软件测试金字塔模型
黑盒测试技术
等价类技术(Equivalence Class Testing) : 有效等价类 和 无效等价类
边界值技术(Boundary Value Testing)
因果图法(Cause-Effect Graphs)
流程图法(Workflow Method)