软件测试概述
- 软件测试的定义与目的
- 定义:使用一定的技术手段验证软件是否满足需求
- 目的:减少软件缺陷,保障软件质量(这里的缺陷不止包含开发功能缺陷,还包含需求以及UI设计等的缺陷,更早发现缺陷并提出,可以减少缺陷修复成本,更能体现软件测试人员的价值。)
软件测试的分类
- 按测试阶段分类:
- 单元测试:针对程序源代码测试
- 集成测试:针对模块间接口的测试
- 系统测试:针对整体功能的测试,包括功能、兼容性等测试
- 验收测试:针对不同环境下或不同用户的测试,对应α和β测试,如游戏内测、公测等等。
- 按测试方法分类:
- 黑盒测试:代码不可见,界面UI功能可见的测试,对应功能测试
- 白盒测试:代码可见,代码走读测试
- 灰盒测试:部分代码可见(如接口地址、出入参及其他),对应接口测试
- 其他:
- 性能测试:非功能测试,属于专项测试
- 自动化测试:一般分为使用工具或者代码,通过自动化流程完成的测试,功能和非功能测试都存在。
软件质量模型
- 定义:衡量一个优秀软件的维度
- 包含:(主要前五个)
- 功能:通俗来说就是软件功能可以用;
- 性能:多用户同时使用一个功能,不会造成卡顿、崩溃等
- 兼容性:浏览器、系统兼容,手机应用还要考虑 网络、机型、与常用app的兼容性等
- 易用性:简洁、友好、流畅、美观
- 安全性:传输过程中,重要数据是否加密;是否有漏洞等等
- 可靠性:少有卡顿、无响应、崩溃死机等,或者死机之后能在一定时间内自行恢复
- 可移植性:系统和数据可以方便迁移
- 可维护性:后期升级维护方便
测试流程(具体公司可能会有所不同,但其实大同小异)
- 需求评审:确保各部门需求理解一致
- 测试计划或者测试方案编写:测试目标、测试范围、测试人员和时间安排等等
- 测试用例编写:用例设计编写,有些可能会有测试用例评审(一般测试组内和相关的开发人员一起过一下,有问题则修改)
- 执行测试:部署完测试环境后,根据用例执行测试,并提交缺陷
- 缺陷跟踪处理:跟踪处理缺陷,直到解决
- 测试报告:出具最终测试总结报告
测试用例
- 定义:为了测试项目而编写的执行文档
- 测试用例的作用:防止漏测功能;实施测试的标准
- 测试用例包含内容:
- 用例编号:一般格式 项目_模块_编号 如qq_login_001
- 用例标题:预期结果(测试内容),如登录成功(用户名和密码存在且正确)
- 项目/模块:测试的项目和模块
- 优先级:一般P0~P4,数字越小级别越高
- 前置条件:进入此条测试的前提条件
- 测试步骤:此条测试的操作步骤
- 测试数据:步骤对应的输入内容
- 预期结果:预期出现的结果,如 测试成功、测试失败等等