【软件测试】 测试用例的基本要素与设计方法

简介: 【软件测试】 测试用例的基本要素与设计方法

🍃前言

本文重点为以下三点

  • 测试用例的基本要素
  • 测试用例的好处
  • 测试用例的设计方法

🌳测试用例的基本要素

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:

  • 测试环境、操作步骤、测试数据、预期结果等要素。

好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试评价测试用例的标准:

对比好坏用例的评价标准

用例表达清楚,无二义性。。

用例可操作性强。

用例的输入与输出明确。一条用例只有一个预期结果。

用例的可维护性好。

用例对需求的覆盖率

🍀测试用例的给我们带来的好处

  • 测试执行者的依据
  • 使得工作可重复,自动化测试的基础
  • 评估需求覆盖率
  • 用例的复用
  • 积累测试的方法思路以供后续借鉴

🎋测试用例的设计方法

🚩基于需求进行测试用例的设计

基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽。

在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项,然后根据每一个测试点进行测试用例的设计;

在分析测试需求时,一般分为功能测试需求和非功能测试需求

🎈功能需求测试分析

对于功能测试中,可以借助功能框图来帮助我们进行测试的需求分析。概括起来,功能测试需求包括以下,通常包括以下几个方面。

(1)系统各个功能界面的验证

(2)借助业务把功能串起来进行测试

(3)功能的一致性,交互性(多功能互操作)的测试

(4)系统的不同输入,结果输出的业务数据测试。

(5)功能的错误操作,异常操作的测试(属于负面测试)

(6)功能实现用到的算法验证,有时需要用运代码评审

(7)用户操作的易用性,用户体验,往往结合功能测试同时验证

针对具体的需求,可以根据业务分类,用户角色(餐厅的会员系统)或者用户操作区域等将系统的功能分解成若干个功能模块,然后按照功能模块分别进行测试需求分析。

按照功能模块划分,业务模块划分是最常见的做法

🎈非功能需求测试分析

非功能测试需求主要涉及性能,安全性,可靠性,兼容性,易维护性和可移植性等。

从测试需求分析来看,每一类非功能特性测试都需要根据需求单独分析。他们之间可能会存在相互影响,如安全性越高,就越有可能给易用性,性能带来更大的挑战。

这里要说明的是对于每一个应用软件系统,非功能特性的质量需求都是存在的,但是不同的项目类型对各个非功能特性的要求是不一样的,这个需要根据具体的项目、具体需求和不同产品应用的特点进行分析。

(1)纯客户端软件,比如字处理软件(Word,PPT),媒体(音频/视频)播放软件(电脑自带的)等。这类软件对系统的功能测试要求是最低的,但是对兼容性和稳定性,可移植性有一定的要求。

(2)企业内部的客户端/服务端(C/S)应用系统。比如电子邮件,即时通信系统(飞Q,企业QQ)等,在系统功能测试需求上比纯客户端复杂,要求功能正确,稳定性能好。但是整体上看,对性能,安全性,兼容性要求不高。

(3)外部大型复杂网络应用系统,比如电子商务,网上银行,视频网站(腾讯,优酷)等,除了有复杂的系统的功能测试需求外,在系统的性能,安全性,兼容性,容错性,可靠性等都有很高的要求

🚩具体的设计方法

🎈等价类

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合。

等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。

🎈边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

🎈错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。

这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。

错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。

这个方法的缺点是难以系统化,并且过度依赖个人能力。

🎈场景设计法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。

该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向

🎈因果图

因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。

因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况

学习因果图之前我们首先要了解以下知识

  • 恒等

    恒等:如果原因为真,那么结果必定为真。


  • 只有2个原因都为真,那么结果为真


  • 2个原因中有一个为真时,结果就为真。

  • 只有原因为假,结果才为真

因果图法设计测试用例的步骤如下。

(1)分析所有可能的输入和可能的输出。

(2)找出输入与输出之间的对应关系。

(4)实现判定表。

(5)把判定表对应到每一个测试用例

🎈正交排列

因果法设计用例太多怎么办?

正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合

正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。

正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

在学习正交排列时,我们需要先了解以下基础知识

  • 因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)
  • 水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)

正交表的构成:

  • 行数(Runs):正交表中的行的个数,即试验的次数,用N代表。
  • 因素数(Factors):正交表中列的个数,用C代表。
  • 因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)
  • 水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)

正交表的构成:

  • 行数(Runs):正交表中的行的个数,即试验的次数,用N代表。
  • 因素数(Factors):正交表中列的个数,用C代表。

