软件测试相关问题
什么是软件测试
软件测试是检查软件是否按预期运行的过程
软件测试的作用
保证质量
降低成本
提升体验
测试哪些方面
质量模型:是确保软件在功能、性能、安全性、兼容性、易用性、可维护性、可迁移性、可靠性方面达到预期质量水平
-
功能性:能不能用
-
性能:快不快
-
安全性:数据安全否
-
兼容性:其他能用否
-
易用性:好不好用
如何开展测试
软件产生过程
需求分析:收集需求,分析可行性,撰写需求规格说明书
设计阶段:架构设计,详细设计
编码阶段:根据设计文档编写代码
测试阶段:单元测试、集成测试、系统测试、验收测试
部署阶段:部署环境
维护阶段:修复缺陷、功能扩展、性能优化
软件测试流程
需求评审:确保各部门需求理解一致
计划编写:测什么、谁来测、怎么测
用例设计:验证项目是否符合需求的操作文档
用例执行:项目模块开发完成开始执行用例文档实施测试
缺陷管理:对缺陷进行管理的过程
测试报告:实施测试结果文档
常见测试分类
按测试阶段划分
单元测试:针对程序源代码进行测试
集成测试:又称接口测试,针对模块之间访问地址进行测试
系统测试:对整个系统进行测试包括功能、兼容、文档等测试
验收测试:主要分为内测、公测,使用不同人群来发掘项目缺陷
按代码可见度进行划分
黑盒测试:源代码不可见,UI功能可见
灰盒测试:部分源代码可见,功能不可见
白盒测试:全部代码可见,UI功能不可见
测试用例
什么是测试用例
为测试项目而设计的执行文档
测试用例作用
-
防止漏测
-
实施测试的标准
用例设计编写格式
-
用例编号:项目-模块-编号
-
用例标题:预期结果(测试点)
-
项目/模块:所属项目或模块
-
优先级:用例的重要程度或影响力P0-P4(P0最高)
-
前置条件:要执行此条用例,有哪些前置操作
-
测试步骤:描述操作步骤
-
测试数据:操作的数据,没有可以为空
-
预期结果:期望达到的结果
等价类划分
在所有测试数据中,具有某种共同特征的数据集合进行划分
有效等价类:满足需求的数据集合
无效等价类:不满足需求的数据集合
适用场景
需要有大量数据测试输入,但没法穷举的地方
-
输入框
-
下拉列表
-
单选复选框
边界值分析法
边界范围节点
-
上点:边界上的点
-
离点:距离上点最近的点(刚好大于、刚好小于)
-
内点:范围内的点(区间范围内数据)
选择上开内闭外,开区间选择内部离点,闭区间选择外部离点
适用场景
典型:有边界范围的输入框类测试
判定表法
一种以表格形式表达多条件逻辑判断的工具
判定表中贯穿条件项和动作项的一列就是一条规则
-
条件桩:列出问题中所有条件
-
动作桩:列出问题中可能采取的操作
-
条件项:列出条件对应的取值
-
动作项:列出条件项的、各种取值下应采取的动作结果
适用场景
-
有多个输入条件,多个输出结果。输入条件之间有组合关系,输入输出间有制约关系
-
一般适用于条件组合数量较少的情况,如果条件超过四个,就不适合覆盖所有条件,应采用正交法来解决
场景法
业务测试覆盖
使用流程图
先测试业务再测试单页面
业务用例是根据流程图来梳理的,需要先了解流程图
缺陷
软件在使用过程中存在的任何问题都叫软件的缺陷,简称bug
缺陷判定标准
-
少功能
-
功能错误
-
多功能
-
隐形功能错误
-
不易使用
缺陷产生原因
-
需求阶段:需求描述不易理解,有歧义、错误等
-
设计阶段:设计文档存在错误或者缺陷
-
编码阶段:代码出现错误
-
运行阶段:软硬件系统本身故障导致软件缺陷
软件缺陷的核心内容
-
缺陷的标题:描述缺陷的核心问题
-
缺陷的预置条件:缺陷产生的前提
-
缺陷的复现步骤:复现缺陷的过程
-
缺陷的预期结果:希望得到的结果
-
缺陷的实际结果:实际得到的结果
-
缺陷的必要附件:图片、日志等信息
缺陷提交要素
-
缺陷报告编号:缺陷的唯一性标志
-
严重程度
-
严重:主功能
-
一般:次要功能
-
微小:易用性、界面
-
建议:建议性问题
-
-
缺陷优先级
-
priority0:24小时内解决
-
priority1:发布前修复
-
priority2:下一个版本中修复
-
-
BUG类型:代码错误、兼容性问题、设计缺陷、性能问题
-
缺陷状态
-
NEW:新建
-
OPEN:打开
-
CLOSE:关闭
-
POSTPONED:延期
-