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

发布于:2025-03-06 ⋅ 阅读:(13) ⋅ 点赞:(0)

什么是软件测试

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

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

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

 

软件测试目的

减少软件缺陷(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次后吞卡。

流程梳理

测试用例 


网站公告

今日签到

点亮在社区的每一天
去签到