软件测试
1、测试目的
发现问题、评估软件系统质量
2、软件缺陷
缺陷:未实现需求、功能错误、功能超出说明书范围、未达到目标、软件使用不便、难以理解、运行速度缓慢
缺陷来源:需求有误差、需求文档有歧义、编码、其他
3、软件测试对象:
程序、文件、数据
程序功能正确、性能良好
用户手册、运维等清晰可读、排版正确
数据配置正确、符合国家规范
4、软件测试过程模型
4.1 V模型
V模型V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为。V模型的策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。
模型缺陷:测试时间长,问题发现慢
4.2 W模型
W模型开发与测试并行,但不支持迭代
4.3 X模型
对片段进行测试,不停的交接集成测试。探索性测试可能发现意想不到的错误但是对测试人员要求较高。
X模型4.4 H模型
将测试活动从开发流程完全独立出来,使测试流程形成一个完全独立的流程,将测试准备活动与测试执行活动清晰地体现出来。只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。软件测试是一个独立的流程,贯穿于产品的整个生命周期,与其他流程并发的进行。软件测试原则“尽早准备,尽早执行”;强调测试是独立的,只要测试准备完成,就可以执行测试。
4.5 前置测试模型
前置测试模型将开发和测试的声明周期整合在一起,表示了项目声明周期从开始到结束之间的关键行为。它对每一个交付内容进行测试,在设计阶段进行测试计划和测试设计,让验收测试和技术测试保持相互独立。总之,它是一个将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以使你的项目加快速度。
5、软件测试生命周期
5.1 测试计划:测试范围、测试策略、用例选择、结果判定、人员安排。——测试计划文档
5.2 测试分析:了解相应文档
5.3 测试用例设计:黑盒、白盒——测试用例文档
5.4 测试执行:执行用例——测试缺陷报告
5.5 测试评估:评价测试——测试报告文档
6、测试方法
6.1 是否执行软件:静态分析(不需运行)、动态测试。ex:打开网页运行,动态。打开代码,查看代码问题,静态。
6.2 是否内部:
黑盒(IN - OUT),不需要查看内部,关注输入输出,又称为功能数据驱动
白盒:程序内部逻辑结构
灰盒:部分内部、部分输入输出
黑盒测试要求低,可较好模拟用户。白盒测试需要良好代码基础。
6.3 阶段和作用:
单元测试:编码结束,函数
集成测试:各模块调用,参数传递
系统:需求实现
验收:用户接收
6.4 测试目的:
功能、性能、安全(日趋恶劣,防止恶意攻击)、兼容性(浏览器兼容)
6.5 常见概念
回归测试:修改后代码测试、之前问题是否改正,且无新问题
冒烟测试:硬件,电路板是否良好。软件,基本功能测试,基本有问题驳回测试申请
α测试:用户在开发环境测试
β测试:测试发布后,用户在用户环境运行测试。比如各软件测试版。
7、测试原则
尽早、不断地测试,尽早发现问题,修改代价小
尽量避免测试自己程序
80/20原则 80%的缺陷在20%模板中,发现错误较多时,加大测试
用例由输入和预期的输出结果组成
程序修改后回归测试
穷举测试不可能实现
8、黑盒测试技术
被测系统为黑盒子,不需要了解内部,关注输入输出
发现错误:
功能不正确、遗漏
界面问题
数据库访问、加载
性能错误
初始化和终止错误
以用户角度
测试过程
测试计划:测试范围、测试策略、测试进度安排。——测试计划文档
测试分析:了解相应文档
测试用例设计:黑盒(饱和测试数据及预期结果)——测试用例文档
良好的测试用例可以缩短测试实施时间、确保测试的系统性全面性、提高测试的可复用性
测试执行:执行用例(先冒烟测试,再使用设计的测试用例)——测试缺陷报告
测试评估:对测试过程结果进行总结——测试报告文档
9、黑盒测试用例设计方法
9.1 等价类划分法
将输入数据分为若干子集,选子集中的代表测试。需要考虑有效和无效等价类。
9.2 边界值法
与等价类配套使用。
9.3 判定表驱动法
用于功能逻辑条件复杂时
条件桩:条件1、条件2、条件3
动作桩:动作1、动作2、动作3
步骤:确定规则的个数,条件数为n,规则为2**n;列出所有的条件桩和动作桩;填入条件项;填入动作项。
9.4 因果图法
从程序规格说明中找出因(条件)和果(结果),分析因果关系,以及因因、果果之间的约束关系、绘制因果图;通过因果图转为判定表;将判定表中不符合约束条件的规则去除;将判定表简化,将每一个规则转化为一个测试用例。
因果关系:恒等、非、或()、与(^)
约束关系:E异约束(A、B不能同时满足)、F或约束(条件至少一个成立)、O唯一约束(有且仅有一个成立)、R要求约束(A的成立一定需要B的成立)、M屏蔽约束(A成立B一定不能成立)
9.5 正交法
应用于配置文件与界面测试。关键是选择合适的正交表。
选取步骤:分析影响测试项的因素;分析每个因素的取值方式;设计或选择合适的正交表;把正交表的元素转换为因素的实际取值,每行转换为一个测试用例。
正交试验:L 4 (2^3) 、任何一列,不同数字出现次数一致;任何两列,数字排列齐全且均衡
L: 代表正交表。4:表行的数目(需要试验的次数)。2:因子的水平数(单个因素最大取值个数)。3:表列的数目(影响因素个数)。
常用正交表9.6 场景法
用于测试业务流程。用户使用按照流程、业务流程中的功能点相互联系、相互影响。
时间触发不同形成不同场景,事件流分为基本流和备选流,使用时尽可能的将基本流备选流组合。
10、白盒测试基础
要求测试人员良好编码基础、成本较高
白盒又称逻辑驱动测试,主要测试代码,及逻辑。
11、白盒测试方法
11.1 逻辑覆盖法
考虑测试数据对逻辑的覆盖
选择覆盖标准、按照标准列出所有情况、选择测试用例。
覆盖标准:(从弱到强)
语句:若干测试用例,使每个语句被覆盖一次
判定:使真分支、假分支都走一次
条件(与判定并列):使每个逻辑条件取值至少执行一次
判定条件:既满足判定又满足条件
条件组合:把所有条件取值都列出来
11.2 基本路径法
在程序控制流程图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径的集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。
步骤:导出控制流图、计算圈复杂度、确立独立路径、设计测试用例
控制流图:顺序、选择、循环、case
圈复杂度计算:V=m-n+2,m为边的数量、n为结点数量。控制流图把平面划成几个区域
12、自动化测试
优点:节约人力、可长时间工作
缺点:重复繁琐的才可能需要自动化、自动化测试的重点在回归测试上、不稳定时不需要自动化
什么情况需要:接口单元易于自动化、项目周期长、需求变动频繁、自动化测试用例会被反复使用、压力测试
不需要:周期短、人体感官和易用性、不稳定软件、涉及物理交互