【软件测试】如何在笔试中设计一个好的测试用例

2023-11-15

测试用例的重要性

  • 如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。
  • 软件测试是有组织性、步骤性和计划性的,为了能将软件测试的行为转换为可管理的、具体量化的模式,需要创建和维护测试用例
  • 测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳定的根本保障。

良好测试的特征

  • 可以最大程度地找出软件隐藏的缺陷
  • 可以最高效率的找出软件缺陷
  • 可以最大程度地满足测试覆盖要求 既不过分复杂、也不能过分简单
  • 使软件缺陷的表现可以清楚的判定
  • 待查的输出结果或文件必须尽量简单明了
  • 不包含重复的测试用例
  • 测试用例内容清晰、格式一致、分类组织

测试用例设计的考虑因素

  • 具有代表性、典型性
  • 寻求系统设计、功能设计的弱点
  • 测试用例需要考虑到正确的输入,也需要考虑错误的或者异常的输入
  • 需要分析怎样使得这样的错误或者异常能够发生
  • 考虑用户实际的诸多使用场景

测试用例的基本原则

  • 避免含糊的测试用例
  • 将具有相类似功能的测试用例抽象并归类
  • 数据驱动的测试用例 避免冗长和复杂的测试用例

测试用例的整体质量要求

  • 覆盖率:依据特定的测试目标,尽可能覆盖所有的测试范围、功能特性和代码
  • 易用性:设计思路清晰、组织结构层次合理,测试用例操作的连贯性好、执行顺畅。
  • 易维护性:以较少的时间来完成测试用例的维护工作,包括易读性、一致性等
  • 粒度适中:既能覆盖各个特定的场景,保证测试覆盖率;又能处理好不同的测试数据、测试条件(数据驱动),提高测试用例的可维护性

测试用例的重要因素

一条完整的用例,一般包含如下信息:
序号,功能模块,用例标题,前提条件,测试步骤,期望结果,实际结果,备注。如下表所示:
在这里插入图片描述

测试用例设计包含的几个方面

当面试官要求设计测试用例的时候,我们应该从以下几个方面入手,进行测试用例的书写
1、功能度
2、安全性
3、可靠性
4、可移植性
5、兼容性
6、易用性
7、用户文档
8、疲劳测试
9、压力测试
例如我们以最常见的测试----测试一个纸杯为例

  • 功能度:用水杯装水看漏不漏;水能不能被喝到
  • 安全性:杯子有没有毒或细菌
  • 可靠性:杯子从不同高度落下的损坏程度
  • 可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
  • 兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
  • 易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
  • 用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
  • 疲劳测试:将杯子盛上水放置24 小时检查泄漏时间和情况;
    盛上汽油放 24 小时检查泄漏时间和情况等
  • 压力测试:用根针并在针上面不断加重量,看压强多大时会穿透。

面试题目

有一个web页面,上面有文本输入框,用于计算一个文本字符串中大写字母A出现的次数。请设计出一系列字符串以测试这个web页面。
设计的步骤:
一、需求分析
无论进行什么测试设计,首先都要进行需求分析,除了理解产品的功能,还查看一下是否有模糊不明确的地方,比如:
1、需求中要计算大写字母A出现的次数,那小写字母a呢?是否计算在内?
2、本web页面用户会如何使用?即真实的业务场景是什么?
3、页面上是否会有输入限制,比如字符串长度限制?特殊字符是否允许输入?
二、用例设计
建议从功能测试、性能测试、安全性测试、易用性测试、异常测试等各个测试角度进行用例的设计。
(一)功能测试主要采取等价类划分和边界值分析的方法进行用例设计,具体如下:
字符串中包含0个A:b
字符串中包含1个大写的A:A
字符串中只包含A,且个数大于1且小于10个:AAA
字符串中只包含A,且个数大于10且小于100个:40个A
字符串中只包含A,且个数为字符串最大值:100个A
字符串中包含很多个字符,但不包含A
字符串中包含很多个字符,其中有1个A
字符串中包含很多个字符,其中有多个A
字符串中包含字符个数为最大值,其中有多个A字符串为空字符串
字符串中包含空格:如A B C a b c
字符串中包含特殊字符
字符串中输入超过最大长度的字符串时,如何处理?是不能输入?还是会有合理提示?(二)易用性测试
1、当字符串个数较多时,能否将字符串显示完整?
2、是否支持复制粘贴操作?
3、页面中输入框和按钮等元素的布局是否合理?
(三)性能测试
1、响应时间是否有要求
2、并发用户数是否有要求
(四)安全性测试
1、该web页面是否需要用户登录后才能操作?
2、该数据会被记录么?web页面关闭后再次打开时,鼠标放在输入框中是否会自动出现之前输入的数据?
3、是否需要采取其他web安全相关的方法来防止恶意攻击等?

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

