1、艾斯医药商务系统覆盖率测试 1.逻辑覆盖测试逻辑覆盖测试主要是针对程序的内部逻辑结构设计测试用例的技术,它通过运行测试用例达到逻辑覆盖的目的。包括以下3种类型的逻辑覆盖:1. 语句覆盖2. 判定覆盖3. 条件覆盖/* * 购物车添加商品方法 * 在判断hashmap中没有pid对应商品是为false情况下添加product * param pid * param product */ public void addProduct(String pid,Product product) if(hashmap=null) hashmap= new HashMap(); if(hashmap.con
2、tainsKey(pid)=false)/购物车中不存在该商品 hashmap.put(pid, product); 函数的流程图如下:2.语句覆盖语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行的语句至少执行一次。根据概念,为了对上面的函数进行语句覆盖,只要设计一个测试用例就可以覆盖2个执行语句块中的语句。针对程序的判断语句,可在入口处设计测试用例。测试用例输入为:hashmap=null程序执行的路径为:abd。如果程序只运行上面的测试用例,虽然可以执行模块中的所有语句,但并不能检查判断逻辑是否有问题。例如在第一个判断中错误地把=写成!=,则上面的测试用例仍可以覆盖所有的执
3、行语句。可以说语句覆盖率是最弱的逻辑覆盖准则。3.判定覆盖判定覆盖(也称为分支覆盖),设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少各执行一次。根据上面的定义,对于上面的程序,只要设计两个测试用例则可以满足条件覆盖的要求。测试用例的输入为:hashmap!=null hashmap=null上面的两个测试用例虽能够满足判定覆盖的要求,但是有时候也不能对判定条件进行检查。4.条件覆盖设计足够多的测试用例,运行所测程序,使程序中每个判断内的每个条件的各个可能取值至少执行一次。为了清楚的设计测试用例,对例子中的所有条件取值加以标记。例如:对于第一个判断:条件hashmap
4、=null,取真值为T1,假值为-T1;对于第二个判断: 条件hashmap.containsKey(pid)=false,取真值为T2,假值为-T2;则可以设计测试用例如表5-7所示: 表5-7测试用例通过路径条件取值覆盖分支hashmap=nullhashmap.containsKey(pid)=falseabdT1,T2bdHashmap!=nullhashmap.containsKey(pid)=falseacd-T1,T2cdHashmap=nullhashmap.containsKey(pid)!=falseabeT1,-T2be上表所示的测试用例不但覆盖了所有分支的真假两个分支,而且覆盖了判断中的所有条件的可能值。但是如果设计了表5-8的测试用例。则虽然满足了条件覆盖,但并不满足分支覆盖的要求。 表5-8测试用例通过路径条件取值覆盖分支Hashmap!=nullhashmap.containsKey(pid)!=falseace-T1,-T2ce