1.测试方法
①从是否关心软件内部结构分为:黑盒测试、白盒测试和灰盒测试。
②从软件开发阶段划分为:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试。
③从是否执行代码来看:静态测试、动态测试。
2.概念
黑盒测试:把程序当做一个不能打开的黑盆子,着眼于程序外部结构,不考虑程序内部结构特性,针对软件界面和软件功能进行测试。
白盒测试:针对被测单元内部是如何工作进行测试的。检查程序内部逻辑,对所有的逻辑路径进行测试。
灰盒测试:介于黑盒测试和白盒测试之间的测试。
单元测试:对软件中的最小可测单元进行检查和验证。Java里可测试单元——java类
集成测试:又称“组装测试”。把通过单元测试的各个单元(或者模块)逐步组合在一起进行测试,以期望通过测试,发现各软件单元接口之间存在的问题。
接口测试:测试系统各组件间接口的一种测试。接口测试主要用于 检测外部系统与系统之间以及各个子系统之间 的交互点。测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
冒烟测试:是版本验证测试,完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。
个人理解冒烟测试最大的优点在于节约测试的时间成本,减少测试轮数。
回归测试:是软件维护阶段 对软件修改后进行的测试,指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
α测试:是由用户在开发环境下的测试,或者是开发内部的用户在模拟实际环境下的测试;
β测试:是由软件的一个或多个用户在实际使用环境下进行的测试
区别:
α测试 由开发人员或测试人员在场,可随时记录下错误和使用中出现的问题
β测试 开发人员和测试人员都不在场。
只有当α测试达到一定的可靠程度时,才能开始β测试,它处在整个测试的最后阶段。
3.测试的流程
测试流程大致分为5个阶段:需求分析、测试计划、测试设计、测试执行、测试文档
需求分析:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。
测试计划:主要就是编写测试计划,参考软件需求规格书,项目总体计划,内容包含测试范围(来自需求文档),进度安排、人力物力的分配,整体测试策略的制定。风险评估与规避措施的制定。
测试设计:主要就是编写测试用例,参考需求文档(原型图)概要设计,详细设计等文档,用例编写完成后进行评审。
测试执行:搭建环境,执行冒烟测试,然后进行正式测试,bug管理直到测试结束。
测试文档:出测试报告,bug清单报告。
4.测试项目具体工作
搭建测试环境、撰写测试用例、执行测试用例、写测试计划、测试报告、提交并测试bug表单、跟踪bug修改情况
执行自动化测试,编写脚本,执行、分析、报告
进行性能测试、压力测试等其他测试,执行,分析调优,报告
5.黑盒测试的主要测试方法
常用的有:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法、场景法、因果图法、功能图分析法等
等价类划分法(将测试的范围划分为几个互不相交的子集,分为有效等价类、无效等价类)(适合输入框)
边界值分析法(选出的测试用例,应该正好等于、大于、刚刚小于边界的值)(适合输入框)
因果图法(利用图解法分析输入的各种组合,考虑条件之间的相互制约情况)(输入条件各种组合)
错误推测法(在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误)
判定表法(适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判定清晰的测试)
正交试验法(在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例)
6.白盒测试用例设计方法
语句覆盖
分支覆盖
条件覆盖
分支-条件覆盖
条件组合覆盖
路径覆盖
7.测试用例八大要素
用例编号
所属模块
用例标题
用例级别
前置条件
输入数据
操作步骤
预期结果
8.P0123优先级
P0:核心功能测试用例(冒烟测试),确定此版本是否可测的测试用例,此部分测试用例如果fail会阻碍大部分其他测试用例的验证。
P1:高优先级测试用例,最常执行以保证功能性是稳定的;基本功能测试,和重要的错误、边界测试
P2:中优先级测试用例,更全面地验证功能的各个方面,异常测试,边界、中断、断网、容错、UI等测试用例
P3:低优先级测试用例,不常常被执行,性能、压力、兼容性、稳定性、安全、可用性等等
9.如何写测试用例
1、测试人员尽早介入,彻底理解清楚需求,这个是写好测试用例的基础
2、如果以前有类似的需求,可以参考需求的测试用例,然后还需要看类似需求的bug情况
3、清楚输入、输出的可能性,以及各种输入之间的关联关系,理解清楚需求的执行逻辑,通过等价类、边界值、判定表等方法找出大部分用例
4、找到需求相关的一些特性,补充测试用例
5、根据自己的经验分析遗漏的测试场景
6、多总结类似功能点的测试点,才能够写出质量越来越高的测试用例
7、书写格式一定要清晰
10.为什么要做接口测试?
a)系统复杂度比较高,传统的测试方法成本增加且测试效率低
b)接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求
c)现在很多系统前后端架构是分离的,从安全层面来说:只依靠前端进行限制已经完全不能满足系统的安全要求,需要后端同样进行控制,在这种情况下就需要从接口层面进行验证