一、sdk是什么
SDK,全稱:software development kit。客戶端SDK是為第三方開發者提供的軟件開發工具包,包括SDK接口、接入文檔、以及demo等。
可以在任何第三方應用中集成,使用方便。
二、開發需要提供給測試人員什么
1.提供如下內容:
1). SDK包
2). 相關文檔,如:使用文檔,接口說明
3). 示例程序(demo)
2.一般來說,SDK包分為兩種類型:
1). *.jar:不帶UI界面的SDK,只包含class文件和清單文件,不包含資源文件。如圖片等所有res中的文件。
2). *.aar:帶UI界面的SDK,包含所有資源,class以及res資源文件全部包含,比如一些用於APP開發者方便開發分享界面的組件,會提供一些默認的UI界面(一般也會提供讓用戶自定義UI的功能)。
三、sdk測什么
1、客戶端SDK測試的對象
客戶端SDK測試,就是對提供給開發者工具包里面的內容進行測試,因此測試的主要內容有:
1) SDK接口和文檔
SDK接口是測試的主要對象,也是核心的內容。
2)SDK日志打印
對開發者來說,SDK接口里面的具體實現是透明的,當上層調用時遇到問題,可以依賴SDK打印的日志來定位分析。所以SDK日志是否完備,有助於問題的順利解決,對應用開發者、測試人員、SDK提供方來說都很重要。
3) 程序示例:demo
demo是SDK提供方用來展示如何調用接口實現具體的功能,也可以作為開發者直觀感受SDK接入的效果。
2、客戶端SDK接口測試的類型
客戶端SDK根據需求和開發平台不同,可能需要選擇不同的測試類型對SDK接口進行測試,常見的測試類型有:
1) 功能測試
需要保證SDK接口功能的正確性和完整性。客戶端SDK接口測試和服務端接口測試類似,包括路徑覆蓋、場景覆蓋、以及接口參數(入參/出參)覆蓋。主要測試各種參數組合下的返回響應值,考慮數據是否緩存(一鍵登錄的雙卡雙待手機出現過)與存儲,是否有回調(電信一鍵登錄出現的一個bug就是:網絡請求中的系統方法沒有給出回調導致的),對於請求成功或失敗是否都能按預期進行處理。具體測試用例可根據需求設計,例如初始化接口
2) 兼容性測試
3) 性能測試
保證SDK接口滿足特定的性能需要,比如CPU占用、內存使用率、移動設備耗電量等。例如客戶端登錄的場景,登錄時后台可能收到大量同步數據包的請求,那么對這些數據包的解析驗證以及本地儲存的性能就要進行保證,否則可能出現登錄響應很慢甚至卡住的問題,所以測試時就需要考慮這個場景的性能。
4) 穩定性測試
確保業務場景在一定壓力下,持續運行一定時間,接口功能和設備資源占用有無異常。可用monkey來進行測試。
5) 單元測試
單元測試,是為了測試某一個類的某一個方法是否能正常工作,而寫的測試代碼。以我們登錄模塊為例,使用的單測框架有:Mockito、powermock等。使用jacoco進行代碼覆蓋率統計。
6) 有關網絡的測試(例如網絡切換、sim卡)
保證在不同網絡類型,不同網絡環境下,SDK接口都能較好的處理。sim卡的切換,sim卡欠費,sim卡損壞等。
7) 接口測試
接口要驗證輸入參數各種輸入情況是否能正確處理,返回響應值的正確性。見上面功能測試。
8) 安全性測試
有的sdk還需要進行安全性測試,對隱私數據的保護,訪問權限的控制,SDK接口的安全性問題也是如此。