《软件测试52讲》读书笔记 —— 如何设计一个“好的”测试用例

简介: 《软件测试52讲》读书笔记 —— 如何设计一个“好的”测试用例

如何理解一个“好的”测试用例?


“好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能否发现缺陷无关

举栗子

被测软件——鱼塘

软件缺陷——鱼

测试用例集——渔网

“好的”测试用例集就是一张能够覆盖整个鱼塘的大渔网,只要鱼塘里有鱼,就能给捞上来;

如果渔网本身是完整合格的,那么捞不到鱼,就证明鱼塘中没有鱼,而渔网的好坏与鱼塘是否有鱼无关

 

“好的”测试用例必须具备哪些特征


  1. 整体完备性:一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求
  2. 等价类划分的准确性:对于每个等价类都能保证只要其中一个输入测试通过,其他输入页一定测试通过
  3. 等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别

 

三种最常用的测试用例设计方法


  1. 等价类划分
  2. 边界值分析
  3. 错误推断法:基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例方法。强调的是对被测软件的需求理解以及设计实现的细节把握


错误推断法的例子

image.png


如何设计出“好的”测试用例


大栗子:测试面向终端用户的GUI测试

最核心的测试点:验证软件对需求的满足程度

如何做到:在需求分析阶段和技术设计阶段就开始介入

成效:设计出从终端用户使用场景考虑的端到端的测试用例集,主要验证各个业务需求是否被满足,基于黑盒的测试设计方法

重点:在具体的用例设计时,首先要搞清楚每一个业务需求所对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,最后再针对每个测试需求点设计测试用例

绕吗???(;´д`)ゞ


小栗子:以“用户登录”功能设计测试用例

首先先看看【用户登录】功能的映射关系图

image.png


两个关键点:

  1. 从软件功能需求出发,全面地、无遗漏地识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率。 比如,如果你没有识别出用户登录功能的安全性测试需求,那么后续设计的测试用例就完全不会涉及安全性,最终造成重要测试漏洞。
  2. 对于识别出每个测试需求点,需要综合运用等价类划分、边界值分析和错误推测方法来全面设计测试用例。


以用户登录的功能性需求为例

  1. 首先对“用户名”和“密码”两个输入框分别进行等价类划分,对于无效等价类的识别可采用错误推测法(如:用户名包含特殊字符)
  2. 然后补充输入框的边界值用例,如:为空、用户名长度刚刚大于限定长度

 

设计测试用例的高级经验


深入理解被测试软件的架构,发现系统边界以及系统集成上的潜在错误

必须对内部的架构有清楚的认识,比如:数据库连接方式、数据库的读写分离、消息中间件的配置、缓存系统的层级分布、第三方系统的集成


必须深入理解被测软件的设计与实现细节、内部处理逻辑

只根据测试点设计测试用例只能覆盖“表面”一层,往往内部处理流程、分支处理无法覆盖完全;在具体实践中,可以通过代码覆盖率指标找出可能的测试遗漏点


引入需求覆盖率和代码覆盖率来衡量测试执行的完备性

后续介绍

 

评论区额外“加餐”


  1. 【需求合理性测试】即用户体验测试也是现在很重要的一点
  2. 在快速迭代的敏捷开发节奏下,无需把每条用例都写的这么复杂,重要的是把测试点写清楚,不是要把那些显而易见的步骤,环境,预期写的十全十美
相关文章
|
3月前
|
数据采集 运维 安全
测试需要写测试用例吗?
测试需要写测试用例吗?
30 0
|
4月前
|
前端开发 测试技术
可访问性测试清单/测试用例/场景
可访问性测试清单/测试用例/场景
可访问性测试清单/测试用例/场景
|
3月前
|
测试技术
接口测试测试用例编写注意事项
接口测试测试用例编写注意事项
|
14天前
|
机器学习/深度学习 数据采集 人工智能
【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
|
14天前
|
测试技术
【测试】构建质量保证之路:编写测试用例的艺术
【测试】构建质量保证之路:编写测试用例的艺术
|
3天前
|
存储 自然语言处理 测试技术
测试答疑助手:从需求文档到设计文档、测试用例的完整测试过程
本文介绍了如何使用LangChain构建一个基于本地文档和数据的测试答疑助手。该助手能回答自然语言问题,涉及数据统计、查找和组合。实践过程包括:设置API Token,导入LangChain相关库,使用MarkdownHeaderTextSplitter处理不同文档,将文本转换为向量并存储在Chroma向量数据库中。之后,通过查询数据库找到最相关的文本片段,结合大模型(如ChatOpenAI)生成回答。示例展示了询问用户注册用例中特定数据的统计情况,得到了包含表格的详细回答。
10 0
|
8天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成
【5月更文挑战第4天】随着人工智能(AI)技术的飞速发展,其在软件测试领域的应用也日益广泛。特别是在自动化测试过程中,AI技术能够显著提高测试用例的生成效率和质量。本文将探讨AI在自动化测试用例生成中的应用原理、优势以及面临的挑战,并展示通过AI技术优化测试流程的实际案例。
44 8
|
13天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成技术
【4月更文挑战第29天】随着人工智能技术的不断发展,其在软件测试领域的应用也越来越广泛。本文主要探讨了AI驱动的测试用例生成技术在自动化测试中的应用,以及其对提高测试效率和质量的影响。通过对现有技术的深入分析和实例演示,我们展示了AI如何通过学习和理解软件行为来自动生成有效的测试用例,从而减少人工编写测试用例的工作量,提高测试覆盖率,降低错误检测的成本。
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:智能化测试用例生成策略
【4月更文挑战第28天】 随着软件开发的复杂性不断增加,传统的软件测试方法面临巨大挑战。为了提高测试覆盖率并确保软件质量,需要投入大量的时间和资源去设计、执行和维护测试用例。本文探讨了一种基于人工智能(AI)技术的智能化测试用例生成策略,该策略能够自动识别关键的测试路径,动态调整测试用例,并优化测试集合。通过引入智能化工具和算法,显著提升了软件测试过程的效率和有效性。
|
14天前
|
测试技术
【测试】优化软件测试:有效测试用例设计的关键
【测试】优化软件测试:有效测试用例设计的关键

热门文章

最新文章