【软件测试】如何在笔试中设计一个好的测试用例 的相关文章

  • 软件测试开发/全日制/测试管理丨接口测试抓包与 Mock/接口自动化测试

    在软件开发中 接口测试是确保系统各个组件之间协同工作的重要环节 接口测试抓包与Mock以及接口自动化测试相结合 能够更全面 高效地验证接口的正确性 性能和稳定性 从而打造一个稳健的接口生态系统 接口测试抓包 接口测试抓包是一种通过监控和记录
  • 软件测试开发/全日制/测试管理丨Docker容器技术

    Docker 是一种轻量级的容器技术 通过将应用程序及其所有依赖项封装到一个可移植的容器中 实现了应用程序的便携性 可部署性和可伸缩性 下面是关于 Docker 容器技术的主要概念和优势 主要概念 容器 Container 容器是一个轻量级
  • 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库 它允许编写 测试用例 时参数化 然后生成使测试失败的简单易懂的测试数据 可以用更少的工作在代码中发现更多的bug 安装 pip install hypothesis 如何设计 测试数据 通
  • 最佳利用Mock提升测试效率的7个技巧!

    再聊这个问题之前 我们先了解一下公司技术架构的演变过程 这样我们才能真正体会到我们为什么要使用 Mock功能 单体应用 在早期 大部分公司的应用技术栈主要可以分为两大类 LAMP Linux Apache MySQL PHP 和 MVC S
  • 【Mysql】InnoDB 引擎中的页目录

    一 页目录和槽 现在知道记录在页中按照主键大小顺序串成了单链表 那么我使用主键查询的时候 最顺其自然的办法肯定是从第一条记录 也就是 Infrimum 记录开始 一直向后找 只要存在总会找到 这种在数据量少的时候还好说 一旦数据多了 遍历耗
  • Python接口自动化测试处理不同接口间参数依赖

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试/测试开发/全日制/测试管理丨Python深拷贝与浅拷贝

    深拷贝和浅拷贝是两种不同的拷贝方式 它们在处理可变对象 如列表 字典 时有着不同的行为 以下是深拷贝和浅拷贝的主要区别 1 浅拷贝 Shallow Copy 创建方式 浅拷贝通过复制原始对象 创建一个新对象 但对于原始对象中的可变对象 如列
  • Locust负载测试工具实操

    本中介绍如何使用Locust为开发的服务 网站执行负载测试 Locust 是一个开源负载测试工具 可以通过 Python 代码构造来定义用户行为 避免混乱的 UI 和臃肿的 XML 配置 步骤 设置Locust 在简单的 HTTP 服务上模
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋

