軟體測試學習(4)

來源:互聯網
上載者:User

標籤:

    public static void printPrimes (int n)     {         int curPrime; // Value currently considered for primeness         int numPrimes; // Number of primes found so far.         boolean isPrime; // Is curPrime prime?         int [] primes = new int [MAXPRIMES]; // The list of prime numbers.                 // Initialize 2 into the list of primes.         primes [0] = 2;         numPrimes = 1;         curPrime = 2;         while (numPrimes < n)         {             curPrime++; // next number to consider ...             isPrime = true;             for (int i = 0; i <= numPrimes-1; i++)             { // for each previous prime.                 if (curPrime%primes[i]==0)                 { // Found a divisor, curPrime is not prime.                     isPrime = false;                     break; // out of loop through primes.                 }             }             if (isPrime)             { // save it!                 primes[numPrimes] = curPrime;                 numPrimes++;             }         } // End while                 // Print all the primes out.         for (int i = 0; i <= numPrimes-1; i++)         {             System.out.println ("Prime: " + primes[i]);         }     } // end printPrimes

a)畫出資料流圖。

b)測試案例t1=(n=3)和t2=(n=5),設計一個t2能發現但是t1不能發現的錯誤。

  數組越界問題。

c)找到一個不經過while迴圈的測試案例。

  n=1;

d)找出點覆蓋、邊覆蓋和主路徑覆蓋的所有測試需求。

  點覆蓋:{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

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

  主路徑覆蓋:

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

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

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

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

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

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

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

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

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

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

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

(13,14,15,13),

(14,15,13,14),(14,15,13,16),

(15,13,14,15)}

 

Junit進行主路徑覆蓋測試

public class Statistics {        /**     *      * @param numbers     * @return the length of the array     */    public int calLength(int[] numbers) {        int length = numbers.length;                return length;    }    /**     *      * @param numbers     * @return the mean value of the array     */        public double calMean(int[] numbers) {        int length = calLength(numbers);                double sum;        sum = 0.0;        for (int i = 0; i < length; i++) {            sum += numbers[i];        }        double mean = sum / (double) length;                return mean;    }    /**     *      * @param numbers     * @return the var value of the array     */    public double calVar(int[] numbers) {        int length = calLength(numbers);        double mean = calMean(numbers);                double varsum = 0.0;        for (int i = 0; i < length; i++) {            varsum = varsum + ((numbers[i] - mean) * (numbers[i] - mean));        }        double var = varsum / (length - 1.0);                return var;    }}
import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class StatisticsTest {    private Statistics statistics;        @Before    public void setUp() throws Exception {        statistics = new Statistics();    }    @Test    public void test() {        //fail("Not yet implemented");        int a[] = {1,1,1,1,1,1} ;        assertEquals(0.0,statistics.calVar(a),0.0001);    }}

 

軟體測試學習(4)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.