1、软件测试介绍
使用技术手段验证软件是否满足使用需求。
2、软件测试目的
减少软件缺陷(bug),保障软件质量。
3、测试的主流技能
功能测试:验证软件的功能是否满足需求。
自动化测试:使用代码或工具代替手工,对项目进行测试。
接口测试:使用代码或工具对服务端提供的接口进行测试。
性能测试:模拟多人使用软件,查找服务器缺陷。
4、常见的测试分类
4.1、按测试阶段划分
单元测试:针对程序源代码进行测试(开发自测)
集成测试:又称接口测试,针对模块之间访问地址进行测试
系统测试:对整个系统进行测试,包括功能、兼容、文档等测试
验收测试:主要分为内测、公测,使用不同人群来发掘项目缺陷
4.2、按代码可见度划分
黑盒测试:看不见源代码,主要对程序功能进行测试(功能测试)
灰盒测试:看见部分代码,主要对程序接口进行测试(集成测试:接口测试)
白盒测试:看见全部代码,主要对程序源代码进行测试(单元测试)
4.3、其它
冒烟测试:针对系统最基本功能进行测试,保证基本的功能和流程走通
回归测试:当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试
5、软件测试流程
1)需求分析:收集需求,编写需求文档,并对文档进行评审;确保需求能充分覆盖软件需求的各种特征以及各部门需求理解一致和查缺补漏。
需求收集:收集整理原始需求和产品需求并撰写需求文档。
需求评审:由产品、开发、测试共同参加。
完整性:应保证测试需求能充分覆盖软件需求的各种特征。
准确性:应保证所描述的内容能够得到相关各方的一致理解,各项测试需求之间没有矛盾和冲突。
2) 计划编写:制定测试计划(人员、负责事项、项目周期)
3)用例设计:通过专业的测试方法编写测试用例。
步骤:根据需求文档提取测试点,编写测试用例;
方法:常用的方法有【等价类划分法、边界值法、判定表法、因果图法等】
注意事项:用例要做到覆盖软件的各项功能,及各项功能可能存在的交叉,以防漏测。
4)用例执行:项目模块开发完成开始执行用例文档完成测试
5)缺陷管理:对缺陷管理的过程
a:测试发现bug并提交(BUG管理系统,如禅道等)
b:开发确认bug
c:开发解决bug
d:测试验证bug,如果解决且没有引入新问题,则关闭bug; 如果bug未决或引入新问题,则打回。(带开发重新解决后重复此流程)
6)测试报告:根据测试结果,编写测试报告。
6、设计测试用例的常用方法
6.1、等价类划分法
有效等价类:满足需求的数据集合
无效等价类:不满足需求的数据集合
6.2、边界值分析法
边界范围节点:选取正好等于、刚好大于、刚好小于边界的值作为测试数据
上点:边界上的点(正好等于)
离点:距离上点最近的点(刚好大于、刚好小于)
内点:范围内的点(区间范围内的数据)
6.3、判定表法
定义:是一种以表格形式表达多余条件逻辑判断的工具
组成:条件桩:列出问题中的所有条件,列出条件的次序无关紧要
动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
条件项:列出条件对应取值,所有可能情况下的真价值
动作项:列出条件项的组合,各种取值情况下应该采取的动作结果
规则:1. 判定表中贯穿条件项和动作项的一列就是一条规则
2. 假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则