随机推荐

  • 信息安全技术 政务信息共享 数据安全技术要求

    声明 本文是学习GB T 39477 2020 信息安全技术 政务信息共享 数据安全技术要求 下载地址 http github5 com view 790而整理的学习笔记 分享出来希望更多人受益 如果存在侵权请及时联系我们 政务信息共享 数
  • opencv的CopyTo的用法

    用法1 深拷贝 A CopyTo B B 与 A 矩阵一模一样 改变任何一个 互不影响 用法2 掩膜操作 A CopyTo B M 把与M中非0像素 相同位置的A中像素copy到B中同一位置 M 必须是CV 8U 可以是单通道或多通道 可以
  • C++ 函数实参传递 (argument passing)

    C 函数实参传递 argument passing argument jum nt n 实参 parameter p r m t r n 形参 每次调用函数时都会重新创建它的形参 并用传入的实参对形参进行初始化 形参初始化的机理与变量初始化
  • 阿里规约等级

    Blocker 崩溃 一定要修改代码 阻碍开发或测试工作的问题 Critical 严重 根据情况改代码 系统主要功能部分丧失 数据库保存调用错误 用户数据丢失 Major 一般 选择性修改代码 功能没有完全实现但是不影响使用 功能菜单存在缺
  • 关于STM32运行一些函数存在卡死并进入HardFault_Handler函数的解决方法

    遇到的情况是 有一个需要运行的函数A 需要在函数B和函数C内运行 代码可如以下简单表示 void A char buf 一个运算量较大大的一个函数 功能是对圆弧进行解码 void B A buf1 void C A buf2 通过DEBUG
  • 第三篇:更新异常与规范化设计

    前言 在前两篇中 主要讲了ER建模和关系建模 在具体分析如何用数据库管理软件RDBMS Relational Database Management System 实现这些关系前 我想有必要思考下面这个问题 为什么要这么麻烦 为什么又是ER
  • C# List去掉某个位置的元素

    在 C 中 可以使用 RemoveAt 方法从 List 中删除指定位置的元素 这个方法接受一个整数参数 表示要删除的元素的索引 以下是一些示例代码 展示如何使用 RemoveAt 方法从 List 中删除指定位置的元素 创建一个包含一些元
  • Reactor模式

    Reactor是一种设计模式 可以用于构建高并发的网络服务器 Reactor模式的好处在于 可以在一个或多个reactor线程使用多路复用技术去管理所有网络连接连接建立 IO请求 保证工作线程不被IO阻塞 前置知识 IO多路复用技术 1 传
  • php zhegnze_php 正则表达式

    最近在写bbs中 遇上代码转换问题 寻找了很久 才得到一个比较完善的解决办法 可以彻底还原发文者的原文 以下贴出 供大家指正 系统 linux php4 oracle8i 标题 名字等字段入库处理 去首尾空格 function trans
  • AI代码生成插件推荐

    文章目录 前言 一 AI代码生成插件推荐 一 copilot 建议 个人不太推荐使用这个因为他收费了 二 codegeex 个人推荐 推荐使用这个 免费还不错 总结 AI代码生成可以有效的提高开发的效率
  • Windows磁盘管理

    0x01 磁盘管理概述 磁盘管理是一项计算机使用时的常规任务 它是以一组磁盘管理应用程序的形式提供给用户的 他们位于计算机管理控制台中 它包括查错程序和磁盘碎片整理程序以及磁盘整理程序 来源百度百科 本文主要介绍的内容为磁盘整理程序中的分区
  • 学成在线笔记+踩坑(0)——面试问题

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 目录 介绍你的项目 项目难点 CDN是什么 负载均衡是怎么做的 git
  • 【迎五一】超大福利来啦,众多精美课程、礼品等你来领

    C认证助力程序员 五一特惠活动来啦 单人报名可免费获得 电子书月卡 一份 组团报名皆可获得技术图书一本 无限次补考机会 带新用户报名皆可获得技术图书一本 精品网课 活动时间 4月26日 5月15日 心动不如行动 点击文末卡片立即了解 CSD
  • 哈希的应用 -- 布隆过滤器与海量数据处理

    文章目录 布隆过滤器概念 布隆过滤器设计思路 布隆过滤器的应用 布隆过滤器模拟实现 布隆过滤器的基本框架 布隆过滤器的插入 布隆过滤器的探测 布隆过滤器的删除 布隆过滤器优点 布隆过滤器缺陷 布隆过滤器模拟实现代码及测试代码 海量数据处理
  • 【云原生之Docker实战】使用Docker部署个人FireflyIII财务系统

    云原生之Docker实战 使用Docker部署个人FireflyIII财务系统 一 FireflyIII介绍 1 FireflyIII简介 2 FireflyIII特点 二 检查本地环境 1 检查系统版本 2 检查docker版本 3 检查
  • 数据可视化各个图表

    阶梯图 import pandas as pd from matplotlib import pyplot as plt postage pd read csv r http datasets flowingdata com us post
  • 请说说接口和抽象类的区别?

    1 从使用目的来看 接口只是一个类间的协议 它并没有规定怎么去实现 抽象类可以重用你代码使你的代码更加简洁 2 从行为来看 接口可以多继承 multi implement 抽象类不能实例化 必须子类化才能实例化 3 从属性来看 接口的属性必
  • VOSviewer

    1 文献下载 按需求搜索 wos一次只能导出500条文献信息 如果相关文献过多 可以按被引排序 导出 制表符分隔文件 全记录与引用的参考文献 2 可视化实现 打开VOSviewer软件 单击左区Map下的create 选择 create a
  • 计算机页面设置代码,计算机二级考试Access辅导:页面设置模块代码分享

    Dim up dn le ri si liAs Single co As string 定义边距及页面函数 Sub ymszmk strName As String 页面设置模块On Error GoTo Err ymszmkIf Nz D
  • 【软件测试】如何在笔试中设计一个好的测试用例

    测试用例的重要性 如何以最少的人力 资源投入 在最短的时间内完成测试 发现软件系统的缺陷 保证软件的优良品质 则是软件公司探索和追求的目标 软件测试是有组织性 步骤性和计划性的 为了能将软件测试的行为转换为可管理的 具体量化的模式 需要创建