3.需求分析与测试用例设计方法

article/2025/7/2 21:56:15

设计方法

测试点

  • 定义: 测试时需要考虑的可测试方面,不同公司可能称为"检查点"或其它名称
  • 特点: 是需求分析的最后一个环节,用于解决"测哪里"和"怎么测"的问题
  • 举例说明: 如同打架时的各种招数,如直接约架、设陷阱或雇人打群架,每种方法对应一个测试点
  • 与用例关系: 简单的功能(如"退出"按钮)可直接从测试点转化为用例(如"点击退出看软件能否退出")

场景法概述

  • 核心作用: 主要用于测试系统的业务流程,验证主要功能是否正确实现
  • 测试时机: 拿到测试任务时应首先关注业务流程验证
  • 与其他方法关系: 区别于大纲法的功能拆分作用,属于用例设计方法
  • 方法分类: 属于黑盒测试方法,与等价类、边界值、决策表等方法并列

场景的定义
基本概念: 描述软件操作的路径(先干什么再干什么)
组成要素:
基本流: 正确的业务流程构成的操作路径(模拟正确操作)
备选流: 导致程序出错的操作流程(模拟错误操作)
应用特点: 与业务流程分析相似但不完全相同,更侧重操作路径的模拟
4. 场景法的分析步骤
第一步: 分析软件需求,从用户角度梳理业务流程和业务规则
第二步: 编写基本流场景(正确流程)和备选流场景(错误流程)
实施要点: 需同时考虑正向和反向测试路径,覆盖正常和异常操作
方法论定位: 属于用例设计的大方向规划,不过多涉及细节实现

场景法的分析步骤

  • 分析软件需求: 首先,需要全面分析软件的需求,明确软件要实现的业务流程和业务规则。这是场景法分析的第一步,也是非常重要的一步,因为后续的所有步骤都基于这一步的理解。
  • 写出业务流程和业务规则: 从用户使用情景的角度出发,详细写出软件的业务流程和业务规则。这有助于我们更深入地理解软件的使用场景,为后续的测试设计打下基础。
  • 写出基本流场景和备选流场景: 在明确了业务流程和业务规则后,我们需要写出基本流场景和备选流场景。基本流场景是软件在正常情况下的操作流程,而备选流场景则是软件在异常情况或特殊情况下的操作流程。通过这一步,我们可以更全面地覆盖软件的测试点,提高测试的质量。

描述程序的基本流及备选流

  • 流程步骤:
    • 插入银行卡:客户将银行卡插入ATM机的读卡器
    • 验证银行卡:ATM机从银行卡的磁条中读取账户代码,检查是否属于可接受的银行卡
    • 输入密码:ATM机要求客户输入密码
    • 验证密码:系统验证密码是否正确
    • 进入主界面:ATM显示可用操作选项
    • 选择取款:客户选择"取款"功能并输入金额
    • 系统验证:检查账户余额是否充足、总取款金额是否超限、ATM机现金是否足够
    • 完成交易:验证通过后更新账户余额,出钞并提示用户取款
  • 关键特征:
    • 只包含正常操作路径,不考虑任何异常情况
    • 每个步骤都假设输入正确且系统状态正常
    • 流程设计应聚焦软件相关操作,排除无关行为(如"步行找ATM机")
备选流

  • 错误类型及处理:
    • 银行卡无效:系统提示错误信息并退卡
    • 密码错误:
      • 1-2次错误:提示重新输入
      • 3次错误:直接吞卡(需单独列为不同备选流)
    • 账户余额不足:提示错误并退卡
    • 超额取款:当日取款总额超限时提示错误并退卡
    • ATM现金不足:提示错误并退卡
  • 设计要点:
    • 每个异常情况应作为独立备选流处理
    • 相同错误类型但处理方式不同(如密码错误次数)需区分
    • 结果描述应具体明确(如"吞卡"与"退卡"的区别)
