经典的软件测试全过程描述
作者:网络转载 发布时间:[ 2013/11/6 11:37:53 ] 推荐标签:
1.4.2.8单元测试应该集成到自动测试的框架中
另一个重要的措施是要把单元测试自动化,这样每个人都能很容易地运行,并且单元测试每天都可以运行。每个人都可以随时在自己机器上运行。团队一般是在每日构建中运行单元测试,这样每个单元测试的错误能及时发现并得到修改。
1.4.2.9单元测试必须和产品代码一起保存和维护
单元测试必须和代码一起进行版本维护。如果不是这样,过了一阵,代码和单元测试会出现不一致,而且所有代码的作者要花时间来确认哪些是程序出现的错误,哪些是由于单元测试更新滞后造成的错误。。。这样失去了单元测试的意义,同时又给大家增加了负担,折腾多次以后,大家会觉得维护单元测试是一件很费时费力的事。
1.5BVT构建验证测试(BuildVerificationTest)
望文生义,构建验证测试是指在一个构建完成之后,团队自动运行的一套验证系统的基本功能的测试。大多数情况下,这一套系统都是在自动构建成功后自动运行的,有些情况下也会手工运行,但是由于构建是自动生成的,我们也要努力让BVT自动运行。
问:一个系统有这么多功能点,什么是基本,什么是不基本的?
答:第一,必须能安装;第二,必须能够实现一组核心场景(例如:对于字处理软件来说,必须能打开/编辑/保存一个文档文件,但是一些高级功能,如:文本自动纠错,则不在其中;又如,网站系统,用户可以注册/上载/下载信息,但是一些高级功能,如删除用户,列出用户参与的所有讨论,则不在其中。
在运行BVT之前,可以运行所有的单元测试,这样可以保证系统的单元测试和程序员的单元测试版本保持一致。不少情况下,开发人员修改了程序和单元测试,但是忘了把更新的单元测试也同时签入源代码库中。
通过BVT的构建可以称为:可测(self-test),意思是说团队可以用这一版本进行各种测试–因为它的基本功能都是可用的。通不过BVT的构建称为“不可测”(self-hosed)
如果构建测试不能通过,那么自动测试框架会自动对每一个失败的测试产生一个bug(小强)。一般的做法这些小强都是有高优先级,是开发人员要首先修改这些小强。大家知道维持每日构建,并产生一个可测的版本是软件开发过程质量控制的基础。对于导致问题的小强,我们该怎么办?
1.找到导致失败的原因,如果原因很简单,程序员可以马上修改,然后直接提交。
2.找到导致失败的原因的修改集,把此修改集剔出此版本(程序员必须修改好后再重新提交到源代码库中)。
3.程序员必须在下一个构建开始前把此小强修理好。
方法1/2都可以使的构建成为“可测”,但是有时各方面的修改互相依赖,不能在短时间内解决所有问题,只能采用第三个办法。
问:有人提到一种“smoketest”,冒烟测试,是什么回事?
答:这事实上是一种基本验证测试,据说是从硬件设计行业流传过来的说法–当年设计电路板的时候,很多情况下,新的电路板一插上电源冒起白烟,烧坏了,如果插上电源后没有冒烟,那是通过了“冒烟测试”,可以进一步测试电路板的功能了。我们正在讨论的BVT也是一种冒烟测试。
1.6功能测试(functionaltest)
测试团队拿到一个“可测”等级的构建,他们会按照测试计划,测试各自负责的模块和功能,这个过程可能会产生总共10来个bug,也可能产生100个以上的bug,那么如何保证我们有效地测试了软件,同时我们在这一步怎样衡量构建的质量?
在MSF敏捷模式中,我们建议还是采用场景来规划测试工作
在“基本场景”的基础上,我们把所有系统目前理论上支持的场景都列出来,然后按功能分类测试,如果测试成功,在此场景中标明“成功”,否则,标明“失败”,并且把失败的情况用一个(或几个)“小强”/bug来表示。
当所有的测试人员完成对场景的测试,我们自然地得出了一个表:
场景ID场景名测试结果Bug/小强id
3024用户登录成功
3026用户按价格排序失败5032
3027用户按名字搜索失败5033
…………
这样我们能很快地报告“功能测试56%通过”等等。如果所有场景都能通过,(有些情况下可以把此标准从降低到90%左右)则这个构建的质量是“可用”,意味着这一个版本可以给用户使用。这种情况下,客户,合作伙伴可以得到这样的版本–这也是所谓“技术预览版”,或“社区预览版”的由来。
但是,有一个重要的问题要大家注意“可用”,并不是指软件都没有bug,而是指在目前的用户场景中,按照场景的要求进行的操作,都能得到预期的效果。
1.目前还没有定义的用户场景中,程序质量如何,还未得而知。
a.场景中没有考虑到多种语言设置
2.不按照场景的要求进行的操作,结果如何,还未得而知。
a.如:在某一场景中,场景规定用户可以在后付款前取消操作,回到上一步,如果一个测试人员发现在反复提交/取消同一访问多次,然后网页出现问题,这并不能说明用户场景失败,当然这个极端的bug也必须找出原因并在适当的时间改正。
这种测试有时也被称为“acceptancetest”,因为如果构建通过了这样的测试,这一个构建被测试团队“接受了”。同时,还有对系统各个方面进行的“接收”测试,如测试系统的全球化,或者针对某一语言环境做的测试。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11