软件测试作业,软件测试作业(四)(示例代码)

题目所给出的代码为

1 /*******************************************************2 * Finds and prints n prime integers3 * Jeff Offutt, Spring 20034 ******************************************************/

5 public static void printPrimes (intn)6 {7 int curPrime; //Value currently considered for primeness

8 int numPrimes; //Number of primes found so far.

9 boolean isPrime; //Is curPrime prime?

10 int [] primes = new int [MAXPRIMES]; //The list of prime numbers.11

12 //Initialize 2 into the list of primes.

13 primes [0] = 2;14 numPrimes = 1;15 curPrime = 2;16 while (numPrimes

19 isPrime = true;20 for (int i = 0; i <= numPrimes-1; i++)21 { //for each previous prime.

22 if(isDivisible(primes[i], curPrime))23 { //Found a divisor, curPrime is not prime.

24 isPrime = false;25 break; //out of loop through primes.

26 }27 }28 if(isPrime)29 { //save it!

30 primes[numPrimes] =curPrime;31 numPrimes++;32 }33 } //End while34

35 //Print all the primes out.

36 for (int i = 0; i <= numPrimes-1; i++)37 {38 System.out.println ("Prime:" +primes[i]);39 }40 } //end printPrimes

(a):控制流图如下

e6a02b64f5654a7a9d420bebbf0e9c66.jpg

(b):将MAXPRIMES设为4,这样t2=(n=5)就会出现数组越界的错误,但t1=(n=3)无影响。

(c):n=1的时候不满足numPrimes

(d):点覆盖:{1,2,3,4,5,6,7,8,9,10,11,12,13,14}

边覆盖:{(1,2),(2,3),(2,12),(3,4),(4,5),(5,6),(6,7),(6,8),(7,5),(8,9), (5,9),(9,10),(9,11),(10,11),(11,2),(12,13),(13,14),(14,15),(15,13), (13,16)}

主路径覆盖:{(1,2,3,4,5,6,7),(1,2,3,4,5,6,8,9,10,11),(1,2,3,4,5,6,8,9,11),(1,2,3,4,5,9,10,11),(1,2,3,4,5,9,11),(1,2,12,13,14,15),(1,2,12,16),(3,4,5,6,8,9,10,11,2,12,13,14,15),

(3,4,5,6,8,9,11,2,12,13,14,15),(3,4,5,6,8,9,10,11,2,12,13,16),(3,4,5,6,8,9,11,2,12,13,16),(3,4,5,9,10,11,2,12,13,14,15),(3,4,5,9,11,2,12,13,14,15),(3,4,5,9,10,11,2,12,13,16),

(3,4,5,9,11,2,12,13,16),(6,7,5,9,10,11,2,12,13,14,15),(6,7,5,9,11,2,12,13,14,15),(6,7,5,9,10,11,2,12,13,16),(6,7,5,9,11,2,12,13,16),(14,15,13,16),(13,14,15,13),(5,6,7,5),

(2,3,4,5,6,8,9,10,11,2),(2,3,4,5,6,8,9,11,2),(2,3,4,5,9,10,11,2),(2,3,4,5,9,11,2)}

设计主路径覆盖的测试用例

以上次实验的判断三角形为例

1 package cn.tju.st;2 public classCalculate {3 public String triangle (int a, int b,intc)4 {5 String str;6 int d=a-b;7 int e=b-c;8 int f=a-c;9 if( d*e*f==0){10 str="等腰";11 if( (a==b) && (b==c) )12 str="等边";13 }14 else

15 str="其他";16 returnstr;17

18 }19 }

package cn.tju.st;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

importstatic org.junit.Assert.*;

import java.util.Arrays;

import java.util.Collection;

import org.junit.runner.RunWith;

import org.junit.runners.Parameterized;

import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)public classCalculateTest {privateString type;private inta;private intb;private intc;public CalculateTest(String type, int a, int b, intc){this.type =type;this.a =a;this.b =b;this.c =c;

}

@Beforepublic voidsetUp() throws Exception {//System.out.println("This is before test");

}

@Afterpublic voidtearDown() throws Exception {

System.out.println("This is after test");

}

@Parameterspublic staticCollection prepareData(){

Object[][]object ={

{"等边",1,1,1},

{"等腰",2,2,3},

{"等腰",2,3,3},

{"其他",2,3,4}};return Arrays.asList(object);

}

@Testpublic voidTestTypeOfTriangle()

{

Calculate calc= newCalculate ();

assertEquals (type, calc.triangle(a,b,c));

}

}

测试结果如下,已完成主路径覆盖

5256e50cd9fc49429da632581108c3bc.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值