软件测试讲义(上)

发表于:2011-11-25 11:30

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

 作者:SoftwareTeacher    来源:51Testing软件测试网采编

分享:

  构建验证测试(BVT:Build Verification Test)

  望文生义,构建验证测试是指在一个构建完成之后,团队自动运行的一套验证系统基本功能的测试。在大多数情况下,这一套系统都是在自动构建成功后自动运行的,有些情况下也会手工运行,但是由于构建是自动生成的,我们也要努力让BVT自动运行。

  问:一个系统有这么多功能点,什么是基本的功能,什么不是基本的功能?

  答:第一,必须能安装;第二,必须能够实现一组核心场景。例如,对于字处理软件来说,必须能打开/编辑/保存一个文档文件,但是一些高级功能,如文本自动纠错,则不在其中;又如,对于网站系统,用户可以注册/上传/下载信息,但是一些高级功能,如删除用户,列出用户参与的所有讨论,则不在其中。

  在运行BVT之前,可以运行所有的单元测试,这样可以保证系统的单元测试和程序员的单元测试版本一致。在不少情况下,开发人员修改了程序和单元测试,但是忘了把修改过的单元测试也同时签入源代码库中。

  通过BVT的构建可以称为可测(Self-test),意思是说团队可以用这一版本进行各种测试,因为它的基本功能都是可用的。通不过BVT的构建称为“不可测”(Self-hosed)。

  如果构建测试不能通过,那么自动测试框架会自动对每一个失败的测试产生一个Bug(小强)。一般的做法下这些小强都有最高优先级,开发人员要首先修改这些小强。大家知道维持每日构建,并产生一个可测的版本是软件开发过程中质量控制的基础。对于导致问题的小强,我们该怎么办?答案是——

  (1)找到导致失败的原因,如果原因很简单,程序员可以马上修改,然后直接提交。

  (2)找到导致失败的原因的修改集,把此修改集剔出此版本(程序员必须修改好后再重新提交到源代码库中)。

  (3)程序员必须在下一个构建开始前把此小强修理好。

  方法(1)和(2)都可以使今天的构建成为“可测”,但是有时各方面的修改互相依赖,不能在短时间内解决所有问题,那就只能采用第三种方法了。

  问:有人提到一种“Smoke Test”,冒烟测试,是怎么回事?

  答:事实上这是一种基本验证测试,据说是从硬件设计行业流传过来的说法。当年设计电路板的时候,很多情况下,新的电路板一插上电源就冒起白烟,烧坏了,如果插上电源后没有冒烟,那就是通过了“冒烟测试”,可以进一步测试电路板的功能了。我们正在讨论的BVT也是一种冒烟测试。

  验收测试(Acceptance Test)

  测试团队拿到一个“可测”等级的构建,他们就会按照测试计划,测试各自负责的模块和功能,这个过程可能会产生总共10来个Bug,也可能产生100个以上的Bug,那么如何保证我们有效地测试软件,同时我们在这一步怎样衡量构建的质量?

  在MSF敏捷模式中,我们建议还是采用场景来规划测试工作。

  在“基本场景”的基础上,把所有系统理论上目前支持的场景都列出来,然后按功能分类测试,如果测试成功,就在此场景中标明“成功”,否则,就标明“失败”,并且把失败的情况用一个(或几个)“小强”/Bug来表示。

  当所有的测试人员完成对场景的测试,我们自然地就得出了表7-5。

表7-5  场景测试报告

场景ID

场景名

测试结果

Bug/小强ID

3024

用户登录

成功

 

3026

用户按价格排序

失败

5032

3027

用户按名字搜索

失败

5033

……

……

……

……

  这样就能很快地报告“功能测试56%通过”等。如果所有场景都能通过,(有些情况下可以把此标准从100%降低到90%左右)则这个构建的质量是“可用”,意味着这一个版本可以给用户使用。在这种情况下,客户、合作伙伴可以得到这样的版本,这也是所谓“技术预览版”或“社区预览版”的由来。

  但是,有一个重要的问题要大家注意:“可用”,并不是指软件的所有功能都没有问题,而是指在目前的用户场景中,按照场景的要求进行操作,都能得到预期的效果,注意以下两种情况:

  (1)在目前还没有定义的用户场景中,程序质量如何,还未得而知。

  例如:场景中没有考虑到多种语言设置。

  (2)不按照场景的要求进行的操作,结果如何,还未得而知。

  如:在某一场景中,场景规定用户可以在最后付款前取消操作,回到上一步,如果一个测试人员发现在反复提交/取消同一访问多次后,网页出现问题,这并不能说明用户场景失败,当然对于这个极端的Bug,也必须找出原因并在适当的时间改正。

  这种测试有时也被称为验收测试“Acceptance Test”,因为如果构建通过了这样的测试,这一个构建就被测试团队“接受了”。同时,还有对系统各个方面进行的“验收”测试,如系统的全球化验收测试,或者针对某一语言环境、某一个平台做的测试。

55/5<12345
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号