一文教你如何编写测试用例

2023-11-17

一、通用测试用例八要素  

1、用例编号;   

2、测试项目;   

3、测试标题;   

4、重要级别;   

5、预置条件;   

6、测试输入;   

7、操作步骤;   

8、预期输出

二、具体分析通用测试用例八要素

1、用例编号   

一般是数字和字符组合成的字符串,可以包括(下划线、单词缩写、数字等等),但是需要注意的是,尽量不要写汉语拼音,因为拼音的意义可能有好几种,有可能会导致乱码;

用例编号具有唯一性和易识别性。( 比如说我们唯一标识一个人:中国-上海市-xx区xx号-xx楼–xx室-xxx.这样标识的话就具有唯一性了。)

不同阶段的测试用例的用例编号有不同的规则:   

(1)系统测试用例:产品编号-ST-系统测试项名-系统测试子项名-XXX   

(2)集成测试用例:产品编号-IT-系统测试项名-系统测试子项名-XXX   

(3)单元测试用例:产品编号-UT-系统测试项名-系统测试子项名-XXX   

**其中产品编号也叫项目标识,每个公司都有若干不同的项目或者产品,如何来区分它们呢?这就需要有产品编号了,每个公司都有自己的一套定义产品编号的规则,并且每个现有产品的编号已经制定好了,直接拿过来用就可以了。   

**产品编号后的ST、IT、UT分别对应系统测试阶段、集成测试阶段、单元测试阶段。实际工作中有些公司会将产品编号以及测试阶段省略。   

**测试阶段后面就是测试项目名了,对应的是较大较系统的测试点。   

**测试项目名后面就是测试子项目名,有些测试是没有子项目名的,只有当测试项力度比较大的时候才会有成都市子项 (比如说:我们要测试用户能否成功登录这个功能,那我们就可以分为很多个子项,qq登录、邮箱登录等等)。   

**测试子项名后面就是具体的用例编号了,可以是数字:01、001、002等等。

2、测试项目   

测试项目对应的就是测试用例中的子项名。   

(1)系统测试用例:对应一个功能点(功能测试)、性能指标(性能测试)、界面中控件(GUI测试)等等。   

(2)集成测试用例:对应集成后的模块功能或者接口功能。   

(3)单元测试用例:对应函数名。   

3、测试标题   

测试标题考虑的是如何来完成测试项目,或者说从哪个角度来对测试项目进行测试,有的公司也取名为测试目的。   

测试标题一定要简单、概要;体现测试的出发点和关注点。

4、重要级别   用例的重要级别一般分成三个级别:高、中、低。   

高级别:对应保证系统基本功能、核心业务、重要特性、实际使用频率比较高的用例;   

中级别:对应重要程度介于高和低之间的测试用例;   

低级别:对应实际使用频率不高,对系统业务功能影响比较大的模块或功能的测试用例。   

**举个手机的例子:**   

(1)高级别需求:正常通话功能、短信功能;   

(2)中级别需求:拍照、联系人、MP3;   

(3)低级别需求:计步、收音机等等。   

还需注意的是:针对**正常情况**的测试用例的重要级别比针对**异常情况**的测试用例的重要级别要高。

5、预置条件   

测试用例在执行前需要满足一些前提条件,否则测试用例是无法执行的,这些前提条件就是预置条件。   

预置条件分为两种情况:   

(1)环境的设置。   

例如:测试word打开文件的功能,预置条件就是:需要提前准备被打开的文件;   

例如:登录成功的预置条件就是:该用户名已经注册过了。   

例如:购买商品成功的预置条件就是:后台已经配置好商品、发货区域、以及支付方式了。

(2)先要运行的其他用例,有些操作系统会比较复杂,如果都是从最开始的操作开始会导致用例写起来比较麻烦,这样可以在预置条件中设定要先运行的测试用例,后面的用例只需要写后续的操作就可以了。   

例如:对自动取款机进行测试,有针对的输入账户信息的测试,有对输入取钱金额的测试,后者的预置条件就可以写成输入正确账户信息的测试用例。   

注:具体预置条件的设置不同的公司会有自己的规定,比如有的公司是不允许第二种情况出现的。

6、测试输入   

用例执行过程中需要加工的外部信息,根据软件测试用例的具体情况,有手工输入、文件、数据库记录等。   

禁止过多描述性语言,若为文件,会有提示选择路径,最好写具体,让别人易懂易操作。

7、操作步骤   

明确描述测试执行过程中具体的操作步骤,以方便测试执行人员可以根据该操作步骤完成测试用例执行。  

8、预期输出   

预期输出是测试用例中非常重要的一部分,预期输出可以检验被测对象是否正常工作,如果我们的预期输出写的不完整不全面,整个测试用例就会受到影响。   

我们在写预期输出的时候可以从以下三个方面来考虑:   

(1)界面显示:在操作步骤完成之后,界面会有显示;比如说我们测试用户登录功能,界面可能会显示登录成功或者登录失败。   

(2)数据库的变化:在操作步骤完成之后,数据库中的记录会发生相应的变化,比如删除功能的测试,点击删除后,数据库中该记录会被删除。

(3)相关信息的变化:在操作步骤执行完成后,一些和被测对象相关的信息会发生变化,比如:注销功能的测试,点击注销后,以前能访问的页面将无法再访问。

三、测试用例模板

