法。
3.2 软件测试的描述
测试是软件开发过程的重要组成部分
, 是用来确认一个程序的品质或性能
是否符合开发之前所提出的一些要求。软件测试的目的
, 第一是确认软件的质量,
其一方面是确认软件做了你所期望的事情(
Do the right thing), 另一方面是
确认软件以正确的方式来做了这个事件(
Do it right);第二是提供信息, 比
如提供给开发人员或程序经理的反馈信息
, 为风险评估所准备的信息;第三软
件测试不仅是在测试软件产品的本身
, 而且还包括软件开发的过程。如果一个软
件产品开发完成之后发现了很多问题
, 这说明此软件开发过程很可能是有缺陷
的。
3.3 软件测试的目的
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软
件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最终用户
提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经
常用到的商业假设。 在谈到软件测试时,引用
Grenford J. Myers 在《The Art
of Software Testing》一书中的观点: (1)软件测试是为了发现错误而执行程序
的过程
; (2)测试是为了证明程序有错,而不是证明程序无错误; (3)一个好的测
试用例是在于它能发现至今未发现的错误
; (4)一个成功的测试是发现了至今未
发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是
为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认
为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实
并非如此。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和
错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以
便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的
有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量
3