学习目标
- 熟悉测试流程和规范,熟练掌握软件测试方法至少熟悉功能测试.性能测试.安全测试中的一种;
- 熟练使用常用的测试工具,熟悉缺陷管理跟踪软件(禅道.Jira.QC等),熟悉持续集成工具Jenkin;
- 熟悉Linux操作系统,熟悉TCP/HTTPS等网络协议,熟悉MySQL/Oracle等数据库;
- 较强的表达沟通能力.团队合作精神,工作细致责任心强,较强的逻辑分析总结能力和学习能力:
- 掌握Python,C,C++等其中一种编程脚本语言岗位职责:
- 熟悉黑盒测试设计方法进行测试设计,如:等价类、边界值法、错误推断法、场景法、因果图判定法;熟悉 TMSS云龙、DTS 等各种缺陷工具对 BUG 的记录与跟踪,回归验证,以及问题的负向分析,风险识别和建议;(面试重点内容)
1.按阶段
单元测试:针对程序源代码进行测试(开发)
集成测试:又称接口测试,主要针对模块与模块或系统与系统之间的接口进行验证
系统测试:针对软件全面进行验证(功能、兼容、文档)
验收测试:使用内测、公测来实现
1. 内测:公司内部进行测试
2. 公测:让玩家来进行测试
2.按代码可见度划分
黑盒测试(自动化测试)
灰盒测试:接口测试,看不到代码
白盒测试:单元测试,针对源代码进行测试
冒烟测试:大规模测试之前,针对程序主功能进行验证,保证程序具备可测性。
3.模型
1.质量模型:功能、兼容、性能、易用、安全
2.W模型:
开发流程:需求分析、概要设计、详细设计、编码
测试流程:单元测试、集成测试、系统测试、验收测试
4.解决穷举问题
方法:等价类可以实现
分类:
有效等价
无效等价
步骤:
明确需求
确定有效和无效等价类
提取数据编写用例
5.缺陷介绍
1.定义:软件中使用任何问题都为问题,简称bug
2.标准:衡量是否为缺陷的标准。少功能、功能实现错误、多功能、隐形功能错误、不易食用
3.产生原因:
需求阶段:需求描述不易理解,有歧义、错误等
设计阶段:设计文档存在错误或者缺陷
编码阶段:代码出现错误
运行阶段:软硬件系统本身故障导致软件缺陷
6.测试用例设计方法总结
测试用例方法
黑盒测试:功能性测试,不了解代码结构的前提下,根据功能设计用例,测试功能
白盒测试:结构性测试,明确代码流程的前提下,根据代码逻辑设计用例,进行用例覆盖 (面试题)
黑盒测试:
等价类方法:适用场景:针对批量数据输入类的测试,无法穷举测试时使用
常见代表:输入框、下拉框、选择按钮
边界值方法:使用场景:针对有边界范围的批量数据输入的地方。先用等价类,再用边界值
因果图
判定表
状态迁移法
正交
场景法(流程图)
错误推断法:
白盒测试:有代码覆盖
语句覆盖:确保代码里的每一个语句都会覆盖,语句覆盖只需设计一个true样例去执行if语句中的判断语句即可,不需要true和false都满足。
判断覆盖:确保代码中每个判断语句都会被覆盖,即被测程序中的每个判断的取真分支和取假分支至少经历一次即可。
条件覆盖
条件判断覆盖
路径覆盖
六种覆盖方法中,覆盖准则由弱到强依次是语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。 其中,
语句覆盖是使得程序中每个语句至少被执行一次;
判定覆盖是使得程序中的每个分支至少都通过一次;
条件覆盖是使得判定中的每个条件获得各种可能的结果;
判定/条件覆盖是使得判定中的每个条件取到各种可能的值,并使每个判定取到各种可能的结果;
条件组合覆盖是使得每个判定中条件的各种可能组合都至少出现一次;
路径覆盖的含义是,选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)
测试用例的本质(基于需求)
- 理解需求、反映需求,忠于需求
- 需求需求会变化,则测试用例也应该是活的,变化的
- “及时响应变更比遵循计划更有价值”
原则:
- 根据程序的重要性和一旦发生故障带来的损失,来确定测试等级和测试重点。
- 认真选择测试策略,用尽可能少的测试用例发现尽可能多的错误。测试用例不足会导致风险的增大,测试过度导致资源浪费,需平衡
方法选取
- 先关注主要功能的业务流程、业务逻辑是否正确实现,考虑场景法
- 需要输入数据的地方,考虑等价类划分法
- 在任何情况行都使用边界值法
- 如果程序的功能中包含输入条件的组合情况,则选取因果图和判定表法
- 对于配置类软件,需要考虑参数的组合情况,考虑使用正交排列法
- 对照程序逻辑,如果发现没有达到要求的覆盖标准,适当补充更多的测试用例
- 采用错误推断法,追加其他测试用例
7.测试用例的评审
同行评审
用户评审
8、测试流程
需求分析
测试计划:测什么、谁来测、怎么测
编写用例
执行用例
缺陷管理:提交、验证、关闭
测试报告:测试目标、测试流程、缺陷统计、缺陷分析、测试总结