一、软件测试的目的
1)软件测试是为了发现错误而执行程序的过程。
2)测试是为了证明程序有错,而不是证明程序无错。(发现错误不是唯一目的)
3)一个好的测试用例在于它发现至今未发现的错误。
4)一个成功的测试是发现了至今未发现的错误的测试。
注意:
1、测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。
2、没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。例如BevLittlewood发现一个经过测试而正常运行了n个小时的系统有继续正常运行n个小时的概率。
二、软件测试的原则
1)应当把“尽早地不断地进行软件测试“作为软件开发者的座右铭。
2)测试用例应由测试数据和与之对应的预期输出结果这两部分组成。
3)程序员应避免检查自己的程序。
4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
5)充分注意测试中的群集现象。
6)严格执行测试计划,排除测试的随意性。
7)应当对每一个测试结果做全面的检查。
8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
三、软件测试的流程
立项阶段-需求阶段----设计阶段----编码和单元测试阶段----集成测试阶段----系统测试阶段-----验收测试阶段-----结项总结阶段
补充:
根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。
体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。
系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。
黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值,一个输入值,和期望值做比较。
白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖
集成测试主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。
系统测试是在经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测试。
如果你正在学习软件测试