根据基本流和备选流生成不同的场景

  • 场景生成原则:通过分析基本流(正确流程)和备选流(错误流程)来构建测试场景,正确情况通常只有一种,而错误情况可能有多种
  • 表格使用说明:场景分析表格可记录在测试需求分析说明书中作为测试点,表格形式不重要,重点在于明确场景条件和预期结果
  • 有效标识含义:表格中的"V"代表valid(有效),表示该条件需满足正确值,但非必须标注项
场景法练习
三角形类别判断
1. 例题
1)题目描述
  • 题目: 输入三个数,判断它们能否构成三角形,以及若能构成,则进一步判断是什么类型的三角形。
2)题目解析
  • 审题过程:
    • 首先,检查输入的三个数是否均为0-1000的实数。
    • 然后,判断三边之和是否大于第三边,若不满足,则不能构成三角形。
    • 接着,判断三边是否都相等,若是,则为等边三角形。
    • 再判断两边是否相等,若是,则为等腰三角形。
    • 判断两边平方和是否等于第三边平方,若是,则为直角三角形。
    • 若以上条件都不满足,则为普通三角形。
  • 易错点:
    • 输入数据不完整或不是实数时,需要提示必须输入实数。
    • 输入范围超过0-1000,或小数位数超过三位时,需要报错。
    • 注意区分不同类型的三角形判断条件。

等价类划分法

等价类划分核心思想

  • 代表选择原理:类似于人民代表大会制度,将输入数据划分为若干区域后,每个区域选取代表性数据,该数据能等价代表该区域所有数据。
  • 分类基础:根据需求分析将输入域划分为有效等价类(符合需求规范)和无效等价类(违反需求规范)。
  • 测试效率提升:通过代表数据减少测试用例数量,解决穷尽测试不可行的问题,如两位数加法器中测试负99到99的范围时无需测试所有值。
等价类划分的步骤
  • 第一步需求分析:明确被测对象的功能需求,如两位数加法器要求输入范围为−99-99−99到999999的整数。
  • 第二步初步分类:
    • 有效等价类:符合输入要求的数据(如000、505050)
    • 无效等价类:超出范围或格式错误的数据(如−100-100−100、100.5100.5100.5)
  • 第三步细化分类:结合计算机知识进一步细分,例如:
    • 边界值附近单独分类(−99-99−99、999999)
    • 特殊字符输入单独分类(如"ab")
  • 代表值选取原则:每个等价类中选取最能体现该类特征的数据,如无效类中选取−100-100−100代表"小于−99-99−99"的无效情况。
等价类划分练习
需求讲解
  • 核心需求:ATM取款功能测试,要求单笔取款金额最少50元,最多5000元,且必须是50的倍数
  • 特殊说明:案例假设不考虑日累计限额(如现实中的2000元限制),仅测试单笔交易场景。

有效等价类划分
唯一有效类:金额在区间内且为50的倍数的数值(如50、100、4950、5000)
测试要点:只需设计1个测试用例即可覆盖全部有效情况,例如测试取款2500元
3. 无效等价类划分
数值范围违规:
小于下限:的值(如0、49)
大于上限:的值(如5001、10000)
倍数违规:非50倍数的数值(如51、4999)
特殊输入:
空输入(直接点击取款)
字符输入(需确认ATM键盘是否存在字母键)
设备适配原则:若实际ATM键盘无字母键,则字符输入类可不测试

等价类划分注意事项
考虑有效和无效等价类
  • 测试方向:
    • 正向测试(有效等价类):验证功能正常工作情况
    • 负向测试(无效等价类):验证异常处理能力
  • 数量比例:无效类用例通常远多于有效类,比例可能达1:8甚至更高
  • 术语对照:
    • 有效等价类 ≈ 正向用例 ≈ 顺向测试
    • 无效等价类 ≈ 负向用例 ≈ 逆向测试
