【软件测试】测试用例设计要点总结

文章目录

  • 考试题型
  • 简答题
  • (一) 等价类划分
    • 1.1 划分等价类
    • 1.2 设计测试用例
  • (二) 边界值分析
    • 2.1 列出边界值分析表
    • 2.2 设计测试用例
  • (三) 因果图分析
    • 3.1 确定原因和结果
    • 3.2 确定原因和结果之间的逻辑关系
    • 3.3 在因果图上使用标准的符号标明约束条件
  • (四) 判定表驱动
    • 4.1 将因果图转换为判定表
    • 4.2 设计测试用例
  • (五) 逻辑覆盖
  • (六) 基本路径测试
    • 6.1 画出程序控制流程图
    • 6.2 计算程序环路复杂性
    • 6.3 确定独立路径集合
    • 6.4 设计测试用例


考试题型

  • 简答题 (共 4 题,每题 5 分,共 20 分)
  • 等价类划分 (16 分)
  • 边界值分析 (13 分)
  • 判定表驱动 (22 分)
  • 逻辑覆盖 (12 分)
  • 基本路径测试 (17 分)
  • 注意事项:
    • 尽快检查在线测试是否存在误判情况
    • 核对实验成绩及扣分情况
    • 注意答题顺序 (建议按难易程度+分值)
    • 不可使用铅笔绘图 (因果图和程序控制流程图)
    • 测试用例中每个输入条件都必须有具体确定的数值
    • 表头中标注编号的部分只给出编号除了逻辑覆盖法的条件覆盖以外,其他测试至多有一种无效情况存在(null也所做一种)

简答题

  • 重点复习:
    • 软件质量分析【ISO】
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 手工测试与自动化测试【软件测试的分类】
      在这里插入图片描述
    • 因果图分析法确定中间结果的一般原则【因果分析法设计要点】
      在这里插入图片描述
    • 逻辑覆盖法与基本路径测试法【逻辑覆盖法与基本路径测试法】
      在这里插入图片描述
    • 单元测试的任务及采用方法【单元测试的目标和方法】
      在这里插入图片描述

(一) 等价类划分

1.1 划分等价类

  • 等价类设计允许适度冗余;
  • 输入条件包含复合情况需拆分;
  • 用于验证系统功能正确性的有效等价类允许合并;
  • 分析等价类时需注意隐含条件;
  • 有效等价类和无效等价类需分别顺序编号;
  • 输出域不为海量数据时,无需分析等价类;
  • 输入条件间存在依赖关系时只需在测试用例设计过程中有所体现,等价类设计时作为独 立条件分析。

1.2 设计测试用例

  • 预期输出需与题目规则要求完全一致;
  • 一个测试用例最多只能覆盖一个无效等价类;
  • 对于验证健壮性的测试用例,覆盖等价类编号只需突出无效等价类即可;
  • 测试用例设计需同时兼顾输入和输出等价类的覆盖。

(二) 边界值分析

2.1 列出边界值分析表

  • 只需为与数值、区间、范围、时间有关的等价类分析边界值;
  • 七点法代表一种选值的思想,不需要硬凑七个数据,需具体问题具体分析;
  • 若为无界区间[a,+∞] ,则右边界选择一个足够大的数代替无穷大即可;\需选择固定取值作为测试用例的正常值。

2.2 设计测试用例

  • 所有测试用例的数据均应取自边界值分析表;
  • 一个测试用例最多只能覆盖一个边界值,其余均取正常值;
  • 与数值无关的等价类在测试用例设计过程中随意选取合法有效输入即可。

(三) 因果图分析

3.1 确定原因和结果

  • 原因:输入条件的有效等价类 ( 一般规则)
  • 结果:预期输出
  • 注意事项:
    • 原因和结果均以逻辑值形式给出;
    • 建议以有效等价类形式描述原因;
    • 为了确保测试的充分性,复合条件需拆分为简单条件 (关系表达式);
    • 原因和结果的编号及描述需做到规范准确。

3.2 确定原因和结果之间的逻辑关系

  • 不可使用铅笔绘制因果图;
  • 分析问题的一般方式为:从结果入手,分析结果和原因间存在怎样的关系;
  • 如果结果间存在递进关系或者嵌套关系,则必须按输入顺序进行分析;
  • 中间结果的确定:多个输入条件间存在更为紧密的关系;
  • 某输出以某输入作为前提条件 (注意需求中的描述) ,为了后续分析的顺利进行,必须 增加中间结果。

3.3 在因果图上使用标准的符号标明约束条件

  • 原因间约束的确定:需从最终用户角度出发,考虑对用户输入的限制。

(四) 判定表驱动

