当前位置:文档之家› 软件生命周期74017

软件生命周期74017

软件测试的生命周期
软件测试是一个系列过程活动,包括软件测试需求分析,测试计划
设计,测试用例设计,执行测试
因此,软件测试贯穿于软件项目的整个生命过程。

在软件项目的每
一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。

软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。

软件开发与软件测试应该是交互进行的,例如,单元编码需要单元
测试,模块组合阶段需要集成测试。

如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效
果也将大打折扣。

更严重的是如果此时发现了软件需求阶段或概要设计
阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。

因为从根本上讲,软件测试不可能发现全部的错误。

从软件开发的
角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期
的各个过程中设计出来的。

出现软件错误,不能简单地归结为某一个人
的责任,有些错误的产生可能不是技术原因,可能来自于混乱的项目管理。

应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原
因和改进的措施。

开发和测试是相辅相成的过程,需要软件测试人员、程序员和系统
分析师等保持密切的联系,需要更多的交流和协调,以便提高测试效率。

另外,对于单元测试主要应该由程序员完成,必要时测试人员可以帮助
设计测试样例。

对于测试中发现的软件错误,很多需要程序员通过修改
编码才能修复。

程序员可以通过有目的的分析软件错误的类型、数量,
找出产生错误的位置和原因,以便在今后的编程中避免同样的错误,积
累编程经验,提高编程能力。

这是不重视软件测试的表现,也是软件项目过程管理混乱的表现,必然会降低软件测试的质量。

一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划,对项目实施过程中的任何问题,都要有风险分析和相应的对策,不要因为开发进度的延期而简单的缩短测试时间、人力和资源。

因为缩短测试时间带来的测试不完整,对项目质量的下降引起的潜在风险,往往造成更大的浪费。

克服这种现象的最好办法是加强软件过程的计划和控制,包括软件测试计划、测试设计、测试执行、测试度量和测试控制。

使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别.
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。

Grenford 曾对软件测试的目的提出过以下观点:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。

然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能.但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此!
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者
发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法
软件测试的几大原则:
1.软件开发人员即程序员应当避免测试自己的程序
2. 应尽早地和不断地进行软件测试
3.对测试用例要有正确的态度:第一,测试用例应当由测试输入数据和预期输出结果这两部分组成;第二,在设计测试用例时,不仅要考虑合理的输入条件,更要注意不合理的输入条件。

因为软件投入实际运行中,往往不遵守正常的使用方法,却进行了一些甚至大量的意外输入导致软件一时半时不能做出适当的反应,就很容易产生一系列的问题,轻则输出错误的结果,重则瘫痪失效!因此常用一些不合理的输入条件来发现更多的鲜为人知的软件缺陷。

4.人以群分,物以类聚,软件测试也不例外,一定要s充分注意软件测试中的群集现象,也可以认为是“80-20原则”。

不要以为发现几个错误并且解决这些问题之后,就不需要测试了。

反而这里是错误群集的地方,对这段程序要重点测试,以提高测试投资的效益。

5.严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作。

6.应当对每一个测试结果进行全面检查。

一定要全面地、仔细地检查测试结果,但常常被人们忽略,导致许多错误被遗漏。

7.妥善保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试及维护之用。

在遵守以上原则的基础上进行软件测试,可以以最少的时间和人力找出软件中的各种缺陷,从而达到保证软件质量的目的。

相关主题