2. 注意划分的粗细
  • 过粗风险:
    • 将本应分开的类合并(如将空输入和字符输入合并)
    • 导致测试遗漏(如漏测边界值4999)
  • 过细风险:
    • 过度拆分同类项(如分别测试大写A和小写a)
    • 产生冗余测试(如测试200后又测试300)
  • 实践建议:
    • 初学者宜稍细划分,避免遗漏缺陷
    • 经验积累后可优化分类粒度
  • 审查要点:需检查划分是否覆盖所有需求约束条件(范围、倍数、输入类型等)
例题:等价类划分法应用
  • 有效等价类:输入长度为4-10位字符
  • 无效等价类:
    • 长度小于4位
    • 长度大于10位
  • 划分依据:根据输入长度要求直接划分,保持每个等价类内部具有相同测试特性
布尔类型等价类划分

  • 有效等价类:
    • true(注意大小写要求)
    • false(注意大小写要求)
  • 无效等价类:除true/false外的所有输入
  • 注意事项:
    • 需确认编程语言对大小写的敏感性
    • 若要求大写,则有效类应调整为TRUE/FALSE
    • 无效类可适当扩充包含大小写混合情况
例题:组合框等价类划分
  • 有效等价类:
    • 从下拉列表选择现有字体
    • 手动输入存在的字体名称
  • 无效等价类:输入不存在的字体名称
  • 测试要点:组合框同时支持选择和输入的特性需要分别验证
例题:用户名规范等价类划分 02:40
  • 有效等价类:
    • 纯字母组合(长度≤12)
    • 字母开头+数字组合(长度≤12)
  • 无效等价类:
    • 数字开头
    • 长度>12
    • 空输入(长度=0)
    • 包含特殊字符
  • 复杂需求分析:
    • 必须字母开头是核心约束条件
    • 长度限制和字符类型限制需要组合验证
    • 可合并有效类为"字母开头+字母数字组合"
例题:日期文本框等价类划分
  • 有效等价类(假设需求):
    • 当前/将来日期+"/"分隔符
    • 当前/将来日期+"-"分隔符
    • 当前/将来日期+无分隔符
  • 无效等价类:
    • 过去日期(范围错误)
    • 错误分隔符(如空格、字母)
    • 日期顺序错误(如月日年)
    • 包含非数字字符
    • 包含不允许的标点(如点号)
    • 非法日期值(如2月30日)
    • 世纪数省略(如18代替2018)
  • 测试设计技巧:
    • 需明确日期格式要求(年月日/月日年)
    • 考虑不同地区的日期表示习惯
    • 边界值需结合等价类共同使用
    • 无效类可衍生多种测试用例

边界值分析法

标题字数: 0 1 40 41

标题字数 0 40 41 -1不具有可测性!

文本输入域 0 1 255 256

分页,首页点上一页,尾页点上一页,进行边界值测试

决策表

输入组合盲区:等价类划分、边界值等传统测试方法未考虑输入参数的组合情况,例如第一个数输入正数、第二个数输入负数的组合场景。

决策表练习

  • 输入输出分析:
    • 输入1:工资制(年薪/月薪)
    • 输入2:错误类型(4种情况)
    • 输出:扣款比例(计算结果)
  • 必须穷举所有可能组合(年薪×4种错误情况 + 月薪×4种错误情况)
    • 年薪制组合:
      • 不犯错误:0%
      • 仅普通:2%
      • 仅严重:6%
      • 两种都犯:8%(2%+6%)
    • 月薪制组合:
      • 不犯错误:0%
      • 仅普通:4%
      • 仅严重:8%
      • 两种都犯:12%(4%+8%)

决策表适用范围

决策表一般适用于多种输入存在组合的情况。当存在多个输入,且这些输入之间有各种组合情况时,适合使用决策表。

局限性: 决策表可能导致用例数量爆炸。因为每个输入可能有多种情况,当输入数量增多时,组合情况会呈指数级增长,导致用例数量庞大。

实现均匀覆盖策略

无效等价类应用