4.1 将因果图转换为判定表

  • 对于不合理规则,根据题目要求确定是否列出;
  • 中间结果无需列出,条件桩和动作桩只需列出原因和结果的编号即可;
  • 为了减少规则及测试用例数量,应尽可能进行合并化简;
  • 避免重复合并及遗漏合并现象发生,建议按输入条件的顺序进行合并。
  • 判定表驱动法考虑排列组合问题。
  • 合并化简注意事项:
    • 对于输入条件过多的情况,可以一开始就考虑合并化简;
    • 合并化简的前提为动作项相同;
    • 必须通过“-”表示条件无关或者条件不适用。

4.2 设计测试用例

  • 测试用例中每个输入条件都必须有具体确定的数值,不可用“-”或“取值无关”表示;
  • 测试用例若为空,则任何信息均不填写,不可用“为空”或“NULL”表示。

(五) 逻辑覆盖

  • 基本设计思路:
    • 按照“分类设计,严卡概念”的基本思想开展测试设计任务;
    • 合理利用真值表,先确定判断或条件的取值,然后选择测试数据;
    • 先设计覆盖率低的测试用例,然后对照覆盖率高的要求,查缺补漏;
    • 避免出现冗余或遗漏。
      在这里插入图片描述
  • 注意事项:
    • 真值表中必须通过“-”表示条件不适用;
    • 逻辑覆盖分析中只考虑判定间的嵌套关系,不考虑条件间的逻辑关系;
    • 对于真值表中验证不到的输入条件,测试用例中必须给出具体且有效的数据;
    • 覆盖路径只需给出编号即可。

(六) 基本路径测试

6.1 画出程序控制流程图

  • 复合条件下判定结点必须拆分为简单条件 (关系表达式);
  • 适当合并处理结点;
  • 根据情况适当增加汇合点 (分支结构结束、程序出口等)。
  • 绘图结束后,确认以下内容:
    • 需保证每个条件结点出度等于 2;
    • 图的绘制保证单入口单出口;
    • 避免出现交叉线导致区域无法准确识别;
    • 在图中需标出区域,注意 1 个开放区域;
    • 汇合点必须给出编号。

6.2 计算程序环路复杂性

  • 三个公式必须给出完整计算过程和结果。
  • 由于程序流程图中已标出条件结点的序号,则公式 P+1 可用于检验其他公式结果是否一致, 以及绘图是否正确。

6.3 确定独立路径集合

  • 独立路径数≤环路复杂性,若程序控制流程图中存在局部连锁结构,则独立路径数<环路 复杂性;
  • 基本路径覆盖需保证程序控制流程图中所有结点和控制流线(弧)的覆盖;
  • 独立路径列举过程中避免出现冗余或遗漏;
  • 独立路径需排除不合理情况。

6.4 设计测试用例

  • 测试用例中每个输入条件都必须有具体确定的数值,即使覆盖的独立路径未验证到某个 输入条件;
  • 覆盖独立路径只需给出编号即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/28406.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何利用ChatGPT写毕业论文

如何利用ChatGPT写毕业论文 ChatGPT是什么&#xff1f;利用ChatGPT写毕业论文的步骤1.准备数据2.训练模型3.生成论文4.检查论文 总结地址 ChatGPT是什么&#xff1f; ChatGPT是一个基于GPT-2模型的开源聊天机器人&#xff0c;它可以回答用户的问题&#xff0c;进行闲聊和提供各…

【头歌-Python】9.2 能带曲线绘制(project) 第1~3关

第1关&#xff1a;能带曲线绘制一 任务描述 本关任务&#xff1a;使用matplotlib绘制图形。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 使用 matplotlib 绘制图形python 读取文件 python 读取文件 python读取文件可以用以下函数实现&#xff1a; # …

Java学习笔记(视频:韩顺平老师)4.0

如果你喜欢这篇文章的话&#xff0c;请给作者点赞哟&#xff0c;你的支持是我不断前进的动力。 因为作者能力水平有限&#xff0c;欢迎各位大佬指导。 目录 如果你喜欢这篇文章的话&#xff0c;请给作者点赞哟&#xff0c;你的支持是我不断前进的动力。 控制结构 顺序 分…

用了【WRITE-BUG数字空间】,其他文档软件可以卸载、注销账号了

都3202年了文档都进化成在线协同编辑文档了 让我看看谁还在用本地软件写文档啊~滋滋滋 使用【WRITE-BUG数字空间】云文档全键盘写作不是梦&#xff01;铁汁&#xff0c;听我句劝&#xff0c;把本地软件卸载了奥&#xff0c;你把握不住~ 程序员兄弟姐妹们的最爱编辑器&#x…

TCP协议流程详解,抓包分析

目录 TCP概念TCP工作层TCP协议头部解析TCP抓包解析TCP三次握手&#xff0c;数据收发&#xff0c;四次挥手抓包TCP状态迁移 TCP概念 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&…

【2023年计划大纲】2023年技术笔记大纲

2023年技术笔记写作计划 按照技术类型&#xff0c;计划写以下三个领域的笔记&#xff1a; &#xff08;1&#xff09;AUTOSAR标准体系的专业知识&#xff0c;T-BOX,BMS,VCU这几个产品的设计和核心开发。包括UDS协议&#xff0c;XCP协议&#xff0c;OS操作系统。 每一个产品和…

