测试用例设计:
怎样的测试用例是好用例?如果用一条用例覆盖一个功能点在实际操作中有很大的缺陷。首先不能确保测试人员进行集成测试时对功能用例执行到位,可能会出现遗漏。因此我们在测试用例输出过程中,建议测试人员就测试因子使用工程方法进行流程功能覆盖。但是这样引入另外一个问题,客户的需求是不断变化的,需求在执行设计和测试用例输出时,很大几率产生变化,这种变化势必对原输出的测试用例造成冲击。调整的工作量有时会很大,有可能对整个功能推倒重新输出用例。面对这样的情况该如何解决?
分析:每个用例覆盖一个功能点,是最佳的理想状态。但条件覆盖有个缺点就是每次执行会存在一个较长的周期,如果部分不可套用自动化,会导致测试和开发并行产生无法按时验证完每个版本的分支。
测试方案包括:测试目的,拟定的输入数据和预期结果
测试数据和预期结果常被称为测试用例;
(最困难的是设计测试用的输入数据)
不同的测试方案,发现错误的能力有差别,为提高测试效率、降低测试成本,应选用高效的测试数据。所以,测试用例设计是测试的关键技术;
因为不可能进行穷尽的测试,所以测试用例设计的目标是,选用少量“最有效的”测试数据,做到尽可能完备的测试。
白盒法、黑盒法,都是指对测试用例的一种设计策略。
白盒测试技术的逻辑覆盖:白盒法被测对象基本上是源程序,程序的内部逻辑是设计测试用例的依据。
选择有代表性的通路,是对穷尽测试的唯一可行的替代办法。
所谓逻辑覆盖,是对一系列测试过程的总称,这组测试过程,逐渐进行越来越完整的通路测试。
逻辑覆盖
逻辑覆盖分为:语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、路径覆盖。
语句覆盖:
为了暴露错误,应选择足够多的测试数据,使被测源程序中的每个语句至少执行一次。
语句覆盖对程序的逻辑覆盖很少;
此外,语句覆盖只关心判定表达式中每个条件取不同值时的情况。
综上所述,可以看出语句覆盖是很弱的逻辑覆盖标准,为了更充分地测试程序,可以采用下述的逻辑覆盖标准。
判定覆盖:
判定覆盖又叫分支覆盖,关注整个表达式;
不仅每个语句必须执行至少一次,而且每个判定的每种可能的结果都应该至少执行一次,即至少取“真”“假”两个分支
判定覆盖比语句覆盖强;但是对程序逻辑的覆盖程度仍然不高,只关注到整个判定的表达式的结果,没有关注到表达式中的每个条件的不同取值;
判定/条件覆盖:
条件覆盖不一定包含条件覆盖,自然会提出一种能同时满足这两种覆盖标准的逻辑覆盖,这就是判定/条件覆盖。
含义:选取足够多的测试数据,使得判定表达式中的每个条件都曲奥各种可能的值,而且每个判定表达式也都取到各种可能的结果。
条件组合覆盖:
条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
循环覆盖:
循环测试是一种白盒测试技术,它专注于测试循环结构的有效性。
在结构化的程序中通常只有三种循环:简单循环、串接循环和嵌套循环。