软件测试の概念之测试分类质量模型测试用例

news/2025/3/11 1:40:06/

什么是软件测试

使用技术手段验证软件是否满足使用需求的过程

软件测试用于保证软件质量的可靠性

设计对软件系统进行评估,发现其中的错误,缺陷和问题,并确保软件符合规范和用户需求。

 

软件测试目的

减少软件缺陷(bug),保证软件的质量 

软件测试工程师职责

缺陷管理:发现、提交、跟踪缺陷(如页面按钮点击无响应)。
执行测试:运行程序,执行测试用例(功能测试,如测试“购物车添加商品”是否符合需求)。
用例设计:编写测试用例,参与评审。
文档输出:测试总结、报告、计划及方案编写(如“登录功能通过率100%,支付功能发现3个缺陷”)。

主流测试技能

功能测试


解释:验证软件功能是否符合需求。
示例:测试“注册功能”是否允许用户输入手机号、密码并成功创建账号。


接口测试


解释:直接测试后端服务接口,不依赖前端界面。
示例:
接口文档:描述用户登录接口的请求参数(如POST /login需传username和password)。
测试步骤:使用Postman发送请求,验证返回结果是否包含token字段。

自动化测试


解释:用脚本代替人工执行重复性测试。
示例:用Selenium编写脚本自动打开浏览器,验证首页所有链接是否有效。


性能测试


解释:模拟高并发场景,检测系统瓶颈。
示例:用JMeter模拟1000用户同时访问网站,观察服务器响应时间是否在2秒内。

测试分类

按阶段划分

单元测试

解释:测试代码的最小单元(如函数、类)。
示例:开发人员用JUnit测试一个计算税费的函数,输入金额100元,验证输出是否为10元。

集成测试

解释:验证模块间交互是否正常。
示例:测试用户注册后是否能自动发送欢迎邮件。

系统测试

解释:验证整个系统的功能、兼容性等。
示例:测试电商平台从商品浏览、下单到支付的完整流程。

按代码可见度划分

黑盒测试

解释:不关注代码,只验证输入输出。
示例:测试用户输入邮箱格式错误时,系统是否提示“邮箱格式不正确”。

灰盒测试

解释:部分代码可见,常用于接口测试。
示例:测试API返回的数据结构是否符合文档定义。

白盒测试

解释:基于代码逻辑设计测试用例。
示例:测试代码中if (age < 18)的分支逻辑,验证输入17岁是否触发“未成年提示”。

质量模型(八大特征)

功能性

当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力
        完备性:功能集对指定任务和用户目标的覆盖程度(明示和隐含的用户预期)        
        适合性:功能促使指定的任务和目标实现的程度
        正确性:提供具有所需精度的正确或相符的结果或效果的能力
        功能性的依从性:产品或系统遵循与该功能相关的标准、约定或法规
        安全保密性:保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的访问
正确性:功能输出正确结果。

示例:计算器加法功能,输入2+3应输出5。

安全性:防止未授权访问。

示例:用户密码需加密存储,且连续输错5次后锁定账号。

性能

相对于所用资源的数量,软件产品可提供适当性能的能力。
        时间特性:产品或系统执行其功能时,其响应时间、处理时间以及吞吐量满足需求的程度
        资源利用性:产品或系统执行其功能时,所使用资源数据量和类型满足需求的程度
        容量:产品或系统参数最大限度满足需求的能力
        效率的依从性:产品或系统遵循与效率相关的标准、约定或法规以及类似规定的程度

响应时间:用户操作后系统快速反馈。
示例:搜索功能在1秒内返回结果。

兼容性

跨平台兼容:支持不同浏览器或设备。
示例:网站在Chrome、Firefox、iOS和Android上显示正常。

易用性

易学性:用户快速上手。
示例:APP首次启动时显示操作引导弹窗。

可靠性

容错性:异常输入时系统不崩溃。
示例:用户输入负数金额,系统提示“请输入正数”。

可维护性

模块化设计:代码修改不影响其他功能。
示例:支付模块独立封装,升级时无需改动用户管理模块。

可移植性

环境适应:软件在不同服务器上正常运行。
示例:系统从Windows服务器迁移到Linux服务器后仍能启动。

测试用例

基本概念

是为特定目的而设计的一组由测试输入、执行条件以及预期结果组成的文档。它是软件测试的核心,用于验证软件是否满足需求规格说明书中的要求,以及找出软件中的缺陷。
简而言之 : 是为测试项目而设计的执行文档 .