最后,我自己也整理了一份软件测试资料,应该是全网最全的了【点击文末小卡片领取】,也是软件测试人最好的【学习资料库】 ,包括:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、Python基础、Selenium相关、性能测试、LordRunner相关等,希望对各位有所帮助!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文教你如何编写测试用例 的相关文章

  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 最小生成树总结1 prim算法

    最小生成树总结1 prim算法 最小生成树总结2 kurskal算法 文章目录 1 最小生成树问题概述 2 Prim算法流程 3 模板 4 板子题 1 最小生成树问题概述 给定带权节点网络 从中确定一个包含所有节点 n个 n 1条边 所有节
  • 机器学习到底是什么?

    关于机器学习最简单的定义来自于Berkeley所表述的 机器学习是AI的一个分支 它探索了让计算机根据经验提高效率的方法 为了更深刻的理解这一定义 接下来我们将对其进行拆分分析 AI的分支 人工智能是一种能够使得计算机及其系统能够成功完成通
  • MATLAB实现将数据写入到txt文件以及从txt文件中读取数据

    1 将数据写入到txt文件 global n global xm global ym xm 100 ym 100 global A global B n 10 A zeros 1 n B zeros 1 n for i 1 n A 1 i
  • 【Scala】scala ':' or newline expected \u200b

    1 背景 拷贝了网上一段代码 发现报错如下 这个是因为不可见字符 引起的 全局替换一下就好了 参考 IDEA IDEA报错 illegal character U 00A0异常解决
  • C++与C#类型转换例子

    C 部分类型定义 typedef struct SID AND ATTRIBUTES HASH DWORD SidCount PSID AND ATTRIBUTES SidAttr SID HASH ENTRY Hash SID HASH
  • Window11安装Docker Desktop(构建软链接解决Docker自动安装在C盘占用内存问题)

    一 查看电脑是否开启虚拟化 二 配置 Hyper V 三 构建软连接 使Dockor可以不安装在C盘 四 下载安装Dockor 五 配置环境 一 查看电脑是否开启虚拟化 打开设备管理器 gt 性能 gt CPU 查看是否开启虚拟化 若以开启
  • python中def main是什么意思_python - 为什么要使用def main()?

    其他人已经回答了 但我想我还有其他的东西需要补充 main 语句调用if的原因 无特定顺序 其他语言 如C和Java 具有main 函数 该函数在执行程序时调用 使用这个if 我们可以让Python像他们一样 这对许多人来说更为熟悉 代码将
  • python题库刷题网站_python在线刷题网站

    moduleinfo card count count phone 1 count 1 search count count phone 4 count 4 card des 阿里技术人对外发布原创技术内容的最大平台 社区覆盖了云计算 大数
  • java snack_Java 中 Snack3的使用

    网上看了一篇Java 中 Gson的使用 所以也跟着写篇Java 中 Snack3的使用 JSON 是一种文本形式的数据交换格式 从Ajax的时候开始流行 它比XML更轻量 比二进制容易阅读和编写 解析和生成的方式很多 Java中最常用的类
  • DHCP 服务器部署

    DHCP gt Dynamic Host Configuration Protocol 动态主机配置协议 背景 任何一个需要上网的设备 都必须得有IP地址 子网掩码 网关 等等网络参数 比如 手机 电脑 智能手表 智能眼镜 一个设备获取IP
  • 【深入理解C++】拷贝构造函数

    文章目录 1 拷贝构造函数 2 默认的拷贝操作 3 默认拷贝构造函数 4 何时调用拷贝构造函数 1 拷贝构造函数 拷贝构造函数是构造函数的一种 当利用已存在的对象创建一个新对象时 就会调用新对象的拷贝构造函数进行初始化 拷贝构造函数的格式是
  • linux的mmc子系统与块设备关联

    1 前言 本文主要block组件的主要流程 在介绍的过程中 将详细说明和block相关的流程 涉及到其它组件的详细流程再在相关文章中说明 2 主要数据结构和API 2 1 struct mmc card Elemete Name struc
  • Python打包系统简单入门

    最近把pyenv pipenv这种都研究了一下 然后我发现一个严重的问题 就是我虽然看了半天这些工具 但是我对Python自己的打包系统却完全没有了解 所以这篇文章就来研究一下Python自带的打包系统 pip 先来详细介绍一下pip的用法
  • IOS_swift_函数用法

    1 多个返回值 func x x Int y Int gt Int Int let a x y let b x y return a b let a b x 10 y 3 print a a let val x 10 y 3 print v
  • 【STM32】STM32F103基于CubeIDE移植ThreadX

    前言 本来ThreadX全家桶是无缝接入STM32单片机的 但是今天突然发现ST官方没有X CUBE AZRTOS F1这个软件包 使用CubeMX添加工程组件的时候 也没有ThreadX可以选择 因此就有了此文 Keil环境下的移植可以参
  • ad pcb界面变成灰色无法编辑

    在pcb库中编译后有一个error 点之后就无法编辑pcb了 解决方法 右键 gt 过滤器 filter gt 清除过滤器 clear filter
  • 【CVPR2022论文精读DiffFace】DiffFace: Diffusion-based Face Swapping with Facial Guidance

    CVPR2022论文精读DiffFace DiffFace Diffusion based Face Swapping with Facial Guidance 0 前言 Abstract 1 Introduction 2 Related
  • Python数据分析--读取npz文件

    使用pycharm的朋友们 需要在解释器来安装相应库 有想练手的朋友 用百度网盘 链接 https pan baidu com s 1aOTPRsqkgX4isGDhMjLdlQ 提取码 1234 国民生产总值案例 读取npz文件 第一步
  • caffe SigmoidLayer 学习

    SimgoidLayer 的定义 neuron layer h template
  • 一文教你如何编写测试用例

    一 通用测试用例八要素 1 用例编号 2 测试项目 3 测试标题 4 重要级别 5 预置条件 6 测试输入 7 操作步骤 8 预期输出 二 具体分析通用测试用例八要素 1 用例编号 一般是数字和字符组合成的字符串 可以包括 下划线 单词缩写