需求分析的步骤
  • 收集文档: 需求分析的第一步是收集相关的文档资料。
  • 研读文档: 在收集完文档后,需要仔细研读这些文档,理解其中的内容和要求。
  • 提出问题: 在研读文档的过程中,会产生很多疑问或不明确的地方,需要将这些问题提出来。
  • 整理信息: 将提出的问题以及从文档中获取的信息进行整理,以便后续使用。
  • 功能拆分: 将软件需要实现的所有功能进行拆分,包括大功能和小功能。
  • 信息合并: 将之前整理的信息与功能拆分的结果进行合并,形成完整的需求理解。
  • 编写测试点: 根据需求理解,编写测试点,用于后续的测试工作。测试点可以综合使用场景法、等价类边界值、决策表和错误猜测等方法进行编写。
  • 需求评审: 需求分析的最后一步是进行评审,确保需求理解的准确性和完整性。
需求评审的质量要求
  • 正确性: 需求必须与用户说法一致,确保没有错误的需求描述。
  • 完备性: 需求必须完整无遗漏,避免出现需求缺失的情况。
  • 易理解性: 需求文档要让其他部门和测试人员都能轻松理解,表述必须清晰明确。
  • 一致性: 需求前后描述要一致,不同部门间的理解也要保持一致,避免出现矛盾。
  • 可行性: 需求必须实际可行,如测试资源不足时要及时调整需求(例如公司只有一个路由器时不应影响正常业务)。
  • 可修改性: 需求之间应保持适当关联,修改一个需求时不应导致其他需求大面积受影响。
  • 可测试性: 每个测试点都必须具备可执行性,这是最基本的要求。
  • 可追溯性: 所有需求和测试点都要有明确依据,不能凭空猜测或不合情理。

测试计划

测试计划的定义与原则

  • 文档性质: 测试计划是指导测试过程的纲领性文档,用于统一团队认识并规划测试过程
  • 核心功能: 规定测试范围、途径、资源和进度安排,确认测试项、被测特征、测试任务、人员安排及风险预案
  • IEEE定义: 叙述预定测试活动的范围、途径、资源及进度安排的文档(1983年标准)
  • 实际作用: 避免测试工作无序进行,明确各阶段任务(如需求分析时长、测试顺序等)

测试计划的编写原则

  1. 明确测试的目标,增强测试计划的实用性
    核心原则:测试计划不是形式文档,而是后续测试工作的指导依据,必须注重实际可操作性
    指导性:测试工作的每一步都将按照计划执行,因此计划内容必须清晰明确
    目标导向:需要清楚界定测试的具体要求和预期目标
坚持"5W"规则,明确内容与过程
  • What(内容):明确测试范围,如测试登录功能还是注册功能
  • Why(目标):确定测试类型,如功能测试、性能测试或可用性测试
  • When(时机):既指测试进度安排,也包含测试环境等前提条件准备
  • Where(环境):详细说明所需的硬件、软件配置要求
  • How(方法):规定测试采用的技术方法,如黑盒/白盒测试
  • Who(人员):可额外增加的人员安排说明,实际工作中常与When合并考虑
测试计划的主要内容
  • 确定测试资源: 明确所需的人力资源、硬件资源和软件资源。
  • 工作量估算、里程碑和进度安排: 评估测试工作量,设定关键节点和整体时间表。
  • 风险分析: 识别测试过程中可能遇到的风险,并制定相应的应对措施。
  • 制定测试策略: 根据测试需求和目标,选择合适的测试方法和技术。
  • 编写计划书: 将上述内容整合成文档,作为测试工作的指导和依据。

风险识别

风险评估和风险控制

测试策略
  • 测试策略定义: 测试策略是描述当前测试项目的目标,以及所采用的测试方法。它宏观地概述了测试的内容、方法、阶段和类型。
  • 包含内容:
    • 测试目标和方法。
    • 规定时间内要完成的测试内容。
    • 软件产品的特性或质量在哪些方面得到确认。
    • 不同测试阶段(单元测试、集成测试、系统测试)的测试对象、范围和方法。
    • 每个阶段内所要进行的测试类型(功能测试、性能测试、压力测试等)。
