测试要软件质量(从8方面来区分):
1.功能测试
2.安全测试
3.性能测试
4.可靠性测试
5.压力测试
6.安装测试
7.用户界面测试
8.兼容性测试
测试技术:
黑盒测试 (数据驱动测试 or 功能测试):
概念:检查程序功能是否按照规格说明书的规定正常使用。
关注点:
1.检查该功能是否与原始需求一致,在原始需求的基础上,新增/删减的功能都是不合理的,检查时把自己作为用户来操作,在操作过程中是否有 1.功能操作不畅 or 2.引导文案产生歧义
2.与UI界面布局一致
3.异常操作、异常流程,检查程序的容错处理,在输入输出上,输入正确的值是否能输出预期的结果;输入错误的值程序是否会友好的提示用户并加以引导
4.产生的数据及数据流向正确(记录到数据库,以及展现在页面的数据)
一.常用的黑盒测试方法:
1.等价类划分法
概念:对于程序的规格说明来说是合理的——有效等价类
对于程序的规格说明来说是不合理的,没有意义的输入数据 —— 无效等价类
例子:1.比如若规定的输入范围是1<x<10的所有数,则有效的是1~10内的任意数,而无效的是 -∞~0.9999 和10.00001~+∞;
2.边界值分析法
概念:首先应确定边界情况。边界值的选择通常都是 1. 小于最小边界值;2.等于最小边界值;3.满足边界内的中间数;4.等于最大边界值; 5.大于最大边界值
例子:1.比如若规定的输入范围是1<x<10的所有数,边界值的选择应为0,1,5,10,11
3.因果图法
程序规格说明书的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
4.正交实验设计法
正交试验设计是分式析因设计的主要方法,当实验次数太多时,会选择一部分代表性水平组合。
5.判定表驱动分析法
概念:是分析和表达多逻辑条件下执行不同操作的情况下的工具。【基本思路:对多个条件的组合进行分析】
例子:场景要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。请建立决策表。
①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则
②列出所有的条件茬和动作桩
③填入条件项:可从左至右达到全覆盖
④填入动作桩和动作顶
⑤简化决策表,合并相似规则。
生成结果:
6.场景法
概念:按照正确的事件流实现的一条正确流程,那么我们把这个称为该软件的基本流;而凡是出现故障或缺陷的过程,就是备选流
7.错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误。
8.功能图分析法
总结:黑盒测试的综合策略是:1.首先考虑边界值分析法,2.必要时用等价类划分方法,3.其次可以用错误推测法和场景法;如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法。
二.灰盒测试:
概念:既关注输出对于输入的正确性,同时也关注内容表现,通过一些表征性的现象、事件、标志判断内部的运行状态
常见:接口测试
满足接口文档:按照接口文档的参数格式来进行传参(正确的数据类型、大小、长度)
不满足接口文档的容错性检查:1.非空 2.错误的数据类型 3.超长检查——超过数据库字段定义的大小 4.其他一些异常数据
三.白盒测试(结构测试 or 逻辑驱动测试):
概念:检验程序中每条通路是否按预定要求正确工作。
关注点,大多由开发人员通过单元测试进行自测:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真"与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
四.测试阶段(映射到工作流程上)
单元测试:开发自检自测
集成测试:交付给前端-对接接口,测试该模块功能是否满足需求
系统测试:测试人员将功能涉及的完整流程进行测试(输入、输出、页面的跳转、数据的正确性)
验收测试:(上线前的回归)将自己作为用户来检测该功能是否能有效的引导用户、以及用户能否接受的问题
五.bug的定义
概念:软件中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
从产品内部:开发或维护过程中存在的错误、毛病等各种问题
从产品外部:系统所需要实现的某种功能的 失效或违背。