软件测试概念之测试分类质量模型测试用例
软件测试の概念之测试分类&质量模型&测试用例
什么是软件测试
使用 技术手段验证 软件是否满足使用需求的过程
软件测试用于保证软件质量的可靠性
设计对软件系统进行评估,发现其中的错误,缺陷和问题,并确保软件符合规范和用户需求。
软件测试目的
减少软件缺陷(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服务器后仍能启动。
测试用例
基本概念
是为特定目的而设计的一组由测试输入、执行条件以及预期结果组成的文档。它是软件测试的核心,用于验证软件是否满足需求规格说明书中的要求,以及找出软件中的缺陷。
简而言之
:
是为测试项目而设计的执行文档
.
测试用例的作用
防止漏测
实施测试的标准
指导测试执行
提高测试效率
促进团队协作和沟通
用例设计编写格式
测试用例编号
:唯一标识测试用例的编号
,
一般由项目 模块 编号组成。
测试标题
:简要描述测试用例的目的。
测试模块
:功能所属模块。
优先级
:测试用例的优先级,通常用于确定测试执行的顺序。
前置条件
:执行测试前必须满足的条件或状态。
测试步骤
:执行测试的详细步骤。
测试数据
:
实施测试时用到的哪些特殊数据。
预期结果
:按照测试步骤执行后,系统应呈现的正确结果或状态。
测试状态
:如未开始、进行中、已完成等。
负责人
:负责编写和执行该测试用例的测试人员。
测试用例设计方法
等价划分法
示例:测试“年龄输入框”允许18-60岁:
有效类:30(合法)
无效类:17(太小)、61(太大)。
在测试过程中
,
我们不可能用穷举法将每一种输入情况都进行验证。
所以需要进行分类
,
如果某一类中其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。
设计测试用例的时候要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
**案例
:
用户名 6–10位自然数和大小写字母组合**
边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
长期的测试工作经验告诉我们,大量错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
**示例:测试“文件上传大小限制100MB”:
边界值:99MB(允许)、100MB(允许)、101MB(拒绝)。**
判定表达
示例:测试“登录逻辑”:
场景法
示例:ATM取款场景:
插卡 → 输入密码 → 选择取款 → 输入金额 → 取钞 → 退卡。
异常场景:密码错误3次后吞卡。
流程梳理
测试用例