分阶段的测试策略
  • 分阶段策略: 将测试分为多个阶段,如单元测试、集成测试、系统测试等。
  • 单元测试: 早期发现问题,保证代码质量。
  • 集成测试: 尽早地发现更多问题,准备自动化测试的BVT(Build Verification Test)。
  • 系统测试: 验证整个软件系统的功能和性能。
  • 优点: 能够在早期发现问题,减少后期修复成本。
  • BVT(Build Verification Test):
    • 目的: 验证最新软件版本的功能是否完整,主要软件特性是否正确实现。
    • 优点: 时间短,快速反馈问题。
    • 缺点: 覆盖率较低,不能替代全面的测试。
  • 不能忽略的测试: 安全性测试、可用性测试、配置测试和数据完整性测试。
  • 制定更为详细的UAT(用户验收测试)计划
    UAT测试计划:
    与测试脚本和培训材料一起提供给用户。
    帮助用户快速提高并完成任务。
    包含内容:
    详细的测试步骤。
    用户验收的标准和流程。
    培训材料和用户指导。
  1. 测试计划书的编写
    测试计划书:
    是一个过程,不仅仅是“测试计划书”这样一个文档。
    随着项目进展不断更新和完善。
    内容:
    测试目标。
    测试方法。
    测试资源分配。
    测试时间安排。
    风险管理和应对措施。

http://www.hkcw.cn/article/SHNbsIkUQe.shtml

相关文章

【PCB设计】STM32开发板——电源设计

电源稳压器(Power Regulator)是一种在电源电压或者负载电流发生变化的时候,依然能够提供稳定输出电压的元件。 一、关于LDO电路 1.引入 小灯泡实验 2.LDO原理 3.LDO芯片结构框图 PNP型三极管,Ube上升,截至&#xff…

BUUCTF[HCTF 2018]WarmUp 1题解

BUUCTF[HCTF 2018]WarmUp 1题解 分析解题过程代码审计主体函数CHECK函数: 构造payload 总结 分析 启动靶机,进入网址,是一张滑稽的表情包: 程序化F12查看源码: 发现注释内容,访问 url:/source.php得到…

如何使用DAXStudio将PowerBI与Excel连接

如何使用DAXStudio将PowerBI与Excel连接 之前分享过一篇自动化文章:PowerBI链接EXCEL实现自动化报表,使用一个EXCEL宏工作薄将PowerBI与EXCEL连接起来,今天分享另一个方法:使用DAX Studio将PowerBI与EXCEL连接。 下面是使用DAX S…

neo4j 5.19.0两种基于向量进行相似度查询的方式

介绍 主要讲的是两种相似度查询 一种是创建向量索引,然后直接从索引的所有数据中进行相似度搜索,这种不支持基于自己查询的结果中进行相似度匹配另一种是自己调用向量方法生产相似度进行相似度搜索,这种可以基于自己的查询结果中进行相似度…

中科院报道铁电液晶:从实验室突破到多场景应用展望

2020年的时候,相信很多关注科技前沿的朋友都注意到,中国科学院一篇报道聚焦一项有望改写显示产业格局的新技术 —— 铁电液晶(FeLC)。这项被业内称为 "下一代显示核心材料" 的研究,究竟取得了哪些实质性进展…

