news 2026/1/22 12:38:14

设计一个“完美“的测试用例,用户登录模块实例...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
设计一个“完美“的测试用例,用户登录模块实例...

前言

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

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

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

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

等价类划分:
将所有可能的输入数据划分成若干个子集;
任意一个输入数据若是有效的则构成有效等价类;
输入数据对于揭露程序中潜在错误都具有同等效果则构成无效等价类;
后续只要从每个等价类中年任意选取一个值进行测试, 就可以用少量具有代表性的测试输入取得较好的测试覆盖结果;

边界值分析:
选取输入、输出的边界值进行测试;
边界值分析师对等价类划分的补充;

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

错误推断法的例子

如何设计出好的测试用例

例子:测试面向终端用户的GUI测试
最核心的测试点:验证软件对需求的满足程度

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

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

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

以“用户登录”功能设计测试用例

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

关键点:

从软件功能需求出发,全面地、无遗漏地识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率。 比如,如果你没有识别出用户登录功能的安全性测试需求,那么后续设计的测试用例就完全不会涉及安全性,最终造成重要测试漏洞。

对于识别出每个测试需求点,需要综合运用等价类划分、边界值分析和错误推测方法来全面设计测试用例。

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

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

设计测试用例的高级经验

深入理解被测试软件的架构,发现系统边界以及系统集成上的潜在错误
必须对内部的架构有清楚的认识,比如:数据库连接方式、数据库的读写分离、消息中间件的配置、缓存系统的层级分布、第三方系统的集成

必须深入理解被测软件的设计与实现细节、内部处理逻辑
只根据测试点设计测试用例只能覆盖“表面”一层,往往内部处理流程、分支处理无法覆盖完全;在具体实践中,可以通过代码覆盖率指标找出可能的测试遗漏点

测试用例设计

一般分为两种
显性功能性需求:指的就是软件本身需要实现的具体功能,比如“登录成功”,“密码错误”等

非功能性需求:主要涉及【安全性】【性能】【兼容性】三大维度,往往非功能性需求是决定软件质量的关键因素

用户登录的测试用例

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/9 21:48:03

一文告诉你黑盒测试、白盒测试、集成测试和系统测试的区别与联系

于开发人员来说,往往对各种测试方法感到疑惑。特别是在整合代码的时候,我们就能深刻感觉受到测试的重要性。很多开发人员只注重写代码,轻视测试的重要性。总是代码一写完提交然后就交给测试组测试了,没多久测试组发回测试报告。然…

作者头像 李华
网站建设 2026/1/11 19:34:05

【Kubernetes亲和性】一文掌握pod的亲和性和调度策略

文章目录 1.简介2.调度策略3.亲和性规则4.标签选择器5.yaml配置示例5.1.nodeName yaml示例5.2.nodeSelector yaml示例5.3.nodeAffinity yaml示例5.4.podAffinity亲和性yaml示例5.5.podAntiAffinity反亲和性 yaml示例 6.亲和性界面设置工具 1.简介 在Kubernetes中,工…

作者头像 李华
网站建设 2026/1/16 20:25:40

Android最简化发布模块到mavenCentral

最近折腾jitpack发布,发现他对于项目结构要求比较严格。基本标配就是一个library目录加app,和settings.gradle,gradle这样的配置才行。多模块或者没有模块都比较麻烦。而且之前我遇到过一次,编译等了足足8个小时。 今天研究了mav…

作者头像 李华
网站建设 2026/1/10 1:05:51

污染物在土壤-地下水系统中的完整迁移路径:从概念模型构建到风险管控决策——深度解读T/LNSES 004技术指南与重金属/有机物迁移预测全流程,适用于污染场地评估、修复工程、地下水保护

随着我国对土壤环境保护与污染风险管控的日益重视,科学准确地评估污染物在场地环境中的迁移行为与潜在影响范围,已成为土壤污染防治工作的核心环节。《场地土壤污染物迁移路径与范围评估技术指南》(T/LNSES 004)的发布&#xff0c…

作者头像 李华
网站建设 2026/1/17 15:50:19

新能源知识库(168)钠电和高倍率锂电在短时储能场景的比较

作为AIDC解决方案专家,针对您架构中短时储能(通常指分钟级到半小时级,用于支撑算力尖峰或作为发电机启动前的过渡)这一环节,高倍率锂电(通常指高倍率LFP)与钠离子电池(Na-ion&#x…

作者头像 李华