一、软件测试理论基础
-
软件测试的定义: 使用人工和自动手段来运行程序,目的在于检验是否满足了需求。
-
软件测试的目的: 是想以最少的人力、物力和时间找出软件中潜在的各种错误与缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患以及带来的商业风险。(以最少的人力、物力和时间找到软件中的缺陷并修改,从而避免商业风险。)
-
软件测试的原则: 追溯到用户需求;尽早和不断地测试;缺陷报告;妥善保存测试文档。
二、 软件测试方法: 黑盒测试、白盒测试、灰盒测试、动态测试、静态测试、性能测试、压力测试、安全性测试、兼容性测试等。
三、软件质量模型六大特征:
1)功能性
2)可靠性
3)易用性
4)效率性
5)可维持性
6)可移植性
四、软件测试质量五个基本目标:
1)保证有计划进行
2)保证遵循步骤和需求
3)及时通知给对应人员
4)高管可以接触到项目内部
5)软件质量需要测试工作来保证
五、软件测试基本流程
1)需求分析
2)测试需求
3)测试计划
4)测试方案
5)测试用例
6)执行测试
7)测试报告
六、软件测试规律
- 木桶原理
产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持等也会影响最终产品的质量;
测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但绝不是一种根本手段;
如果将提高产品质量的砝码全部压在测试上,那将是一个恐怖而漫长的灾难;
软件开发质量越低会导致测试完成后产品残留的缺陷越多。 - 八二原则
在分析、设计、实现阶段的复查和测试工作能够发现和避免80%的BUG,而系统测试又能找出其余BUG的80%,最后5%的BUG可能只有在用户的大范围、长时间使用后才会暴露出来。因此测试只能保证尽可能的发现错误,无法保证能够发现所有的错误;
80%的程序缺陷常常出现在软件20%的程序控件里。
七、软件测试详细目的
- 软件测试的目的
①测试是完善程序的过程,目的在于使系统更加符合用户的使用习惯,让系统在上线后带给客户极高的用户体验;
②测试应致力于发现至今为止未发现的错误。 - 不同的立场催生了两种截然不同的测试目的
①从用户的角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷并减少软件上线后的问题,使得产品更容易被接受;
②从软件开发者出发,希望测试成为证明产品中不存在错误、已正确的实现用户需求的过程。 - 软件测试目的总结
①以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷;
②证明软件的功能和性能与需求说明项符合;
③通过测试的结果数据为软件的可靠性分析提供分析;
④重点:测试不能表明软件中不存在问题,它只能说明软件中存在问题需要改善。
九、软件测试原则(详细)
①所有软件测试都应追溯到用户需求;
②应当把“尽早地和不断地进行软件测试”作为软件测试人员的座右铭;
③完全测试是不可能的,测试需要终止;
a.输入量太大;
b.输出结果太多;
c.路径组合太多
④程序员应避免检查自己的程序;
⑤测试无法显示软件潜在的缺陷,进行测试可以查找缺陷,但不能保证所有的缺陷都被找到,进一步测试可能会找到一些,
但是只能证明软件存在错误而不能证明软件没有错误;
⑥ 充分注意测试中的群集现象;
a.在所测程序中,若发现错误数目多,则残存错误数目也比较多,这种就是错误群集现象;
b.经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比,根据这个规律,应当对错误群集的程序段进行重点测试;
⑦软件测试是有计划的,严格执行测试计划,排除测试的随意性;
⑧应当对每一个测试结果做全面检查;
⑨妥善保存测试计划,测试用例,缺陷统计和最终测试分析报告,为维护提供方便。
参考链接:https://blog.youkuaiyun.com/qmm950524/java/article/details/100884814 && https://www.cnblogs.com/Goongo/p/9072860.html