亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Android下如何使用JUnit進行軟件測試
作者:網絡轉載 發布時間:[ 2016/4/8 11:12:17 ] 推薦標簽:單元測試 Android

  軟件測試作為程序員必備的一項技能是決定軟件開發周期長短以及軟件運行成敗的關鍵,可以說好的軟件不是代碼寫得好而是有效的測試決定的。本文將介紹在android下利用eclipse進行開發時如何使用JUnit進行單元測試。
  一、測試的分類(僅舉例其中一些方法)
  【根據測試是否知道代碼】
  1、黑盒測試(測試的時候不知道具體代碼):指的是把被測的軟件看作是一個黑盒子,我們不去關心盒子里面的結構是什么樣子的,只關心軟件的輸入數據和輸出結果。它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。
  2、白盒測試(測試的時候需要了解具體的代碼):指的是把盒子蓋子打開,去研究里面的源代碼和程序結果。是按照程序內部的結構測試程序,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作。
  3、灰盒測試(灰盒測試介于黑盒測試與白盒測試之間):可以這樣理解,灰盒測試關注輸出對于輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表征性的現象、事件、標志來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。
  【根據測試的粒度】
  1、方法測試(function test):驗證模塊的功能。
  2、單元測試(unit test):在低的功能/參數上驗證程序的準確性,比如測試一個函數的正確性。
  3、集成測試(intergration test):驗證幾個互相有依賴關系的模塊的功能。
  【根據測試的次數】
  1、冒煙測試(smoke test):指的是測試人員在同一時間對軟件進行大量的點擊或者功能測試,測試軟件遭到這樣的壓力時是否能夠扛得住,關鍵在于同一個用戶在極短的時間內對軟件進行大量重復的測試。
  2、壓力測試(pressure test):指的是軟件或者網站在同一時間內被大量的用戶訪問,突出的是軟件或者網站被大量客戶訪問時的抗壓能力,一般運用于大型網站的測試。
  二、舉例對其中的JUnit測試進行講解
  這里我們想要對安卓應用程序中AppService類中的randomArray()方法進行單元測試。
  注:試直接使用java的JUnit是無效的,應為java應用程序時在java虛擬機(JVM)運行的,而安卓程序則是在終端的Dalvik虛擬機運行的,所以直接對其進行JUnit測試會報錯,故我們可以使用以下方法進行測試。
  1、創建一個包,并在包下新建一個測試類(TestService)用來測試該方法,具體代碼如下:
  AppService 的randomArray方法:
1 package com.app.wolf;
2
3 public class AppService {
4 /**
5      * 隨機指定范圍內N個不重復的數 在初始化的無重復待選數組中隨機產生一個數放入結果中,
6      * 將待選數組被隨機到的數,用待選數組(len-1)下標對應的數替換 然后從len-2里隨機產生下一個隨機數,如此類推
7      *
8      * @param max
9      *            指定范圍大值
10      * @param min
11      *            指定范圍小值
12      * @param n
13      *            隨機數個數
14      * @return int[] 隨機數結果集
15      */
16     public static int[] randomArray(int min, int max, int n) {
17         int len = max - min + 1;
18
19         if (max < min || n > len) {
20             return null;
21         }
22
23         // 初始化給定范圍的待選數組
24         int[] source = new int[len];
25         for (int i = min; i < min + len; i++) {
26             source[i - min] = i;
27         }
28
29         int[] result = new int[n];
30         Random rd = new Random();
31         int index = 0;
32         //這個算法666,我理解的步驟應該是這樣的
33         //1、首先初始化一個數組source,這個數組的長度是用戶選擇要開始游戲的人數,接著將數組中的元素分別是0~數組長度-1;
34         //2、接著借用一個一個隨機變量index,這個變量產生的隨機數范圍是0~數組長度-1;
35         //3、后將每一個index對應的source的內容對應到后返回的result數組中;
36         //厲害的地方是首先用index索引取得source數組中的內容,此時數組的長度減1,接著用數組的后一個元素來代替之,
37         //這樣不會出現數組中元素被重復使用的情況了。
38         for (int i = 0; i < result.length; i++) {
39             // 待選數組0到(len-2)隨機一個下標
40             index = Math.abs(rd.nextInt() % len--);
41             // 將隨機到的數放入結果集
42             result[i] = source[index];
43             // 將待選數組中被隨機到的數,用待選數組(len-1)下標對應的數替換
44             source[index] = source[len];
45         }
46         for(int i:result){
47             System.out.print(i+" ");
48         }
49         return result;
50     }
51
52 }

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日产精品一二三四区国产 | 国产精品亚洲片在线观看不卡 | 欧美日本一区二区三区道 | 日批免费观看 | 国产精品国产三级国产an不卡 | 欧美顶级xxxxbbbb | 动漫精品欧美一区二区三区 | 精品日韩一区二区三区 | 天天槽夜夜槽槽不停 | 伊人365影院| 国产国语高清在线视频二区 | 一级特黄aaa大片在线观看 | 免费丝袜足控网站 | 午夜韩国理论片在线播放 | 欧美视频免费在线 | 香蕉视频黄网站 | 在线观看a网站 | 玖玖香蕉视频 | 做a的视频免费 | 日韩精品一区二区三区 在线观看 | 国产精品麻豆高清在线观看 | 91久久精品国产91性色tv | 亚洲免费视频网址 | 中文国产欧美在线观看 | 欧美精品束缚一区二区三区 | 国产综合日韩伦理 | 在线欧美a | 日韩精品一区二三区中文 | 国产在线视频你懂的 | 国产又湿又黄又硬又刺激 | 亚洲天天看 | 国产成人网 | 一级爱视频 | 精品视频午夜一区二区 | 人人看人人爽 | 天天碰天天摸天天操 | 国产精品亚欧美一区二区三区 | 8x福利精品第一福利视频导航 | 精品国产91久久久久 | 免费动漫无遮挡曰批视频软件 | 国产精品成人久久久久 |