什么是测试用例
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
测试用例(Test Case)是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的。
测试用例是软件测试的核心
软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。
测试用例
影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。
因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。
设计说明
参考百度百科:https://baike.baidu.com/item/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1928697
功能用例的自动生成法则
下面是设计一个测试登陆功能是否必填的Model文件的例子。输入条件有登录名、密码、验证码。各项输入条件分别有不同的参数选择。
username: 填写登录名, 不填登录名
psw: 填写密码, 不填密码
yzm: 填写验证码, 不填验证码
则可产生下面的测试用例:
username psw yzm
填写登录名 不填密码 填写验证码
填写登录名 填写密码 不填验证码
不填登录名 不填密码 不填验证码
不填登录名 填写密码 填写验证码
填写登录名 填写密码 填写验证码
不填登录名 不填密码 填写验证码
从上面的例子不难看出,用例自动生成的总量依赖于信息维度数量和维度条件数量。
什么是信息维度数量?
信息维度: 指的是完成一个测试链路(比方说:登录),需要经历的步骤(一个步骤可称为一个维度),以上面例子来看,算法中包含三个维度即:username,psw,yzm
因此:信息维度数量是 3
什么是维度条件数量?
维度条件: 指的是各个维度中条件的个数;举个栗子:维度username中包含了【填写登录名】,【 不填登录名】两类条件(真实场景中考虑边界值、等价类情况等,条件种类会大于2)
因此:维度“username”的条件数量是2
用例总量 = C21 * C21 *C21 = 6, 因此会出现6种不同路径的测试用例
这种思路等同于接口用例的自动生成法则,站在白盒测试的角度对开发代码的路径进行全覆盖,需要设计出最小cover用例数。
功能用例的自动生成的代码实现
Case类: 顾名思义,测试用例类,是上述6条用例的统称
Action类: 动作,是Case携带的属性之一;一个Case包含N个Action
Step类: 步骤,Action在执行过程中最终使用了哪种的步骤;一个Action包含N种Step,但是一个Action一次执行实例化和执行一种Step
FullCaseRoad类: 生成用例总量 的方法类,缺点是:将无关的用例路径也一并生成出来,对测试人员造成了极大的时间浪费去做排查
AnalysisTest类: 用例步骤信息采集的初始化类
部分代码如下:
上面是小编根据面向对象Java管理用例的思想和实际用例步骤前后的逻辑关系特性而编写的一个十分轻量化的框架,根据这个框架可以做很多衍生,例如:
1. 数据信息输入采集通过Excel表录制、线上数据分析和采集等思路对接
2. 生成的实际用例与决策树绑定建立图像化逻辑树图的对接
3. 逻辑用例和数据用例的转化等等
该框架现已经开源到百度云盘上,欢迎下载使用和继续贡献:
链接:https://pan.baidu.com/s/13wbNBjvCCKaoMgpKzidykQ
提取码:nxtx