测试用例的作用

防止漏测
实施测试的标准
指导测试执行
提高测试效率
促进团队协作和沟通

用例设计编写格式

1. 测试用例编号 :唯一标识测试用例的编号 , 一般由项目 模块 编号组成。
2. 测试标题 :简要描述测试用例的目的。
3. 测试模块 :功能所属模块。
4. 优先级 :测试用例的优先级,通常用于确定测试执行的顺序。
5. 前置条件 :执行测试前必须满足的条件或状态。
6. 测试步骤 :执行测试的详细步骤。
7. 测试数据 : 实施测试时用到的哪些特殊数据。
8. 预期结果 :按照测试步骤执行后,系统应呈现的正确结果或状态。
9. 测试状态 :如未开始、进行中、已完成等。
10. 负责人 :负责编写和执行该测试用例的测试人员。

测试用例设计方法

等价划分法

示例:测试“年龄输入框”允许18-60岁:
有效类:30(合法)
无效类:17(太小)、61(太大)。

在测试过程中 , 我们不可能用穷举法将每一种输入情况都进行验证。
所以需要进行分类 , 如果某一类中其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。
设计测试用例的时候要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
案例: 用户名 6--10位自然数和大小写字母组合
边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
长期的测试工作经验告诉我们,大量错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。

示例:测试“文件上传大小限制100MB”:
边界值:99MB(允许)、100MB(允许)、101MB(拒绝)。

判定表达

示例:测试“登录逻辑”:

场景法

示例:ATM取款场景:
插卡 → 输入密码 → 选择取款 → 输入金额 → 取钞 → 退卡。
异常场景:密码错误3次后吞卡。

流程梳理

测试用例 


http://www.ppmy.cn/news/1578222.html

相关文章

R语言和RStudio安装

整体还是比较简单的&#xff0c;主要是记录个流程。 官方镜像站列表R语言官网 1 安装R&#xff08;2025/3/6&#xff09; R语言官网&#xff1a;The R Project for Statistical Computing 打开之后就Hello world一下吧 配置环境变量 2 安装RStudio 下载地址&#xff1a;htt…

通义万相2.1开源版本地化部署攻略,生成视频再填利器

2025 年 2 月 25 日晚上 11&#xff1a;00 通义万相 2.1 开源发布&#xff0c;前两周太忙没空搞它&#xff0c;这个周末&#xff0c;也来本地化部署一个&#xff0c;体验生成效果如何&#xff0c;总的来说&#xff0c;它在国内文生视频、图生视频的行列处于领先位置&#xff0c…

数据库原理4

1.数据库中的数据通常可分为用户数据和系统数据两部分。用户数据是用户使用的数据&#xff1b;系统数据称为数据字典。 2.SQL语言的功能&#xff1a;数据查询&#xff1b;数据操纵&#xff1b;数据定义&#xff1b;数据操作&#xff1b;数据控制 3.对未提交更新的依赖&#x…

docker-compose部署mongodb副本集集群

生成密钥文件 ​ openssl rand -base64 756 > mongodb.key chmod 400 mongodb.key # 权限必须为400‌:ml-citation{ref="4" data="citationList"} chown 999:999 mongodb.key # MongoDB容器用户ID为999‌:ml-citation{ref="4" data="…

Python开发Scikit-learn面试题及参考答案

目录 如何用 SimpleImputer 处理数据集中的缺失值? 使用 StandardScaler 对数据进行标准化的原理是什么?与 MinMaxScaler 有何区别? 如何用 OneHotEncoder 对类别型特征进行编码? 解释特征选择中 SelectKBest 与 VarianceThreshold 的应用场景。 如何通过 PolynomialFe…

力扣-单调栈-42 接雨水

思路和时间复杂度 思路&#xff1a;找到最左侧&#xff0c;比它大的元素&#xff0c;然后找到最右侧比它的元素&#xff0c;初始化了两个left和right作为当前元素左边和右边第一个比它大的元素&#xff0c;然后遍历时&#xff0c;不断寻找左右两侧的最高点&#xff0c;选择二者…

推荐一个好用的在线文本对比网站 - diffchecker

推荐网址&#xff1a;https://www.diffchecker.com UI设计也很不错&#xff0c;响应也很快&#xff0c;广告少 生成的对比还可以生成在线链接&#xff1a;&#xff08;点击右上角“分享”&#xff09; 可设置过期时间等 我生成的示例&#xff1a;https://www.diffchecker.c…

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁&#xff0c;ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…