1.3软件测试基本概念
测试(Test)就是检测特定的目标,是否符号标准而采用专用工具或方法进行验证,并最终得出特定结构,软件测试(Software Testing)伴随着软件的诞生而产生,软件测试就是在有限的时间内提高软件质量的保证,是软件开发过程中非常重要的一部分。
1.3.1软件测试发展
经历了5个重要时期:
1、以调试为主:早在20实际50年代,只有科学家级别的人才会编程,编程人员承担了所有工作,没人区分调试和测试,有些比较严谨的科学家已经开始思考“怎么知道程序满足了需求”这类问题
2、以证明为主:在1957年在《软件测试发展》书中作者强调了调试和测试区别
1)调试(Debug)确保程序做了程序想让它做的事情
2)测试(Testing)确保程序解决了程序员想让它做的事情
这也是软件测试史上一个重要的里程碑,它标志软件测试终于自立门户了,这个时期的主要目的就是确认软件是满足需求的,也就是我们常说的“做了该做的事情”
3、以破坏为主
在1979年测试界的经典之作《软件测试之艺术》书中提出测试的经典定义:测试是为了发现错误而执行的程序的过程,我们不仅要证明软件做了该做的事情,也要保证它没做不该做的事情,这会使测试更加全面、更容易发现问题。
还指出亮点:好的测试用例时发现迄今为止尚未发现的错误的测试用例,成功的测试执行时发现了至今为止尚未被发现的错误的测试执行。
4以评估为主
1983年美国国家标准局提出了测试界很有名的两个名词:验证(Verification)和确认(Validation)就是我们常说的V&V理论,同时IEEE提出软件工程标准术语给软件测试定义是“使用人工或自动手段”来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
5、以预防为主
STEP(Systematic Test and Evaluation Process)产品模型数据交互规范)认为测试与开发是并行的、分析、设计、开发、执行和维护组成,是贯彻整个软件生命周期
1.3.2软件测试的目的
软件测试目的演进,如图1-7所示
1、证明:保证软件茶农是完整的,并且可用或可被集成,同时需要尝试在非正常情况下的功能和特性时否可用,评估系统的风险承受耿立。
2、检测:发现确信错误和系统不足的地方,定