|
一项软件开发、测试的任务如同一次航行,第一个步骤是需求分析,就象确定航行的目标,包括先要到哪里,然后去哪里,怎样才算完成航行,需要那些准备,会遇到那些风险?这是最重要的一步;第二个步骤是软件、测试设计,就象确定航行的方案,包括航行的路线、用什么船,遇到紧急情况该如何处理?这是航行的前期准备;第三个步骤是编码、测试的执行,就象船要启航了,万事俱备,这时要做的就是船长、大副、水手们的协同工作,保证航行的安全、定期完成,而航行的质量如何,这时候都可以感觉出来,如果前期准备的充分,这时候就可以有备而无患;最后一步是总结、维护,对于航行来说,这次航行算是成功完成了,但是航行中肯定遇到了不少问题,也得到了好的经验,如什么引擎可以提供速度和舒适度,什么舱最容易出问题,下次要注意,就需要总结归纳,下次的航行就不会遇到这样的问题。
每一个步骤又可以分为几个子步骤,对于需求分析,不是说根据客户的需求文档就可以直接产生目标需求文档的,首先要把原始的需求转化为规则的需求,因为对开发和测试来说,客户的需求能够理解,但通常不能准确的描述。对于规则化后的需求,还是一团糟呢,这时候需要分解这些需求,把一个系统分解为不同的特性就清晰多了。分解后的需求,也还是原始的需求,只是有个最粗略的描述,对于开发、测试还是无法依据,所以第三个子步骤是需求的细化,把每个需求细化成需求规格(测试规格)。
对于软件设计阶段来说,软件设计主要是通过某种设计方法和设计模式将软件模型化、结构化、对象化,对开发来说,主要包括总体设计和详细设计,总体设计确定了软件架构和设计模式,详细设计确定了每个对象的功能实体和算法;对测试来说,测试设计包括测试项的设计和用例的设计,测试项的设计是通过某些测试设计方法(如等价类划分、边界值分析、功能图分析等),把测试规格转化为测试项,测试项即用例的主题。用例设计是根据测试项,设计测试环境、配置、步骤、预期目标、级别、测试手段等,用于后续测试。
在编码、测试执行阶段,编码主要是实现函数、对象的功能、接口,编码完成后还要进行模块测试、白盒集成测试等,然后交付到测试部门,测试执行主要是黑盒测试,就是执行用例,完成测试过程。
在总结、维护阶段,主要是对前面步骤中出现的问题、经验教训进行归纳总结,对软件中出现的问题进行维护、回归测试,发布新的版本。
[注]我也是个新手,欢迎大家指正!
[ 本帖最后由 njugui 于 2006-12-26 14:24 编辑 ] |
|