测试用例的编写

ops/2024/10/15 22:09:29/

1.基本概念:

        编写测试用例是确保代码质量和正确性的重要环节,尤其是在软件开发和维护过程中。测试用例通常用于验证功能是否符合预期,并及时发现潜在的错误或漏洞。

2.常见的测试用例编写方法:

        等价划分法,边界值法,因果表法,场景法,错误推测法,需求分析法,判定表法.

        (1).等价划分法:等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例

               比如在注册时,密码规定为8-16位英文字母或数字及下划线,那么小于8位的一串字符就是一个等价类,大于16位的一串字符是另一个等价类,在8-16位之间且符合规范的一串字符也是一个等价类,在8-16位之间的但包含除英文字母和数字和下划线之外的字符是另外一个等价类。

        (2).边界值法:边界值分析是对输入或输出的边界值进行测试的一种黑盒测试方法。

                        比如某公司在招聘时筛选简历时对年龄的要求是18岁到35岁,那么19、18、17、34、35、36都是边界值,对其进行输入测试观察结果是否符合要求。

        (3).场景法:模拟用户使用软件产品的真实场景来设计测试用例,场景法一般分为基本流和备用流,覆盖所有的场景。

         基本流是系统最主要、最正常的业务流程;备选流是在基本流的基础上,由于各种异常情况或条件分支而产生的流程。

        对于一个在线购物系统,基本流可以是用户浏览商品、加入购物车、结算、支付、完成订单。备选流可以包括商品缺货、支付失败、用户取消订单等情况。针对不同的场景编写测试用例,以覆盖系统的各种可能情况。

        (4).判断表法:适用于有多个输入条件和多个输出动作的情况,尤其是当输入条件之间存在相互制约和依赖关系时。

        (5).错误推测法:基于经验和直觉的测试用例设计方法

测试用例的编写流程:

        需求分析->提取测试点->测试用例编写->测试用例评审

测试用例的基本结构

        每个测试用例通常包含以下几个要素:

  • 测试编号:唯一标识这个测试用例
  • 测试标题:简短描述测试目标。
  • 前提条件:执行测试前系统应处于的状态,或者某些依赖条件。
  • 测试步骤:详细列出执行该测试的步骤。
  • 输入数据:提供输入的具体值(尤其对于边界条件)。
  • 预期结果:明确测试成功的标准,即在执行完测试后期望系统的行为。
  • 实际结果:执行测试后的实际表现(通常在手动测试后填写)。
  • 通过/失败:确认测试是否通过。

编写测试计划

  • 明确测试的目标和优先级。
  • 列出需要测试的功能和场景。
  • 确定需要覆盖的边界条件、异常情况和性能要求。

考虑边界条件和异常情况

        除了典型的正向测试场景,还需要设计负向测试或边界测试用例。例如:

  • 异常场景
    • 输入错误的用户名或密码,应提示“用户名或密码错误”。
    • 用户名或密码为空,应提示“用户名或密码不能为空”。
  • 边界条件
    • 密码的最小长度/最大长度限制。
    • 用户名包含特殊字符时的处理。

测试用例的评审和维护

        定期评审:定期评审测试用例以确保它们的相关性和有效性。

         更新维护:随着需求的变更,及时更新测试用例


http://www.ppmy.cn/ops/126131.html

相关文章

线性回归损失函数的推导

要推导损失函数公式 ℓ ( θ ) 1 2 n ( y ^ − y ) ⊤ ( y ^ − y ) \ell(\boldsymbol{\theta}) \frac{1}{2n}(\hat{\boldsymbol{y}} - \boldsymbol{y})^\top(\hat{\boldsymbol{y}} - \boldsymbol{y}) ℓ(θ)2n1​(y^​−y)⊤(y^​−y),我们可以从几个基础概念开…

安装R和RStudio:开始你的数据分析之旅

数据分析是当今世界中一个非常热门的领域,而R语言是进行数据分析的强大工具之一。R是一种编程语言和软件环境,用于统计计算和图形表示。RStudio是一个集成开发环境(IDE),它为R语言提供了一个更加友好和高效的工作环境。…

Python | Leetcode Python题解之第474题一和零

题目: 题解: class Solution:def findMaxForm(self, strs: List[str], m: int, n: int) -> int:count10 []for s in strs:count10.append([0,0])for c in s:if c 0: count10[-1][0]1else: count10[-1][1]1dp [[0]*(n1) for _ in range(m1)]for i …

Go 语言中的格式化占位符

在 Go 语言中,fmt 包提供了大量的格式化占位符,用于格式化输出不同类型的数据。选择合适的占位符,可以确保输出的内容格式正确、清晰易懂。 常见的占位符: 基本类型 %v:按值的默认格式输出。适用于任何类型。%v&…

vue3.0 + vite:中使用 sass

1、安装依赖 npm i sass sass-loader --save-dev 在项目的src/assets文件夹下新建style/index.scss 文件 2、在 vite.config.ts 中加: resolve: {alias: {: fileURLToPath(new URL(./src, import.meta.url))} }, css: {// 配置 SCSS 支持preprocessorOptions: {s…

Codeforces Round 946 (Div. 3) F题 Cutting Game(双指针,模拟)

题目链接 Codeforces Round 946 (Div. 3) F题 Cutting Game 思路 维护两个数组,一个按照 x x x坐标排序,一个按照 y y y坐标排序。 使用双指针,维护两个数组剩下的点的头和尾。 最后直接模拟即可。 代码 #pragma GCC optimize("O…

全流程信息收集方法总结

信息收集 信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进行。最简单的比如说目标站点的IP、中间件、脚本语言、端口、邮箱等等。我觉得信息收集在我们渗透测试的过程当中,是最重要的一环,这一环节没做好&#…

kimi帮我解决ubuntu下软链接文件夹权限不够的问题

我的操作如下 ubuntuubuntu-QiTianM420-N000:~$ ln -s /media/ubuntu/4701aea3-f883-40a9-b12f-61e832117414 code ubuntuubuntu-QiTianM420-N000:~$ ls -l 总用量 636 drwxrwxr-x 2 ubuntu ubuntu 4096 5月 7 17:16 bin drwxrwxrwx 2 ubuntu ubuntu 4096 5月 8 13…