测试用例设计方法:

1)等价类:把输入的数据可以分为有效的数据和无效的数据

被测试的对象输入的数据: 1、有效的数据 2、无效的数据

测试一个产品,需要考虑它的正确场景,也需要考虑它的异常场景。

2)边界值:边界值测试用例是针对等价类测试用例方法的补充,因为等价类测试用例的方法只考虑到了输入数据的有效数据和无效数据,但是没有考虑到边界的情况。

3)因果图:指的是被测对象有多个输入条件,根据不同的输入条件之间的关系(并且,或者,非)来匹配筛选出不同的结果。

排列组合:因果图是根据输入的不同条件来根据排列组合来设计不同条件下的测试用例。

4)正交实验分解法:因果图根据输入的N个不同条件组合下来导致测试用例的个数是呈指数级的增加,这样导致测试的资源(人力,时间资源)上根本无法满足测试的时间要求那么这个时候只需要测试有代表性的数据就可以了,那么使用的方法就是正交实验分解法。

等价类与边界值结合起来使用, 因果图与正交实验分解法结合起来使用。

5)错误推测法

定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从⽽有针对性的设计测试⽤例的⽅法。 针对非功能性的测试,主要是根据现有的经验和直觉,来判断系统中可能存在的问题,然后进行测试来验证存在的问题是否存在。

相关场景实例:

①在波浪式的交互过程中,一直往下滑动,可能会出现浏览器的卡死

②在列表中翻页可能也会存在浏览器的卡死

③Java语言编写的应用程序,大概率可能存在内存泄露(Java.lang.OutOfMemory,简称:OOM)

④一码通,对该应用程序进行大量的扫描二维码并且一直在进行扫描,那么很有可能存在扫描二维码后出现不了结果或者是导致结果一直加载中

内存泄漏:一个应用程序都会分配内存,比如分配了2G,但是程序在使用的过程中,由于程序受到了太大的压力,导致使用的内存超过了分配给自己的内存,那么就会导致内存溢出,在专业角度上我们叫内存泄露。

6)场景设计方法:指的是针对一个系统从输入流开始一直到输出流的完整性的测试,主要考虑的是被测对象的业务流程,也就是各个不同场景方法的测试。

7)判定表驱动分析法

①定义:判定表是分析和表达多逻辑条件下执⾏不同操作的情况的⼯具。

②判定表的优点: 在⼀些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执⾏不同的操作。判定表很适合于处理这类问题。 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利⽤判定表能够设计出完整的测试⽤例集合。

③判定表的组成:

a.条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序⽆关紧要。

b.动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。

c.条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。

d.动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

判定表驱动分析法的简述:列出被测试对象可能存在的各个不同条件,再依据因果图排列组合的方式(逻辑关系并且和或者关系),来设计出被测产品的测试点,如果排列组合下来的测试用例个数比较多,在资源紧张的情况下,那么就可以使用正则分解法来优化测试用例。

8)功能图分析⽅法

①定义:⼀个程序的功能说明通常由动态说明和静态说明组成.动态说明描述了输⼊数据的次序或转移的次序.静态说明描述了 输⼊条件与输出条件之间的对应关系.对于较复杂的程序,由于存在⼤量的组合情况,因此,仅⽤静态说明组成的规格说明对于测试来说往往是不够的.必须⽤动态说明来补充功能说明.功能图⽅法是⽤功能图FD形式化地表示程序的功能说明,并机械地⽣成功能图的测试⽤例. 功能图模型由状态迁移图和逻辑功能模型构成.状态迁移图⽤于表示输⼊数据序列以及相应的输出数据.在状态迁移图中,由输⼊数据和当前状态决定输出数据和后续状态.逻辑功能模型⽤于表示在状态中输⼊条件和输出条件之间的对应关系.逻辑功能模型只适合于描述静态说明,输出数据仅由输⼊数据决定.测试⽤例则是由测试中经过的⼀系列状态和在每个状态中必须依靠输⼊/输出数据满⾜的⼀对条件组成.功能图⽅法其实是是⼀种⿊盒⽩盒混合⽤例设计⽅法。

(功能图⽅法中,要⽤到逻辑覆盖和路径测试的概念和⽅法,其属⽩盒测试⽅法中 的内容.逻辑覆盖是以程序内部的逻辑结构为基础的测试⽤例设计⽅法.该⽅法要求测试⼈员对程序的逻辑结构有清楚的了解.由于覆盖测试的⽬标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖.下⾯我们指的逻辑覆盖和路径是功能或系统⽔平上的,以区别与⽩盒测试中的程序内部的.)

②功能图分析⽅法简述:它是非功能性的测试用例设计方法,是针对被测程序内部的一种测试方法,主要测试的对象是被测程序的内部代码,使用代码的逻辑来验证被测对象的程序逻辑是否存在问题,是白盒的一种方法。

测试用例三种方式:

1)思维导图

2)excel

3)checklist

checklist(针对测试的对象列出必须测试的场景,只不过它的描述相对而言是比较简单的): 检查点,使用的场景具体如下:

1、开发转测了,但是时间非常紧张,要求今天上线,那么这个时候测试编写checklist把需要测试的点梳理出来进行测试

2、上线前使用checklist列出上线后必须需要测试的点(必须要进行的测试点往往指的是一个产品的核心流程)

 专业术语

①发一个hotfix(修补程序、补丁)版本,来修复这个issue(问题)

②线上环境:沙盒环境(给应用程序一个虚拟环境,在沙盒里面的所做的一切操作不会影响沙盒外的系统,但沙盒里面的操作还是保留)/影子库(在影子系统里面对系统所做的一切操作,重启系统后会恢复成原样,而进行的操作会丢失)

③openID:从小程序来的所有订单以及请求,小程序都会自带一个唯一的标识,唯一的标识就是openid。

测试用例设计练习:

成长值发放与使用流程

  1)思维导图方式设计用例:

 2)excel方式设计用例:

3)checklist设计测试用例

①当支付订单成功就可以发放成长值;

②当支付订单失败不发放成长值;

③当成长值积累到X,那么用户就获取等级称号、享受等级特权;

④当成长值未积累到X,那么用户就未获取等级称号、不享受等级特权;

⑤当用户存在作弊、其它扣取成长值的行为就可以会扣减成长值;

⑥当用户获取等级称号、享受等级特权后且一年内达到保级条件,用户获得等级的特权顺延一年;

⑦当用户获取等级称号、享受等级特权后但一年内未达到保级条件,但用户是“金骆驼”等级,系统保留用户的本级别特权,在用户达到消费条件时,可重新享受特权;

⑧当用户获取等级称号、享受等级特权后但一年内未达到保级条件,且用户不是“金骆驼”等级,系统将用户等级降为“草骆驼”。

项目管理工具:

TAPD,jira

敏捷里面的知识:

task:故事,一个故事有开始也有结束,那么在项目管理里面,会把每个任务按照一个task来看,那么这个task也可以叫story,具体指的就是任务有开始有结束。

可以安排很多的task,每个task具体到story。