任务26:绘制1-12月各省份平均气温和预测可视化图形(折线

任务描述 知识点: DjangoECharts 重 点: DjangoECharts折线图 内 容: 绘制列表框,能够切换不同的省份根据ECharts官方示例,绘制ECharts折线图根据ECharts配置项手册,修改ECharts图形配置 任务指导…

【Redis】Set 集合

文章目录 常用命令saddsmemberssismemberscardspopsmovesrem 集合间操作sinter && sinterstoresunion && sunionstoresdiff && sdiffstore 内部编码应用场景 集合类型也是用于存储多个字符串类型的数据结构 集合中元素之间是 1. 无序的 2. 不允许重复的…

python打卡训练营打卡记录day43

复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 数据集来源:Flowers Recognition 选择该数据集原因: 中等规模:4242张图片 - 训练快速但足够展示效…

向量空间的练习题目

1.考虑 中的向量x1 和x2 求每一向量的长度 令x3x1x2,求x3的长度,它的长度与x1和x2的和有什么关系? 2.重复练习1,取向量 3.令C为复数集合,定义C上的加法为 (abi)(cdi)(ac)(bd)i 并定义标量乘法为对所有实数a (abi) a bi 证明&…

Android Studio历史版本下载地址汇总

Android Studio 下载文件归档 | Android Developers本页提供了各个 Android Studio 版本的下载归档文件。https://developer.android.google.cn/studio/archive?hlzh-cn

SpringBoot-Thymeleaf

大佬写的真好:Thymeleaf一篇就够了-阿里云开发者社区

序列搜索策略

序列搜索策略 贪心搜索(greedy search) 在大语言模型中, 对于输出序列的每一时间步t′, 我们都将基于贪心搜索从Y中找到具有最高条件概率的词元,即: y t ′ argmax ⁡ y ∈ Y P ( y ∣ y 1 , … , y t ′…

MG影视登录解锁永久VIP会员 v8.0 支持手机电视TV版影视直播软件

MG影视登录解锁永久VIP会员 v8.0 支持手机电视TV版影视直播软件 MG影视App电视版是一款资源丰富、免费便捷、且专为大屏优化的影视聚合应用,聚合海量资源,畅享电视直播,是您电视盒子和…

【浏览器】无法连接到互联网解决方法

Mac网络连接一切正常(手机连接互联网能正常使用) 但是涉及到网络界面就提示“无法连接到互联网”: 解决办法: 点击左上角→系统设置→网络→→位置→编辑位置→→新增一个即可 正常了!!

【C语言预处理详解(下)】--#和##运算符,命名约定,命令行定义 ,#undef,条件编译,头文件的包含,嵌套文件包含,其他预处理指令

目录 五.#和##运算符 5.1--#运算符 5.2--##运算符 六.命名约定,#undef,命令行定义 6.1--命名约定 6.2--#undef 6.3--命名行定义 七.条件编译 常见的条件编译指令: 1.普通的条件编译: 2.多个分支的条件编译(可以利用条…

数据资产评估进阶:精读资产评估专家指引第9号——数据资产评估指导【附全文阅读】

这篇文档是有关数据资产评估的专业报告,以下是文档中需要关注的重点内容: 1. 评估对象:文档中提到了数据资产评估的评估对象,即被评估数据资产。需要关注被评估数据资产的信息属性、法律属性、价值属性等,以及其特征对…

btstack协议栈---ESP32底层逻辑分析

目录 循环体 循环体中,怎么读取、处理数据 packet_handler 上面各层如何处理数据 谁触发了数据的传输? 硬件相关的数据有4类 循环体 BTStack针对不同的运行环境,抽象出了对应的btstack_run_loop结构体,共成员为: 比如其中的execute成员很重要,它是一个循环,在循…

碳中和新路径:铁电液晶屏如何破解高性能与节能矛盾?

一、显示技术困局:当 “高刷” 遭遇 “高耗” 在元宇宙、电竞产业蓬勃发展的当下,显示设备的刷新率与能耗成为行业痛点。传统液晶受 “边缘场效应” 制约,刷新率长期停滞在 300Hz 以下,动态画面拖影问题显著;同时&…

408考研逐题详解:2009年第27题

2009年第27题 一个分段存储管理系统中,地址长度为 32 位,其中段号占 8 位,则最大段长是( ) A. 2 8 2^8 28B \qquad B. 2 16 2^{16} 216B \qquad C. 2 24 2^{24} 224B \qquad D. 2 32 2^{32} 232B 解析 本题…

ASC格式惯导数据文件转IMR格式文件

我们使用惯导采集数据之后,如果需要用现有软件进行解算,比如POSMind等等,就会涉及到IMR格式的惯导数据文件。而NovAtel Convert转换软件只能将原始DAT格式的文件转成ASCLL文件,因此我自编程实现了ASC格式文件到IMR格式文件的转换。…