`
swanlake
  • 浏览: 17113 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

如何对你的测试用例进行分层

阅读更多
    从未有足够的时间做所有我们需要做的事情,这是在软件项目,尤其在测试中的一个普通的话题。假使你在可用的有限时间内,你如何知道你的测试工作做的最好?你知道当应用程序发布时,总会有些遗漏的缺陷没有被发现。对于测试而言,目标是通过改进产品质量使风险减到最小,并且这可以部分的通过建造一套具体的测试用例来将应用程序按照它的速度完成等方法实现。

IEEE Standard 610 (1990) 中定义测试用例为:
1. 为一个为特定目标而开发一组测试输入,执行条件和的期望结果,例如测试某个程序路径或核实是否满足某个特定的需求。
2.指定输入,预期结果和一组测试项的执行条件的文档 (IEEE Std 829-1983)。

当然,你将发现在项目的生命周期里的每一个应用程序的版本上执行你全部的测试用例是很困难的。但是你将如何知道哪个测试用例必须在每一个版本中执行,什么应该被执行,同时如果你有时间的话,什么又可以被执行?

给你的测试用例划分优先级别
你的应用程序不需要十全十美,但它必须迎合你目标用户的需求和期望。为了了解你项目的期望,你需要确定什么是应用程序中最重要的,目标和风险又是什么。
Sue Bartlett在“How to Find the Level of Quality Your Sponsor Wants”一文中详细的讨论了这个问题,她在文中注解到:“当我们在详细的计划,设计或编码之前沟通质量目标时,我们有一个更好的机会来避免在最后时刻的质量不匹配,那意味着迎合计划,弥补花费并且赢利将有一个更好的成功的机会。”


为了测试计划的目的,在你项目版本的进度下,测试执行的组织和安排你的测试用例将帮助达到这些目标。作为这种组织的一部分,我们要考虑每一个测试用例的优先级别。根据优先级别分组你的测试用例将帮助你决定不同类型的版本需要什么样的测试用例,因此计算需要的时间。如果你只有有限的时间,你可以查看什么是最合适。

Ross Collard在"Use Case Testing"一文中说:“测试用例的前10%到15%可以发现75%到90%的重要缺陷”。
测试用例的优先级划分将帮助确定找出了这前10%到15%的测试用例。

如何划分测试用例的优先级别
你曾查看过多少次你的测试用例并且能够很容易的挑选出最重要的一个小的子集?这个答案可能是不经常。停止思考“所有的测试用例都是同等重要”这个问题是非常困难的。当设计测试用例时,分配优先级别是不容易,并且在项目期间里不一定是静止的。然而,我们可以通过构造一个划分优先级别流程的例子来开始处理划分测试用例优先级别的第一步。让我们假设你刚刚根据功能说明书,
用例和其他一些关于你应用程序的目标行为和能力的信息源完成了建立测试用例。现在是时候来为每个测试用例分配一个优先级别了。
测试用例的优先级别
首先,你必须确定什么是你优先级别的类型和其暗示着什么。就我们的目的来说,
我们将用一个假设开始,那就是我们可能发现的缺陷的严重程度和那些相应测试用例的优先级别之间是平行的。
1 –小版本确认测试(Build Verification Tests (BVTs):也叫做“冒烟测试”,一组你想先运行的以确定这个给出的小版本是否可以测试的测试用例。如果你不能访问每一个功能区域或执行其他测试用例依赖的基本操作,那么在执行这个优先的测试用例之前,试图做其他任何的测试都是没有意义的,因为他们大多数肯定要失败。
2 – 高(Highs):最常执行以保证功能性是稳定的,目标的行为和能力可以正常的工作,和重要的错误和边界被测试的测试用例的集合。
3 – 中(Mediums):这是使给出的功能区域或功能变得更详细,检查功能的多数方面包括边界,错误和配置测试的测试用例
4 – 低(Lows):这是通常最少被执行的测试用例。但这并不意味着这些测试都不重要,只是说他们在项目的生命期间里不是常常被运行,例如GUI,错误信息,可用性,压力和性能测试。
我们将测试用例分成4类:BVTs,高,中和低。现在的问题是将测试用例分到不同的优先级别里。毕竟,优先级别将指出哪些测试用例被认为是需要更频繁的执行的,哪些又不是。


怎样着手分配优先级别
1) 随意地分配:
基于如果你没有足够的时间测试却又至少要保证所有的产品需求已经被确认可以在设想的良好状况下像它们被期望的那样工作的想法,下面这3 步将让你任意的分组测试用例,如果你也停下来思考每个测试用例的测试的内容,它们都将变的很重要。因此只需要:
I)把你所有功能性验证(或基本路径(Happy Path))的测试标注为高优先级别
II)把你所有错误和边界值或确认测试标注为中优先级别
III)把你所有非功能性的测试(例如性能和可用性)标注为低优先级别.
2) 提升和降级:
并非所有的功能性测试都一样的重要,并且和边界和非功能性测试一样的重要。思考一下测试的重要性及相对于其他同等优先级别的测试,你想要检查这个功能的频率-考虑质量目标和你项目的需求。
I)把功能性验证测试分为两组:重要和不是十分重要。
II)将“不是十分重要”的能性验证测试降级 为中优先级别
III)把错误和边界测试分成两组:重要和不是十分重要
IV)将“重要”的错误和边界测试升级为高优先级别
V)把非功能性测试分成两组:重要和不是十分重要
VI)把“重要”的非功能性测试升级为中优先级别
VII)针对每组高,中和低优先级别的测试用例,重复划分和升级/降级流程直到你达到一点,可以在不同优先级别之间移动的测试用例的数量到最小。
3) 识别小版本验证测试用例(Build Verification Tests):
现在,为了确保小版本是可以测试的,并准备好给小组其他成员开始测试,哪些测试用例是必须在每个小版本中都检查呢?
I)将好优先级别的测试用例分成两组:严重和重要的
II)将“严重”的高优先级的测试用例升级为BVT优先级
注意:不要先识别BVT测试用例!BVT只是高优先级别测试用例的精选,它们已经被确定为对系统和测试是非常重要的。
在这个流程的最后,就是要检查优先级别的百分比分布情况是:BVT为10-15%,高为20-30%,,中为40-60%,低为10-15% 。
在升级和降级测试用例时,需要考虑的方面是用户将要求这个功能或功能性的频率是怎样。同样的,对于用户日常的或月尾的活动而言,这种行为的严重性是如何。Robyn Brilliant在测试进度报告中提供了一个清单,你可以在考虑降级或升级测试用例的时候使用
使用从一到五的一个刻度,从最严重到最少的严重程度,量化可靠性风险如下:
I)
这个功能的失败将影响用户。
II)
这个功能的失败将给公司造成重大的影响
III)
这个功能的失败将引起一个潜在的延期给客户
IV)
这个功能的失败对公司将有较小的影响
V)
这个功能的失败没有任何影响
这个和其相似的刻度可以帮助你达到你测试用例优先级别划分的最后一步。
总结
这是一个简化的划分测试用例优先级别过程的例子。然而,在快速组织测试用例和安排测试进度和工作量,及制订项目计划时需要完成哪些测试用例等方面,它可以给你很多帮助。
记住,你怎样给你的测试任务划分优先级和如何执行测试用例将取决于你在你的项目周期的位置。当你朝发布前进并通过调查和观察确定危险和缺陷出现的地方时,你可能会重新给你的测试用例划分优先级别。向上为每个阶段建立你的测试目标并保证他们在你的测试用例的优先级别上被反映,当它在解释并执行你的计划时,将使你的生活变得容易得多。
分享到:
评论

相关推荐

    测试用例编写规范 测试用例原则 编写测试用例规范

    4.1 分类与分层:按照功能模块或系统组件对测试用例进行分类,便于管理和执行。 4.2 版本控制:随着软件迭代更新,测试用例也需要维护和更新,保持与最新版本的同步。 4.3 优先级与执行顺序:根据测试用例的重要性...

    自动化测试用例设计

    - **分层设计**:为了提高代码的复用性和减少维护成本,自动化测试用例被设计成分层结构,将通用功能和全局变量抽象出来。 - **框架管理**:引入了自动化测试框架来更好地管理和组织测试用例,提升测试效率。 3. ...

    Python-帮助Python开发和测试人员方便快速地编写测试用例并自动记录日志

    TestSteps 是一个专门为 Python 开发和测试团队设计的软件包,它的主要目标是简化测试用例的编写过程,同时提供自动日志记录功能,以增强测试的可追溯性和效率。在 Python 的测试自动化领域,TestSteps 提供了一种...

    测试用例与截图 二级栏目设计

    - **测试用例与截图**:设计详尽的测试用例,覆盖所有功能点,并配以实际操作截图,以验证系统的正确性和稳定性。 ### 结论 综上所述,该电子商务系统的设计与开发涵盖了从行业背景分析到具体功能实现的全过程。...

    自动化测试的分层结构

    在这个分层结构中,测试自动化代码会被分成三层:(1)测试用例层,表达应用程序的测试逻辑。(2)领域层,用业务领域术语来给待测系统建模,封装HTTP请求、浏览器控制、结果解析逻辑等,给测试用例层提供一个接口。(3)...

    存储产品型检认证测试用例4.doc

    本文档主要介绍了存储产品型检认证测试用例,涵盖了多个关键领域,包括硬件外观、接口、功能特性、冗余与容错能力、系统管理以及安全性等方面。以下是这些测试用例的详细解释: 1. **外观结构检查**:确保设备的...

    自动化测试异常处理与用例管理.doc

    1. **测试用例的前置条件与后置条件**:测试用例在执行前需要满足一定的环境或状态,称为前置条件,例如特定的系统配置或数据准备。后置条件则是测试执行后的清理或恢复工作,确保测试环境回到正常或初始状态。前置...

    自动化测试中的分层模型

    1. **依赖物理环境**:传输组网测试中的每一个测试用例都需要基于实际的物理环境来进行。这意味着在测试过程中需要考虑网络拓扑结构、硬件配置等因素。 2. **涉及大量网元**:在组网环境中,存在大量的网络元素...

    基于树结构的用例分层扩展 (2007年)

    粗粒度的用例建模不适应大型软件系统的开发,通过引入树结构,对用例进行分层分解扩展,使用例细化。但 UML已定义的用例关系对于描述细化用例和原用例之间的关系并不适用,因此提出了一种新的用例间的关系,使细化后的...

    用例驱动自动化测试在国产化环境下应用.pdf

    设计并实现了一个基于Excel用例模板的API接口通用自动化测试工具,该工具使用Python语言开发,并将测试用例、测试数据和测试执行代码分层开发,从而实现了用例数据驱动API接口自动化测试在国产化环境下的应用。...

    软件测试技术 测试的分层

    单元测试是对软件中的最小可测试单元进行检查,通常是函数、方法或类。它的目的是在开发早期发现并修复代码中的错误,确保单个组件按照预期工作。单元测试的主要内容包括: 1. **测试对象**:确定要测试的具体函数...

    分层架构的单元测试

    7. **修复问题**:根据测试结果,对代码进行相应的修改,然后重新运行测试,直至所有测试用例都通过。 通过这种流程,我们可以确保分层架构的每个部分都能独立且正确地工作。单元测试的实践不仅提高了代码质量,还...

    大厂经典测试场景案例汇总合集

    #### ATM自动取款机测试用例 1. **功能测试:** - 卡类型识别。 - 密码验证:是否为掩码、输入错误时的提示等。 - 取款功能:金额限制、币种差异。 - 操作完成后打印信息。 - 查询功能。 - 转账功能。 - ...

    elasticsearch-tutorial:使用测试用例的ElasticSearch Java API教程

    弹性搜索教程使用测试用例的ElasticSearch Java API教程。 本教程以使用junit测试用例针对不同功能的示例为例,说明了 Java api的用法。第1部分介绍ElasticSearch集群设置以及ES入门。 索引,文档类型,节点,分片/...

    HowToWriteGoodTestCases:使用Robot Framework编写好的测试用例的一般准则

    3. **分层组织测试套件**:按照功能、模块或者组件将测试用例组织成测试套件。这有助于管理和执行测试,同时也方便定位问题。 4. **独立性**:确保每个测试用例都是独立的,不受其他用例的影响。避免一个测试用例...

Global site tag (gtag.js) - Google Analytics