SDK測試思路

概述

軟件開發(fā)套件(SDK)是通常由硬件平臺、操作系統(tǒng)(OS)或編程語言的制造商提供的一套工具游昼。

經(jīng)常使用的場景:


為什么使用SDK?

SDK可協(xié)助軟件開發(fā)人員面向特定的平臺遗座、系統(tǒng)或編程語言創(chuàng)建應(yīng)用豆瘫。它就像是一個(gè)工具包,讓您可以自行的組裝寺董,知識對象是應(yīng)用開發(fā)而已覆糟。您所需的構(gòu)建塊和工具,根據(jù)制造商而異遮咖。SDK被開發(fā)出來是為了減少程序員工作量

一個(gè)基本的SDK通常由編譯器搪桂、調(diào)試器和應(yīng)用編程接口(API)組成,包含一下內(nèi)容:

文檔、庫踢械、編輯器酗电、運(yùn)行的開發(fā)環(huán)境、測試分析工具内列、驅(qū)動程序撵术、網(wǎng)絡(luò)協(xié)議

客戶端SDK測試的對象

SDK接口和文檔

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

SDK日志

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

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

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

客戶端SDK接口測試類型

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

常見的測試類型有:

1委刘、功能測試

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

2、性能測試

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

3撼嗓、兼容性測試

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

4醇王、穩(wěn)定性測試

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

5、網(wǎng)絡(luò)相關(guān)測試

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

6、安全性測試

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

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

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

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

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

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

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

1辛润、基于Demo和解決方案的測試

大多客戶端SDK在提測時(shí),都會有對應(yīng)的Demo或者解決方案提交給測試见秤,因此可以覆蓋到該Demo或解決方案對應(yīng)的接口或業(yè)務(wù)場景砂竖。而且測試人員可以比較直觀的看到界面表現(xiàn),上手快鹃答,所以在客戶端SDK測試中比較常用乎澄,也是比較有效的。

但這種測試方式的缺點(diǎn)也很多测摔,Demo對接口和業(yè)務(wù)場景覆蓋比較有限置济,對接口的輸入輸出參數(shù)不能全覆蓋,發(fā)現(xiàn)問題時(shí)定位復(fù)雜度增加锋八。精心設(shè)計(jì)的Demo以及多解決方案的形式或許可以最大程度滿足測試需要浙于,但是需要較大的Demo開發(fā)測試投入,也使得問題暴露的時(shí)間大大滯后挟纱⌒咝铮基于Demo和解決方案的測試,可以是手工的也可以是UI層自動化測試紊服。

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

基于接口調(diào)用的測試,包括對單個(gè)接口的測試欺嗤,也包括業(yè)務(wù)場景的覆蓋参萄。這種測試方式直接有效,需要一定開發(fā)基礎(chǔ)

目前煎饼,我所在項(xiàng)目組的同事也有一些實(shí)踐讹挎,以云信iOS SDK測試為例,最小回歸測試對應(yīng)接口也已經(jīng)自動化吆玖,測試工程基本結(jié)構(gòu)如下:

基于接口調(diào)用的自動化測試筒溃,需要有產(chǎn)品的思路、開發(fā)的知識和測試的思維衰伯,做起來有難度铡羡。但是因?yàn)镾DK接口通常比較穩(wěn)定,所以一旦實(shí)現(xiàn)并投入使用意鲸,測試效率和質(zhì)量的收益都很大烦周,值得擁有尽爆。

3、基于代碼的單元測試

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

其他測試類型的展開,跟應(yīng)用層測試類似株灸,就不再重復(fù)了崇摄。

本文來源:公眾號“測試開發(fā)技術(shù)”、“Red Hat”

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慌烧,一起剝皮案震驚了整個(gè)濱河市逐抑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屹蚊,老刑警劉巖厕氨,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汹粤,居然都是意外死亡命斧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門嘱兼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來国葬,“玉大人,你說我怎么就攤上這事遭京∥赶В” “怎么了泞莉?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵哪雕,是天一觀的道長。 經(jīng)常有香客問我鲫趁,道長斯嚎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任挨厚,我火速辦了婚禮堡僻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疫剃。我一直安慰自己钉疫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布巢价。 她就那樣靜靜地躺著牲阁,像睡著了一般固阁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上城菊,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天备燃,我揣著相機(jī)與錄音,去河邊找鬼凌唬。 笑死并齐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的客税。 我是一名探鬼主播况褪,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼更耻!你這毒婦竟也來了窝剖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酥夭,失蹤者是張志新(化名)和其女友劉穎赐纱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熬北,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疙描,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讶隐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片起胰。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖巫延,靈堂內(nèi)的尸體忽然破棺而出效五,到底是詐尸還是另有隱情,我是刑警寧澤炉峰,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布畏妖,位于F島的核電站,受9級特大地震影響疼阔,放射性物質(zhì)發(fā)生泄漏戒劫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧癞己,春花似錦、人聲如沸茵典。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽统阿。三九已至枚尼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砂吞,已是汗流浹背署恍。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜻直,地道東北人盯质。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像概而,于是被迫代替她去往敵國和親呼巷。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容