Spring Cloud Kubernetes配置使用详情

目录 一、 为什么你需要 Spring Cloud Kubernetes&#xff1f; 二、 Starter 三、 用于 Kubernetes 的 DiscoveryClient 四、Kubernetes 原生服务发现&#xff08;service discovery&#xff09; 五、Kubernetes PropertySource 的实现 1、使用 ConfigMap PropertySource …

【HTML】form标签

<form> 标签用于创建 HTML 表单&#xff0c;它是用于收集用户输入的重要元素。表单可以包含各种输入字段、按钮和其他交互元素&#xff0c;用于向服务器发送用户输入数据。 下面是一个简单的 <form> 标签的示例&#xff1a; <form action"/submit-form&q…

释放 OpenAI 和 ESP-BOX 的力量:ChatGPT 与乐鑫 SoC 融合指南

当前&#xff0c;我们正见证着一场技术革命&#xff0c;而 OpenAI 正处于这场变革的最前沿。其中最激动人心的创新之一就是ChatGPT&#xff0c;它运用自然语言处理的力量&#xff0c;打造出更加引人入胜、直观的用户体验。而将 OpenAI 的 API 与物联网设备相结合&#xff0c;更…

Redis集群部署

Redis集群部署 1.单机安装Redis2.Redis主从集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.开启主从关系2.5.测试 3.搭建哨兵集群3.1.集群结构3.2.准备实例和配置3.3.启动3.4.测试 4.搭建分片集群4.1.集群结构4.2.准备实例和配置4.3.启动4.4.创建集群4.5.测试4.5.测试 本章是基…

java SSM 摄影作品网站myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 摄影作品网站系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

计算机网络-网络体系结构

目录 计算机网络的基本概念计算机网络的定义组成与功能计算机网络的分类按照网络的作用范围进行分类按照网络的使用者进行分类 计算机网络主要性能指标 计算机网络体系结构计算机网络协议、接口、服务等概念ISO/OSI 参考模型和 TCP/IP 模型OSI七层模型TCP/IP 模型封装与分用 计…

攻防渗透第四章(谷歌语法)

一、常用谷歌黑客语法 制定网站的URL site: 包含特定字符的URL inurl: 网页标题中包含特定字符 intitle: 正文中指定字符 intext: 指定类型文件 filetype 开发语言判断 site:163.com filetype:php site:163.com filetype:jsp site:163.com filetype:asp site:163.com filetype…

【裸机开发】内核时钟 PLL1 配置实验(一)—— 寄存器分析篇

本章主要会回答以下问题 &#xff1f; imx6u 的时钟源来自于哪 &#xff1f;为什么一个起始时钟源&#xff0c;最终分成了多路&#xff1f;不同的时钟源是如何与外设对应起来的&#xff1f;&#xff08;时钟树&#xff09;要配置内核时钟频率 有哪些步骤 &#xff1f;涉及到哪…

基于Java购物商城系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

今天面了个35k字节跳动出来,真是砂纸擦屁股,给我露了一手...

​2023年春招已经结束&#xff0c;很多小伙伴收获不错&#xff0c;拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文&#xff0c;为此咱这里也统一做一次大整理和大归类&#xff0c;这也算是划重点了。 俗话说得好&#xff0c;他山之石…

深入篇【C++】string类的常用接口介绍:标准库中的string类 【万字总结】

深入篇【C】string类的常用接口介绍&#xff1a;标准库中的string类 Ⅰ.string类介绍Ⅱ.string类的常用接口①.string类对象的常用构造1.string()2.string(const char*ch)3.string(const string& str)4.string(size_t n,char c)5.string(const string& str,size_t pos,…

第四章 Linux网络编程 4.1 网络结构模式 4.2MAC地址、IP地址、端口

第四章 Linux网络编程 4.1 网络结构模式 C/S结构 简介 服务器 - 客户机&#xff0c;即 Client - Server&#xff08;C/S&#xff09;结构。C/S 结构通常采取两层结构。服务器负责数据的管理&#xff0c;客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器…

Seata客户端的启动过程 学习记录

Seata客户端的启动过程 1.自动装配4个配置类 将在SpringBoot启动时往容器中添加4个类 1. 自动配置类 SeataAutoConfiguration SeataAutoConfiguration将会往容器中添加两个bean failureHandler 事务处理失败执行器globalTransactionScanner failureHandler failureHandle…

DBA 抓包神器 tshark 测评

想窥探神秘的网络世界的奥秘&#xff0c;tshark 助你一臂之力&#xff01; 作者&#xff1a;赵黎明 爱可生 MySQL DBA 团队成员&#xff0c;熟悉 Oracle、MySQL 等数据库&#xff0c;擅长数据库性能问题诊断、事务与锁问题的分析等&#xff0c;负责处理客户 MySQL 及我司自研 D…