SDK測試

SDK是什么

客戶端SDK是為第三方開發(fā)者提供的軟件開發(fā)工具包,包括SDK接口、開發(fā)文檔和Demo示例等。SDK和應(yīng)用之間是什么關(guān)系呢?應(yīng)用客戶端通過調(diào)用SDK接口,進(jìn)行消息等數(shù)據(jù)查詢存儲等操作,或通過協(xié)議與SDK服務(wù)器間進(jìn)行通信。

SDK測什么

客戶端SDK測試的對象

客戶端SDK測試,就是對提供給開發(fā)者的工具包里面的內(nèi)容進(jìn)行測試,因此測試的主要內(nèi)容有:

SDK接口和文檔

SDK接口是測試的主要對象,也是核心的內(nèi)容。

SDK日志對開發(fā)者來說,SDK接口里面的具體實現(xiàn)是透明的,當(dāng)上層調(diào)用時遇到問題,只能依賴SDK打印的日志來定位分析。所以SDK日志是否完備,是否有助于解決問題,對應(yīng)用開發(fā)者和SDK提供方來說都很重要。

Demo或行業(yè)解決方案

Demo是SDK提供方用來示例如何調(diào)用接口實現(xiàn)具體的功能,也可以作為開發(fā)者直觀感受SDK接入效果。行業(yè)解決方案類似Demo,但是,比Demo更加像一個產(chǎn)品,具有比較完整和典型的行業(yè)應(yīng)用場景。可以讓行業(yè)開發(fā)者比較明確知道,接入這個SDK做出來的產(chǎn)品效果如何。

其他周邊比如UIkit等,可能只是在SDK開發(fā)中的附帶輸出,但對有的開發(fā)者來說能極大降低接入成本。

功能怎么測

上述諸多測試類型中,功能測試先行。在進(jìn)行客戶端SDK測試前,需要全面的了解測試對象的細(xì)節(jié):

????了解業(yè)務(wù)流程,結(jié)合API接口文檔和開發(fā)指南,理順接口的使用場景和調(diào)用關(guān)系;

????了解SDK協(xié)議,理解協(xié)議中字段的意義以及服務(wù)器端的處理邏輯;

????了解各接口或協(xié)議返回碼,分析對應(yīng)的場景;

????了解開發(fā)實現(xiàn)細(xì)節(jié),可以繪制成圖,便于測試分析和分層驗證。

對客戶端SDK進(jìn)行測試,可以采用的分層測試方式由上至下依次有:基于Demo和解決方案->基于接口調(diào)用->基于代碼。

基于Demo和解決方案的測試

大多客戶端SDK在提測時,都會有對應(yīng)的Demo或者解決方案提交給測試,因此可以覆蓋到該Demo或解決方案對應(yīng)的接口或業(yè)務(wù)場景。而且測試人員可以比較直觀的看到界面表現(xiàn),上手快,所以在客戶端SDK測試中比較常用,也是比較有效的。但這種測試方式的缺點也很多,Demo對接口和業(yè)務(wù)場景覆蓋比較有限,對接口的輸入輸出參數(shù)不能全覆蓋,發(fā)現(xiàn)問題時定位復(fù)雜度增加。精心設(shè)計的Demo以及多解決方案的形式或許可以最大程度滿足測試需要,但是需要較大的Demo開發(fā)測試投入,也使得問題暴露的時間大大滯后?;贒emo和解決方案的測試,可以是手工的也可以是UI層自動化測試。

客戶端SDK接口測試類型

客戶端SDK根據(jù)需求和開發(fā)平臺不同,可能需要選擇不同的測試類型對SDK接口進(jìn)行測試,常見的測試類型有:

功能測試保證SDK接口功能正確性和完備性。客戶端SDK接口測試跟服務(wù)端接口測試類似,包括場景覆蓋和接口參數(shù)覆蓋。主要測試各種參數(shù)組合下的返回值,考慮數(shù)據(jù)是否緩存與存儲,是否有回調(diào),對于請求成功或失敗都能按預(yù)期進(jìn)行處理。

性能測試保證SDK接口滿足特定的性能需求,比如資源占用、移動設(shè)備耗電量等。在云信IM登錄的場景,登錄時可能收到大量同步數(shù)據(jù)包和離線消息包,那么對這些數(shù)據(jù)包的解析以及本地儲存的性能就要進(jìn)行保證,否則可能出現(xiàn)登錄響應(yīng)很慢甚至卡住的問題,所以測試時就需要考慮這個場景的性能。

