`
eriol
  • 浏览: 405558 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

测试用例的一些概念整理

阅读更多

测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

 

测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。

 

可以采用软件测试常用的基本方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基本方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。

 

 

测试用例的设计

(一)白盒技术

白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例。

 

1. 逻辑覆盖

      程序内部的逻辑覆盖程度,当程序中有循环时,覆盖每条路径是不可能的,要设计使覆盖程度较高的或覆盖最有代表性的路径的测试用例。下面分别讨论几种常用的覆盖技术。

  • 语句覆盖。为了个提高发现错误的可能性,在测试时应该执行到程序中的每一个语句。
  • 判定覆盖。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次,因此判定覆盖也称分支覆盖。
  • 条件覆盖。条件覆盖是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。
  • 判定/条件测试。该覆盖标准指设计足够的测试用例,使得判定表达式的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
  • 条件组合覆盖。条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。
  • 路径覆盖。路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径。

      在实际的逻辑覆盖测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例,以达到路径覆盖测试标准。

 

2.循环覆盖

 

3.基本路径测试

 

 

(二)黑盒技术

1.等价类划分

(1) 划分等价类。

  • 如果某个输入条件规定了取值范围或值的个数。则可确定一个合理的等价类(输入值或数在此范围内)和两个不合理等价类(输入值或个数小于这个范围的最小值或大于这个范围的最大值)。
  • 如果规定了输入数据的一组值,而且程序对不同的输入值做不同的处理,则每个允许输入值是一个合理等价类,此处还有一个不合理等价类(任何一个不允许的输入值)。
  • 如果规定了输入数据必须遵循的规则,可确定一个合理等价类(符合规则)和若干个不合理等价类(从各种不同角度违反规则)。
  • 如果已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分为更小的等价类。

(2) 确定测试用例。

  • 为每一个等价类编号。
  • 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖过的合理等价类。重复这步,直到所有合理等价类被测试用例覆盖。
  • 设计一个测试用例,使其只覆盖一个不合理等价类。

 

2.边界值分析

      使用边界值分析方法设计测试用例时一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。

 

  (1) 如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,同时还要选择刚好越过边界值的数据作为不合理的测试用例。如输入值的范围是[1,100],可取0,1,100,101等值作为测试数据。

  (2) 如果输入条件指出了输入数据的个数,则按最大个数、最小个数、比最小个数少1、比最大个数多1等情况分别设计测试用例。如,一个输入文件可包括1--255个记录,则分别设计有1个记录、255个记录,以及0个记录的输入文件的测试用例。

  (3) 对每个输出条件分别按照以上原则(1)或(2)确定输出值的边界情况。如,一个学生成绩管理系统规定,只能查询95--98级大学生的各科成绩,可以设计测试用例,使得查询范围内的某一届或四届学生的学生成绩,还需设计查询94级、99级学生成绩的测试用例(不合理输出等价类)。

由于输出值的边界不与输入值的边界相对应,所以要检查输出值的边界不一定可能,要产生超出输出值之外的结果也不一定能做到,但必要时还需试一试。

  (4) 如果程序的规格说明给出的输入或输出域是个有序集合(如顺序文件、线形表、链表等),则应选取集合的第一个元素和最后一个元素作为测试用例。

 

3.错误推测

在测试程序时,人们可能根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例,这就是错误推测法。

 

4.因果图

等价类划分和边界值方法分析方法都只是孤立地考虑各个输入数据的测试功能,而没有考虑多个输入数据的组合引起的错误。

 

5.综合策略

每种方法都能设计出一组有用例子,用这组例子容易发现某种类型的错误,但可能不易发现另一类型的错误。因此在实际测试中,联合使用各种测试方法,形成综合策略,通常先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。

 

 

回归测试

      回归测试比较同一测试目标的两个工作版本或版本,并将差异确定为潜在缺陷。据此可假定:新版本应该象早先版本一样操作,并确保并未因为版本的变化而带来缺陷。

      理想状态下,您可能希望一次迭代内的所有测试用例都能在后续迭代内使用。应遵照下列指导原则来确定、设计并实施测试用例,这些测试用例可以最大限度地发挥回归测试和复用的价值,同时将维护的成本减至最低:

  • 确保测试用例只确定关键的数据元素(创建/支持被测试的条件所需的数据元素) 
  • 确保每个测试用例都说明或代表一个唯一的输入集或事件序列,其结果是独特的测试目标行为 
  • 消除多余或等效的测试用例 
  • 将具有相同的测试目标初始状态和测试数据状态的测试用例组合到一起
分享到:
评论

相关推荐

    JIRA测试用例创建以及关联Strory故事操作指南.pdf

    一、JIRA测试用例概念 在软件测试领域,测试用例(TestCase)是为了验证特定的软件功能或行为符合预期要求的一系列操作步骤。它包括测试目标、测试数据、测试步骤、预期结果等重要信息。JIRA是一个广泛使用的项目与...

    测试用例的讲解

    在“04_测试用例概念.avi”这个视频文件中,可能涵盖了测试用例的基础概念、设计方法和实例解析,对于深入了解和掌握测试用例的运用大有裨益。通过观看和学习,可以进一步提升软件测试的专业技能,更好地服务于软件...

    QQ登录界面因果图法设计测试用例

    因果图法是一种系统化的测试设计技术,它可以帮助测试工程师全面考虑输入条件和它们之间的相互关系,从而有效地设计测试用例。以下将详细阐述如何利用因果图法设计QQ登录界面的测试用例。 首先,我们要理解因果图法...

    【软考】测试用例的选择策略与测试用例的编写.docx

    一、测试用例的概念与重要性 测试用例是一组特定的输入条件或预设操作,以及预期的输出结果,用于验证某个特定功能或系统行为是否符合规定的需求。测试用例设计的目的是为了全面、有效地发现软件中的错误,因此,...

    性能测试测试用例下载

    在这个压缩包文件“性能测试用例”中,我们可以预见到一系列针对不同场景和目标的性能测试方案。 首先,我们需要理解性能测试的基本概念。性能测试是为了确定系统在特定工作负载下的性能特性,如响应时间、吞吐量、...

    测试用例编写规范文档格式

    测试用例编写规范是软件测试过程中的重要环节,旨在确保测试用例全面覆盖系统功能,以验证系统在各种条件下的正确性。以下是对这个规范的详细解析: 1. **背景**: 测试用例设计的目标是确保需求的覆盖率,这涉及...

    软件测试知识大全-自己收集整理的测试方面的资料

    2. **史上最全的测试用例设计方法总结.doc**:这份文档详细介绍了测试用例设计的各种方法,如等价类划分、边界值分析、因果图、决策表、状态图等。测试用例是确保软件功能正确性的核心工具,这些方法帮助我们系统地...

    软件测试技术和测试实训教程讲座第16章回归测试的实用技术ppt课件.ppt

    从测试用例库中,排除所有不再适用的测试用例,确定那些对新的软件版本依然有效的测试用例;依据一定的策略从新的基线测试用例库中选择测试用例测试被修改的软件;如果必要,生成新的测试用例集,用于测试新的基线...

    软件测试指南-ChatGPT创作,TesterHome社区整理.pdf

    测试用例可以分为不同的类型,包括功能测试用例、性能测试用例、安全测试用例等,每种类型的测试用例都有其特点和应用场景。 软件测试是一个复杂的过程,它需要tester 和开发者具备一定的知识和技能。本指南旨在...

    很全的软件测试面试题整理.doc

    测试用例是软件测试中一个非常重要的概念,通常包括测试模块、用例编号、测试目的、预置条件、测试步骤、预期结果、实际结果等内容。测试用例的设计方法有等价类划分、边界值、判定表、正交排列法、场景法、测试大纲...

    测试文档模板整理

    3. **测试用例设计**:"测试用例的设计-提高测试覆盖率.doc.doc"着重于如何设计有效的测试用例,以最大程度地覆盖代码,找出潜在的缺陷。它可能涵盖了等价类划分、边界值分析、因果图和决策表等技术。 4. **软件...

    用户需求用例表(User Request Case Table)

    #### 一、用户需求用例表的概念与作用 用户需求用例表是一种项目管理工具,主要用于记录和管理软件开发过程中的用户需求。它通过一系列结构化的表格来清晰地展示每一个用户需求的具体细节,包括需求的编号、需求...

    软件测试资料大全整理

    2. 测试用例设计:包括如何创建有效的测试用例,如何编写清晰的预期结果,以及如何覆盖各种边界条件和异常情况。 3. 缺陷管理:涵盖缺陷报告的格式、严重性级别、优先级和跟踪过程,以及如何有效地沟通和解决缺陷。...

    软件测试考试提纲整理

    设计用例时,我们需要基于代码结构,如循环、分支、函数调用等,来创建覆盖各种路径的测试用例,以确保所有可能的执行路径都被测试到。 3. **测试分类和基本内容**:测试通常分为单元测试、集成测试、系统测试和...

    软件测试笔记整理.zip

    本章专注于测试用例设计,包括如何定义测试条件、创建有效的输入数据、预期结果的描述以及优先级和严重性的划分。编写高质量的测试用例是保证测试覆盖率的关键,能有效发现潜在的软件问题。 5. **第五章 软件测试...

    软件测试期末复习.doc

    软件测试是软件开发过程中的关键环节,旨在确保软件的质量和可靠性。...以上知识点涵盖了软件测试的基本概念、方法、任务、错误处理和测试用例设计等多个方面,对于理解和准备软件测试期末复习具有重要意义。

    软件测试常见面试题整理

    ### 软件测试用例设计方法 1. **黑盒测试方法**: - **等价类划分法**:将输入域划分为若干个等价类,每个等价类内的数据在测试中被认为是等效的。例如,在完整性查询中,如果输入条件为年龄范围18至60岁,则可...

Global site tag (gtag.js) - Google Analytics