欢迎来到天天文库
浏览记录
ID:9293386
大小:137.00 KB
页数:11页
时间:2018-04-26
《软件测试:极限测试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件测试:极限测试20世纪90年代出现了一种名为极限编程(XP,ExtremeProgramming)的新型软件开发方法。一位名叫KentBeck的项目经理设计了这种轻量、敏捷的开发过程,并于1996年在戴姆勒·克莱斯勒公司的项目中进行了首次测试。尽管此后还出现了其他几种敏捷软件开发过程,但XP到目前为止最流行的敏捷软件开发过程。事实上,现在已有众多的开源代码工具支持这种方法,这也证明了XP在开发人员和项目经理中的流行程度。开发XP是为了支持诸如Java,VisualBasic及C#等编程语言的应用。这些面向对象的语言使开发
2、人员开发大型复杂应用的速度,比使用传统的C,C++,FORTRAN或COBOL语言更快。使用后者开发程序常常需要构建通用的类库来支持你的工作。诸如打印,排序,联网和统计分析等通用任务的实现方法并不是标准的构件。而C#和Java等编程语言都含有全功能的应用编程接口(API),消除或减少了构建自定义类库的需要。然而,伴随快速应用开发语言带来的好处,不利之处也随之而来。虽然开发人员可以更快地开发应用程序,但其质量并未得到保证。程序运行时经常不能满足程序规格说明的要求。XP开发方法的目的是在短时间内开发高质量的程序。传统的软件开发过
3、程依然在发挥作用,但往往会花很多的时间,在竞争激烈的软件开发领域里这就相当于损失了收入。XP模型高度依赖模块的单元和验收测试。总的来说,对每个无论多小的递增的代码变更,都必须进行单元测试,以确保代码库满足其规格说明的要求。事实上,测试在XP中的地位如此重要,以至于需要首先创建单元(模块)测试和验收测试,然后才创建代码库。这种形式的测试被称为极限测试(XT,ExtremeTesting)。8.1极限编程基础如前所述,XP是一种相当新的软件开发过程,使开发人员可以快速地产生高质量的代码。在这种情况下,我们可以将“质量”定义为代码
4、库对其规格说明的满足程度。XP重视采取简单的设计、在开发人员和客户之间建立联系、不断地测试代码库、重构以适应规格说明的变更,以及寻求用户的反馈。XP更倾向于适合中小规模的软件开发,这些软件的规格说明的变更非常频繁,接近实时的沟通也是可能的。XP与传统的开发过程相比有几处不同。首先,它避免了大规模项目的综合症,即在开始编码之前客户与编程小组碰头,设计软件的每一个细节,项目经理们都知道这种做法的缺陷,因为为了反映新的业务谁则或市场情况,客户的规格说明和需求必须不停地变更。举例来说,财务部门可能要求工资报表按处理时间,而不是按支票
5、号码进行排序,而营销部门可能会判断出,如果它没发电子邮件的话.用户将不会购买某产品。XP的策划阶段将重点放在收集应用程序需求,而不是设计程序上。XP方法的另一个不同之处是避免了编写不需要的功能。如果客户认为某个功能虽然需要,但并不是要求实现的,那么在软件发行时通常不包含此项功能。因此我们可以将重点集中在正在进行的任务上,为软件产品增加价植。将精力集中在必需的功能之上,有助于在短时间内开发出高质量的软件。然而,XP方法的主要不同之处是其将精力集中在测试上。在经历了一个非常全面的设计阶段之后,传统的软件开发模型会建议首先编码,然
6、后才生成测试接口,但在XP方法中,我们必须首先生成单元测试用例,然后才编写代码通过测试。根据本书第5章中讨论的概念,可以设计出XP环境中的单元测试。XP开发模型用12个核心实践来驱动该过程。表8-l总结了这些实践。简单来说.这12个核心的XP实践可以归纳为4个概念:1.聆听客户和其他程序员的谈话。2.与客户合作,开发应用程序的规格说明和测试用例。3.结对编码。4.测试代码库。表8-l中所列的由每个实践提供的注释都是可以自我解释的。然而,有两个更重要的原则,即计划和测试,有必要进一步讨论。一个成功的计划阶段为整个XP过程奠定了
7、基础,XP的计划阶段与传统开发模型不同,通常将需求收集与应用设计结合起来。XP中的计划重点是确定客户的应用需求,然后设计使用场景(或案例需求)来满足客户的应用需求。通过生成使用场景,可以深入地洞悉应用程序的目的和需求。此外,客户在一个开发周期的最后阶段执行验收测试时也可以用到这些使用场景。最后,计划阶段带来的一个无形的好处是,用户通过深入地参与进来,从而获得对程序的拥有感和信心。表8-1极限编程的12个实践实践注解1.计划与需求分析•将市场和业务开发人员集中起来,共同确认每个软件特征的最大商业价值•以使用场景的形式重新编写每
8、个重要的软件特征•程序员估计完成每个使用场景的时间•客户根据估计时间和商业价值选择软件的功能特征2.小规模,递增地发布•努力添加细微的、实在的、可增值的特征,频繁发布新版本3.系统隐喻,•编程小组确认隐喻,便于建立命名规则和程序流程4.简要设计•实现最简单的设计,使代码通过单元测试,假设变
此文档下载收益归作者所有