兼容性測試保證SDK兼容特定的設(shè)備平臺,并與其他軟件兼容。兼容設(shè)備平臺的工作量通常是比較大的,先根據(jù)產(chǎn)品需求和市場現(xiàn)狀對需要適配的設(shè)備平臺做分析,再根據(jù)需要覆蓋的機型、系統(tǒng)版本、分辨率等進(jìn)行優(yōu)先覆蓋排序。移動端SDK兼容性測試需要考慮下對模擬器的支持,因為很多開發(fā)者可能就是先在模擬器上開發(fā)??蛻舳薙DK覆蓋多平臺設(shè)備的,還要考慮多端消息數(shù)據(jù)包的互通。

穩(wěn)定性測試考察業(yè)務(wù)場景在一定壓力下,持續(xù)運行一段時間,接口功能和設(shè)備資源占用有無異常。比如云信實時音視頻通話場景中,要保證多人長時間通話且不斷有人進(jìn)出時的接口功能和設(shè)備資源占用無異常。

網(wǎng)絡(luò)相關(guān)測試保證在不同網(wǎng)絡(luò)類型,不同網(wǎng)絡(luò)環(huán)境下,SDK接口都能較好的處理。在涉及到多媒體資源或音視頻通信,弱網(wǎng)下測試的需求較多,并且弱網(wǎng)下的處理通常需要反復(fù)優(yōu)化和對比,不僅是新老版本效果對比,還包括競品的效果對比測試。

安全性測試 對隱私數(shù)據(jù)保護,訪問權(quán)限的控制,用戶服務(wù)鑒權(quán)等,SDK接口的安全性問題也是比較突出。安全性很多是在架構(gòu)設(shè)計和開發(fā)設(shè)計中就考慮進(jìn)去,但是最好還是有專門的安全性測試。

基于接口調(diào)用的自動化測試

基于接口調(diào)用的測試,包括對單個接口的測試,也包括業(yè)務(wù)場景的覆蓋。這種測試方式直接有效,需要一定開發(fā)基礎(chǔ),可以參考下KS上之前其他同學(xué)關(guān)于AOS和iOS SDK接口自動化測試實踐的經(jīng)驗總結(jié)。目前,我所在項目組的同事也有一些實踐,以云信iOS SDK測試為例,最小回歸測試對應(yīng)接口也已經(jīng)自動化,測試工程基本結(jié)構(gòu)如下:


基于接口調(diào)用的自動化測試,需要有有產(chǎn)品的思路、開發(fā)的知識和測試的思維,做起來有難度。但是因為SDK接口通常比較穩(wěn)定,所以一旦實現(xiàn)并投入使用,測試效率和質(zhì)量的收益都很大,值得擁有。

基于代碼的單元測試

單元測試是為開發(fā)代碼質(zhì)量保駕護航的一個重要環(huán)節(jié),在測試左移推進(jìn)的道路上,大家越來越意識到單元測試的重要價值。特別是在一些核心業(yè)務(wù)上,值得開發(fā)同學(xué)投入精力去做。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1、了解業(yè)務(wù)流程,確定開放給開發(fā)者都有哪些接口 列出所有安卓和ios 的調(diào)用接口 1.2、了解SDK用到的所有...
    adonisjph閱讀 4,631評論 0 2
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,288評論 0 15
  • 20世紀(jì)80、90年代,是粵語歌的輝煌時期。那些年,流行歌曲百花齊放,不僅在粵語地區(qū)風(fēng)行一時,在中國大陸和臺灣地區(qū)...
    林慕言閱讀 321評論 0 0
  • 電影市場的繁榮發(fā)展,引來很多藝人紛紛跨界,之前的歌手劉若英拍攝了第一部作品《后來的我們》,并且反響還不錯,最終票房...
    小鵬話電影閱讀 439評論 0 0
  • 昨天學(xué)習(xí)了口腔特殊檢查的咬合關(guān)系檢查,咬合關(guān)系檢查分磨牙咬合關(guān)系檢查和前牙咬合關(guān)系檢查。今天我們繼續(xù)往下學(xué)習(xí)。學(xué)習(xí)...
    牙醫(yī)孫杰閱讀 169評論 0 0

友情鏈接更多精彩內(nèi)容