第1页共22页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共22页软件测试与质量保证一、软件测试的定义定义:软件测试是为了发现错误而执行程序的过程。或者说软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。二、测试的目的:•基于不同的立场,存在着两种完全不同的测试目的。•从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。•从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。GrenfordMyers软件测试目的(1)测试是程序的执行过程,目的在于发现错误;(2)一个好的测试用例在于能发现至今未发现的错误;(3)一个成功的测试是发现了至今未发现的错误的测试•换言之,测试的目的是–系统地找出软件中潜在的各种错误和缺陷。–能够证明软件的功能和性能与需求说明相符合。–测试不能表明软件中不存在错误,它只能说明软件中存在错误。三、软件测试的原则1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2.测试用例应由测试输入数据和对应的预期输出结果这两部分组成。3.程序员应避免检查自己的程序。4.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。5.充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。6.严格执行测试计划,排除测试的随意性。7.应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。四、软件测试的对象•软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。•需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。五、确认和验证:•为把握软件开发各个环节的正确性,需要进行各种确认和验证工作。•确认(Validation),是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。–需求规格说明的确认–程序的确认•验证(Verification),试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。七、测试信息流第2页共22页第1页共22页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共22页测试信息流•软件配置:软件需求规格说明、软件设计规格说明、源代码等;•测试配置:测试计划、测试用例、测试程序等;•测试工具:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库等等。•测试结果分析:比较实测结果与预期结果,评价错误是否发生。•排错(调试):对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。•修正后的文档再测试:直到通过测试为止。•通过收集和分析测试结果数据,对软件建立可靠性模型•利用可靠性分析,评价软件质量:—软件的质量和可靠性达到可以接受的程度;—所做的测试不足以发现严重的错误;•如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。八、测试与软件开发各阶段的关系•软件开发过程是一个自顶向下,逐步细化的过程•软件计划阶段定义软件作用域•软件需求分析建立软件信息域、功能和性能需求、约束等•软件设计把设计用某种程序设计语言转换成程序代码•测试过程是依相反顺序安排的自底向上,逐步集成的过程。九、软件测试用例设计第3页共22页第2页共22页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共22页•两种常用的测试方法–黑盒测试–白盒测试(一)黑盒测试•这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。•黑盒测试又叫做功能测试或数据驱动测试。•黑盒测试方法是在程序接口上进行...