正交法设计测试用例的步骤:

  1. 有哪些因素(变量)
  2. 每个因素有哪几个水平(变量的取值)
  3. 选择一个合适的正交表
  4. 把变量的值映射到表中
  5. 把每一行的各因素水平的组合作为一个测试用例
  6. 加上你认为可疑且没有在表中出现的用例组合

⭕总结

关于《【软件测试】 测试用例的基本要素与设计方法》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!

相关文章
|
9天前
|
机器学习/深度学习 人工智能 算法
深入探索软件测试中的黑盒测试技术
本文旨在通过一个创新视角,探讨软件测试领域中的黑盒测试技术。我们将从一个全新的维度——测试用例的生成策略出发,分析如何提高黑盒测试的效率和效果。文章不仅会介绍传统的测试用例设计方法,如等价类划分、边界值分析等,还会结合最新的技术发展,讨论人工智能在黑盒测试中的应用前景。通过案例分析和实践应用,我们期望为读者提供一套系统的黑盒测试解决方案,以应对日益复杂的软件测试需求。
|
13天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第12天】探索性测试,一种灵活的测试实践,旨在通过自由形式的探索发现软件的潜在缺陷。它不依赖于事先编写的测试用例,而是鼓励测试人员利用直觉、经验和创造力来指导测试过程。本文将深入探讨探索性测试的核心概念、实施策略以及它如何增强传统测试方法的有效性。
|
5天前
|
芯片
LDO的原理及测试方法
LM317是一种可调稳压器,核心是Bandgap Reference,用于提供1.25到37V的输出电压和1.5A的电流。了解其内部结构有助于测试和电路设计,例如理解温度系数对稳定性的影响,以及参数如IADJ(通常为50uA)的设计。测试时关注输出电压的线性和负载调整率,同时注意输入电流与输出电流的关系。LM317的测试还包括参考电压、滤波器性能、纹波抑制比等,确保电路的稳定性和效率。在多站点测试中,还需确保辅助电路的一致性和校准。
17 4
|
6天前
|
敏捷开发 运维 Devops
现代软件测试方法与挑战
在当今高度数字化和技术化的时代,软件测试成为保证产品质量和用户体验的关键环节。本文探讨了现代软件测试方法的演进和面临的挑战,从传统到自动化测试的转变,以及如何应对复杂性和快速变化的软件开发环境。
|
7天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第18天】本文将深入探讨探索性测试(Exploratory Testing)在软件测试领域的重要性与实施策略。不同于传统的脚本化测试,探索性测试强调测试人员的主观能动性和创造性,以真实用户的角度出发,发现那些可能在规范性测试中被忽视的问题。文章首先介绍探索性测试的定义和优势,然后通过案例分析,展示如何有效执行探索性测试,最后讨论其在敏捷开发环境中的适应性以及如何与传统测试方法相结合以提升测试覆盖率和效率。
|
8天前
|
敏捷开发 机器学习/深度学习 人工智能
现代软件测试方法与挑战
随着信息技术的迅猛发展,现代软件测试面临着越来越复杂的挑战。本文探讨了当前流行的软件测试方法及其在应对不断增长的复杂性和新兴技术方面的应用。重点讨论了自动化测试、敏捷开发以及人工智能在软件测试中的应用,以及它们如何改变了测试团队的角色和策略。最后,文章还分析了未来软件测试面临的可能发展趋势和挑战。
|
5天前
|
机器学习/深度学习 人工智能 算法
新时代下的软件测试方法探索与应用
随着信息技术的快速发展,软件在各行各业中的重要性日益凸显。为确保软件质量和稳定性,软件测试变得至关重要。本文将探讨新时代下的软件测试方法,并介绍其在实际应用中的效果和意义。
15 0
|
7天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
19 3
|
1月前
|
NoSQL 安全 测试技术
接口测试用例设计的关键步骤与技巧解析
该文介绍了接口测试的设计和实施,包括测试流程、质量目标和用例设计方法。接口测试在需求分析后进行,关注功能、性能、安全等六项质量目标。流程包括网络监听(如TcpDump, WireShark)和代理工具(Charles, BurpSuite, mitmproxy, Fiddler, AnyProxy)。设计用例时,需考虑基本功能流程、输入域测试(如边界值、特殊字符、参数类型、组合参数、幂等性)、线程安全(并发和分布式测试)以及故障注入。接口测试用例要素包括模块、标题、优先级、前置条件、请求方法等。文章强调了保证接口的幂等性和系统健壮性的测试重要性。
54 5
|
7天前
|
监控 前端开发 测试技术
postman接口测试工具详解
postman接口测试工具详解
35 7