qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Android代碼覆蓋的黑盒測試

           目前還是有很多人在做android的黑盒或者灰盒測試,就我兩年的經驗實在捉襟見肘,不過還是想share一些東西出來給大家,共勉共勉。測試,功能測試很少人知道怎么才算是測試覆蓋面全了呢?全功能覆蓋?非也,代碼全覆蓋?非也。測試本身是無盡的,平時做的話還是自己要把握住優先級。所謂的全覆蓋只是在理想世界存在的東西。這里要說的是某些公司或者leader真的需要黑盒測試給出代碼覆蓋率的話,也是有辦法的。如下。

            1、首先前提是你需要有被測產品的源碼。(我表示這個必須)

            需要環境android SDK,ant1.8.2,jdk1.6,eclipse android環境  Android SDK安裝完畢

            設置系統變量Path:sdk tools路徑

            Ant1.8.2安裝完畢之后設置系統變量  Ant:ant下面bin文件夾的路徑  Java1.6安裝好之后  JAVA_HOME: C:\Program Files\Java\……\

            2、使用eclipse check out最新的版本source出來。并且建立一個針對于軟件主版本的測試工程出來。如何在eclipse里面建立測試工程,自行google。  建立好測試工程之后,粘貼如下代碼:

          public class (函數名)extends ActivityInstrumentationTestCase2<Activity class name>
            {        private <Activity class name>  mActivity;       
                      private Instrumentation mInstrumentation;      
                構造函數 {                super("test package name", Activity class name);        }    
                protected void setUp() throws Exception {            
                 super.setUp();            
                 mInstrumentation = getInstrumentation();            
                 mActivity = this.getActivity();        }     
                 protected void tearDown() throws Exception {         
                  super.tearDown();        }     
               public void testdemo1() throws InterruptedException {          
                 Thread.sleep(30000);//程序執行的時間 單位毫秒        }}

            注:如果被測對象是service的話,android也提供了測試service的類,extends相關的類即可。之后代碼可能有少量改變,具體參照SDK Doc。

            3、接下來我們進行最主要的一步

            A)創建我們程序的build.xmlcd <main project folder>android update project --path <目錄>成功之后可以看到在主程序目錄下面生成了一個build.xml。

            B)為我們的測試程序創建build.xmlandroid update test-project -m <full path to main project> -p <path to test project>C.啟動CoverageCd <path to test project>Ant coverage如果這步成功,我們可以在測試程序下面看到一個coverage的文件夾。里面就是一個非常強大的report了。

            注:

            1)如果發現編譯的過程當中出現@override error。那么要注意jdk版本是不是1.6,另外環境變量路徑是否設置正確。

            2)如果編譯過程當中出現not found symbols,那么需要添加主程序使用的額外的lib,將lib放入被測試程序下面的libs目錄下面即可

            3)如果沒有emma.jar,那么可以升級你的sdk。或者去下載http://developer.android.com/sdk/installing.html#sdkContents。

            4)關于report代碼中會有三種顏色標識. 其中,綠色的行表示該行代碼被完整的執行,紅色部分表示該行代碼根本沒有被執行,而黃色的行表明該行代碼部分被執行。黃色的行通常出現在單行代碼包含分支的情況,例如上圖中的 16 行就顯示為黃色。

          posted on 2012-09-13 10:20 順其自然EVO 閱讀(538) 評論(0)  編輯  收藏 所屬分類: android

          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 秦皇岛市| 宁武县| 肥乡县| 凭祥市| 寻乌县| 锡林郭勒盟| 永康市| 双江| 通化市| 鹿邑县| 巴南区| 西安市| 喀喇| 山阳县| 芦山县| 铜川市| 南漳县| 平度市| 云霄县| 鄂托克旗| 芦山县| 招远市| 买车| 西平县| 繁峙县| 新疆| 石棉县| 望江县| 亚东县| 建瓯市| 营山县| 垦利县| 犍为县| 科技| 松原市| 太湖县| 广水市| 太白县| 康乐县| 吴忠市| 正安县|