对学习软件测试的新手来说,明白软件生命周期是个关键。
下面就谈一下“瀑布模型”中的软件生命周期。
其实它就像电子、服装等工厂生产的流程一样。它有着不同的阶段:
计划——>需求分析——>设计——>编码——>测试——>运行和维护
计划:确定软件开发总目标
给出软件的功能、性能、可靠性以用接口等方面的设想
研究完成该项目的可行性,探讨问题解决方案
对可供开发使用的资源、成本、可取得的效益和开发进度作出估计
制定完成开发任务的实施计划
这些呢,是由项目经理来完成的。
需求分析:对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定,哪些需求是可以满足的,并且给予确切的描述,写出软件需求规格说明书SRS。
这时的需求可能没有达到用户的要求或者超出用户的要求,此时得同行评审(review),由QA组织会议,开发工程师和测试工程师提出问题和建议,同时需求分析人员向开发工程师和测试工程师解释需求。
设计:概要设计(HLD):系统拆分,在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块。
详细设计(LLD):函数设计,对每个模块要完成的工作进行具体的描述。
编码(Code):把软件设计转换成计算机可以接受的程序。开发工程师除了编写代码、调试程序之外,亦进行冒烟测试(Smoke Testing)。
测试(Test):检验软件是否符合客户需求,达到质量要求,一般由独立的小组执行,测试工作分为:
单元测试(UT:Unit Testing):参照LLD,对每一个函数、方法进行测试。
它的主要目的是:1.发现Code过程中引入的错误
2.验证代码与设计相符合
3.发现设计和需求中存在的错误
UT主要采用白盒测试(White Box Testing)。
集成测试(IT:Integration Testing):参照HLD,对函数与函数集成的接口、模块与模块集成的接口进行测试。
它的主要目的是:1.验证接口是与设计相符合的
2.发现设计和需求中存在的错误
IT主要采用灰盒测试。
系统测试(ST:System Testing):参照SRS,对每一个功能需求、性能需求等进行测试。
它的主要目的是:1.与系统的需求定义做比较,发现软件与之不符合或矛盾的地方
2.测试用例(TC—Test Case)应根据SRS来设计,并在实际使用环境中运行。
ST主要采用黑盒测试(Black Box Testing)。
运行和维护:这个阶段将软件交付给用户投入正式使用,以后便进入维护阶段,如:软件错误、系统软件升级、增强软件功能、提高性能等都要对软件进行修改。 我们要明白:我们做软件测试不能够保证软件的质量,我们的目的是提高软件的质量。
软件产品的质量与流程、技术和组织三者都有关系。 测试应尽早进入流程中。
[ 本帖最后由 szs0434 于 2007-7-10 14:32 编辑 ] |