什么是软件测试 为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,对软件进行严格技术评审。但由于人们能力的局限性,审查不能发现所有的错误。并且在编码阶段还会引进大量的错误。这些错误和缺陷假如遗留到软件交付投入运营之时,终将会暴露出来。但到那时,不仅改正这些错误的代价更高,并且往往导致很恶劣的后果。 软件测试就是在软件投入运营前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键环节。假如给软件测试下定义,可以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入一些数据而得到其预期的结果),并运用这些测试用例去运营程序,以发现程序错误的过程。 软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。编码与单元测试属于软件生存期中的同一个阶段。在结束这个阶段之后,对软件系统还要进行各种终合测试,这是软件生存期的另一个阶段,即测试阶段,通常由专门的测试人员承担这项工作。 大量记录资料表白,软件测试的工作量往往占软件开发总工作量的 40%以上,在极端情况,测试那种关系人的生命安全的软件所花费的成本,也许相称于软件工程其他开发环节总成本的三倍到五倍。因此,必须高度重视软件测试工作,绝不要认为写出程序之后软件开发工作就接近完毕了,事实上,大约尚有同样多的开发工作量需要完毕。仅就测试而言,它的目的是发现软件中的错误,但是,发现错误并不是我们的最终目的。软件工程的主线目的是开发出高质量的完全符合用户需要的软件。 返回导航软件测试的目的 基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露出软件中陷藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表白软件产品中不存在错误的过程,验证该软件已对的地实现了用户的规定,确立用户对软件质量的信心。 由于在程序中往往存在着许多预料不到的问题,也许会被疏漏,许多隐藏的错误只有在特定的环境下才也许暴露出来。假如不把着眼点放在尽也许查找错误这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运营阶段中去。假如站在用户的角度替他们设想,就应当把测试活动的目的对准揭露程序中存在的错误。在选取测试用例时,考虑那些易于发...