软件项目验收测试研究

发表于:2016-6-15 10:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:一班&代文静    来源:51Testing软件测试网采编

分享:
  但是,客户往往不懂技术,无法理解任何为验证需求所开发的测试代码。因此,验收测试在编写时,不要向客户展示代码,而是使用语言描述验证测试,也就是以几句话定义高层次观点。验收测试有多种编写形式,如Given、When、Then的语法就是一种现在较为流行的验收测试编写语法,具体测试用例编写如下所示:
  · 假定有一个新用户账号(Given)
  · 当其在系统中创建时(When)
  · 那么默认密码应当是P@ssw0rd(Then)
  在测试解决具体问题的时候,根据需要,测试表述可以更为复杂:
  · 假定有一个超支账户(Given)和一个有效的借记卡
  · 当客户从ATM机上取现金时(When)
  · 那么显示一条错误信息(Then),没有现金返回,将卡退回给该客户
  这种形式的测试将促使客户与开发团队更好地交流并定义验证测试,验证和敲定各个细节。这种测试定义形式并没有过多地使用专业术语,如果测试用例以这种方式定义,客户将对测试更加热心。因为客户在项目开始的时候就表明希望交付软件的实现什么功能,并且在软件交付后能看到参与编写的所有测试都能有效通过。
  验收测试应当将注意力放在业务问题和场景上,使用与业务相同的语言来描述测试。其优势在于;第一,不需要技术背景就能够理解场景和预期结果;第二,如果软件底层发生变更,不需要退回并更新这些测试来反映这一变更。因为验收测试是高层次的,可能涵盖了代码库中的许多不同组建。验收测试不应该依赖于具体的细节,因为随时间的推移,这些细节会发生变更。如果由于丢弃或以某种方式进行变更而使用户使用情景不再有效,应该更新测试来反映这一点。
  闲置的验收测试和不再使用的测试对于项目和测试套件来说是有害的。测试套件应当尽可能地精简和集中,拥有足够的测试来提供较高层次的保障,但不应冗余和重复。
  执行验收测试可以手动或自动。尽管手动测试看起来是更快的选择,但从长久看来更加耗时,因为每次修改系统某个部分,都需要重新运行。随着系统的增长,手动测试将变得更加耗时,并导致更多错误,可见手动执行这些测试并不像想象的那么简单。除了手动完成验收测试,也可以利用工具自动完成。
  3、自动化验收测试工具
  目前,最流行的自动化验收测试工具是FitNesses。该工具是基于Fit(Framework for Integrated)的。FitNesses提供了一个Wiki前端,可用来管理测试用例和脚本,使得整个团队和客户能够合作创建验收测试用例。除了Wiki前端之外,FitNesses还提供了一个基础代码库用于处理Wiki和测试系统之间的通信。这提供了一个与系统进行交互的抽象试图,能够更方便地编写验证测试。
  除了FitNesses,也可以使用Cucumber来实现自动化验收测试。Cucumber 是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。
  4、结语
  相比单元测试,验收测试最大的优势是更容易应用于遗留代码。遵循验收测试方法,可以立即围绕项目添加客户验收测试,并提供一定层次的自动化测试,不必对项目和测试方法进行大规模重构。验收测试实际上为遗留代码提供了增值收益,通过一套坚实的客户验收测试,就可以在后台重构代码,并添加单元测试,验收测试将提供额外的安全网,确保在重构阶段没有造成破坏。验收测试提供了一个良好的端对端安全网。
  软件项目验收测试非常重要和有价值,它可以确保软件系统满足客户实际需求。
22/2<12
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号