【软件测试】测试用例的设计

简介: 针对没有需求的案例,我们可以从如下几个方面思考来设计测试用例

一. 针对没有需求的案例来设计测试用例

针对没有需求的案例,我们可以从如下几个方面思考来设计测试用例


功能测试 + 界面测试 + 性能测试 + 安全测试 + 兼容性测试 + 易用性测试


案例一:针对一个水杯来设计测试用例


ed59388be5ce4446b2dbc0c29540b574.png


案例二:针对一个登陆系统来设计测试用例


8ca4dab870414a9a87fde9a6f1b2ff18.png


二. 针对有需求的案例来设计测试用例

大概设计思路如下:


需求分析

概括出需求有哪些功能

设计测试点

设计测试用例

1. 穷举法

假如说给定的软件需求是:提示姓名长度为6~15位。


测试时数据我们设定为6、7、8 … 14、15,这样通过穷举法来设计测试用例,若测试用例通过,则认为功能符合需求要求。


假如说,给定的长度不是6~15位,而是6 ~ 500位,这时应该如何设计测试用例呢?这样测试用例通过穷举法肯定是不现实的。


2. 等价类

概念:针对需求把输入范围内的所有测试用例划分成若干个等价类,从其中一个等价类里取出一个用例,若该测试用例测试通过,则认为该测试用例所在的等价类通过。


等价类的核心是对测试数据进行分区分块,使用较少的测试用例达到符合的系统测试覆盖率。


等价类又划分成有效等价类和无效等价类:


有效等价类:针对需求来说是有效且有意义的数据构成的集合。

无效等价类:针对需求来说是无效且没有意义的数据构成的集合。

根据等价类划分测试用例的步骤:


确定有效等价类和无效等价类

编写测试用例

举例


需求:姓名可输入6~200位的字符,应该如何来设计测试用例呢?


第一步:确定有效等价类和无效等价类


有效等价类:6~200

无效等价类:小于6大于200

PS:其实在设计时还需要发散性的根据需求考虑更多情况,比如还可以针对字符的类型(数字、字符串、特殊字符)来设计有效等价类和无效等价类,这里只是简单的举例,只考虑长度。


第二步:编写测试用例

a9f9042151884f2d92ef3fc33fd79ddb.png



3. 边界值

边界值法通常是对等价类的补充。注意设计边界值测试用例时需要加上:边界值 + 次边界值


还是继续用等价类的例子,这次我们补充上边界值的测试用例:


c4ff2842704c479083fe400fdcc9e5f7.png


4. 判定表法

判定表法的核心是要考虑输入输出之间的组合关系,根据这个这个关系画出判定表然后设计测试用例。


判定表设计测试用例的步骤:


确定输入条件和输出条件

找出输入条件和输出条件之间的关系

画判定表

根据判定表编写测试用例

举例


需求:订单已提交,且订单总金额大于300元或订单有红包,则认为该订单属于有优惠的订单,否则属于没有优惠的订单。


step1:确定输入条件和输出条件


输入条件:金额大于300元、有红包、订单已提交

输出条件:有优惠、无优惠

step2:找出输入条件和输出条件之间的关系

997cc8536c2a45e58a397ae19abfe47d.png

step3:画判定表

db98117a780a4d0e80e6930c198eae60.png

step4:根据判定表来编写测试用例


金额大于300元,没有红包,没有提交订单,结果为无优惠

金额不大于300元,有红包,没有提交订单,结果为无优惠

金额不大于300元,没有红包,提交了订单,结果为无优惠

金额大于300元,有红包,没有提交订单,结果为无优惠

金额大于300元,没有红包,提交了订单,结果为有优惠

金额不大于300元,有红包,提交了订单,结果为有优惠

金额大于300元,有红包,提交了订单,结果为有优惠

金额不大于300元,没有红包,没有提交订单,结果为无优惠

5. 场景设计法

5.1 简介

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。


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


5.2 基本设计步骤

根据说明,描述出程序的基本流以及各项备选流

根据基本流和各项备选流生成不同的场景

对每一个场景生成相应的测试用例

对生成的所有测试用例重新复审,去掉多余的测试用例

测试用例确定后,对每一个测试用例确定测试数据值

5.3 基本流和备选流

基本流:也叫有效流或正确流,模拟用户正确的业务操作流程。

备选流:也叫无效流或错误流,模拟用户错误的业务操作流程。

5.4 使用场景

主要用来测试软件的业务逻辑和业务流程。一般先采用等价类划分、边界值分析、错误推断法、因果图及判定表法等对单点功能进行验证,验证通过后再采用场景法进行业务流程的验证。


5.5 优缺点

优点:涉及到业务场景,使用场景法有利于测试设计者设计测试用例,使测试用例更容易理解和执行。

缺点:只验证业务流程,不验证单点功能。

5.6 实例

场景介绍


用户进入网上购物系统网站进行购物,选好物品后进行购买。

这时需要使用账号登录,登录成功后付款,交易成功后生成订单,完成此次购物活动。

第一步:分析需求,确定基本流和备选流事件


4e4541cacfb946769fea7aa7222a8dc3.png

第二步:根据基本流和备选流来确定场景

a8d354a5b8e846f48aa002b66377575e.png


第三步:设计用例

1b0088ea16694d528a6d32cc60ac7691.png


第四步:设计测试用例中所需的数据

2e8ad8bf0e9e432481a8c120ef9cd002.png


6. 错误猜测法

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


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


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


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


以注册为例,我们可以对这个场景直接进行错误猜测,从而设计测试用例:


校验中特殊字符空格的处理?

密码校验中的大小写?

姓名中的特殊字符?

密码发送是否明文?


相关文章
|
27天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
81 8
|
2月前
|
测试技术
软件测试的艺术:探索式测试的实践与思考
在软件开发的广阔海洋中,测试是确保航船稳健行驶的关键。本文将带你领略探索式测试的魅力,一种结合创造性思维和严格方法论的测试方式。我们将一起揭开探索式测试的神秘面纱,了解其核心概念、实施步骤和带来的效益。通过实际代码示例,你将学会如何将探索式测试融入日常的软件质量保证流程中,提升测试效率与质量。
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
58 1
|
2月前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
2月前
|
测试技术 UED 开发者
软件测试的艺术与科学:探索有效的测试策略
在软件开发的宇宙中,测试是一颗璀璨的星辰,它不仅保障着产品的质量,也指引着项目的方向。本文将带你穿梭于测试的银河系,从基础的单元测试到复杂的集成测试,再到全面的系统测试,我们将一探究竟。你会发现,每一个测试阶段都是一次对代码深度和广度的挑战,也是一次对开发者耐心和智慧的考验。准备好了吗?让我们开始这段探索之旅,看看如何通过精心设计的测试案例来确保我们的软件能够在现实世界中稳健运行。
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
65 4
|
1月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
43 4
|
1月前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
35 1