|
知识路径: > 嵌入式系统的项目开发与维护知识 > 嵌入式系统软件测试 > 软件测试概述 >
|
相关知识点:2个
|
|
|
|
|
第一阶段为软件调试时期。早期程序设计的观点是设计、编写好一个程序并随之检查它,这是早期对软件测试的全部认识。这一时期,对程序的检查、调试和测试几乎没有差别,认为“调试”是“找出程序中的错误”,“测试”是调试工作的一部分,从本质上否认软件测试的独立存在。
|
|
|
第二阶段为论证时期。1957年,C. Baker区分了“调试(Debugging)”和“测试(Testing)”的概念,认为“调试”的中心任务是去除程序中的错误(bug),使程序能正常运行;而“测试”的任务是证明程序符合其技术要求。在此基础上,1973年Bill Hetzel正式提出软件测试的第一个定义。论证时期软件测试的目的是证明软件不存在错误,经常面临的情况是软件已通过所有的测试,但在实际中仍有错误。随着计算机软件规模和复杂性的不断增长,证明软件的正确性越来越困难。于是,“软件无错误”的假设被逐步抛弃了。
|
|
|
第三阶段为破坏性测试时期。1979年Myers针对“软件测试是证明程序中不存在错误的过程”的观点指出,一次失败的测试就能表明软件的不正确,而无数次成功的测试也不能证明该软件的正确,除非进行所谓“完全”的测试,但这对较复杂的程序实际上是不可能的。因此他将软件测试定义为“为了发现错误而执行程序的过程”。这种认识虽然不够全面,但具有实际的工程价值。Myers的观点还包括对测试“成功”和“失败”这两个词用法的重新认识。查出了错误的测试才是有价值的测试,是成功的测试。因此要将这两个词的用法在过去的基础上颠倒过来。Myers把测试看成是从程序中查出错误(假如有错误存在)的破坏性过程。
|
|
|
第四阶段为生命周期评估时期。随着软件工程和测试技术的发展,提出了“生命周期测试”(Life Cycle Testing)的概念,即测试不仅是对程序的测试,而且还应包括对软件需求和设计的测试,软件测试应在软件项目开始时与软件开发工作同步进行。这个时期对软件测试的认识从定性上升到定量的认识。在一种特定方法和过程指导下,可以建立测试和最终质量因素之间的定量关系。软件可靠性测试和可靠性增长模型是这个时期典型的实践。
|
|
|
第五阶段为预防测试时期。近年来,随着人们对软件测试认识的深入,出现了“生存周期预防测试”,预防测试包括:测试策划和分析(制定测试目标和测试技术要求,确定测试策略,选择测试技术和方法,选取测试环境,划分测试项),测试设计与实现(确定测试用例、测试数据、测试过程和选择测试支持工具),测试执行(记录测试结果),测试总结(分析测试结果),维护(保存和修正测试资料以备其他软件使用)。预防测试的观点认为,测试策划、分析和设计可显著改进软件需求和设计。其理由是:第一,测试人员以一种与开发人员完全不同的观点来使用软件需求和设计,可尽早发现软件需求和设计中的错误;第二,开发与测试并行进行,节省软件项目的成本。在这个时期,软件的可测试性是一个重要目标。因为易于测试的软件比难于测试的软件错误要少,另外易于测试的软件可以减少测试工作量,而这两个因素综合在一起对效率产生的影响是倍增的。为了解决这个问题,出现了各种软件开发方法,例如面向对象的开发方法,Use Case的需求描述方法,结构化激励与响应(SSR)的需求描述方法。与此相应,基于需求的软件测试技术、基于需求的形式化验证等在实际项目中得到了广泛应用。
|
|
|
嵌入式软件的测试也经历了五个阶段。即经历了开发人员简单地进行程序调试、开发人员自己测试、开发人员相互测试、非开发人员的测试、第三方专业测评机构按照测试流程对软件进行测试五个阶段。大致与软件测试发展的五个阶段对应。
|
|
|