千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)
一.什么是SDK
SDK,全稱:software development kit, 軟件開(kāi)發(fā)工具包。
軟件開(kāi)發(fā)工具包一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件時(shí)的開(kāi)發(fā)工具的集合。
軟件開(kāi)發(fā)工具廣義上指輔助開(kāi)發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。
軟件開(kāi)發(fā)工具包是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等創(chuàng)建應(yīng)用軟件的開(kāi)發(fā)工具的集合,一般而言SDK即開(kāi)發(fā)Windows平臺(tái)下的應(yīng)用程序所使用的SDK。它可以簡(jiǎn)單的為某個(gè)程序設(shè)計(jì)語(yǔ)言提供應(yīng)用程序接口API的一些文件,但也可能包括能與某種嵌入式系統(tǒng)通訊的復(fù)雜的硬件。一般的工具包括用于調(diào)試和其他用途的實(shí)用工具。SDK還經(jīng)常包括示例代碼、支持性的技術(shù)注解或者其他的為基本參考資料澄清疑點(diǎn)的支持文檔。
客戶端SDK是為第三方開(kāi)發(fā)者提供的軟件開(kāi)發(fā)工具包,包括SDK接口、接入文檔、以及demo等。
可以在任何第三方應(yīng)用中集成,使用方便。
二:SDK和API的區(qū)別
sdk和api的區(qū)別有以下幾點(diǎn):
1、組成不同:
sdk軟件開(kāi)發(fā)工具包括廣義上指輔助開(kāi)發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。API(應(yīng)用程序接口)是一些預(yù)先定義的函數(shù),或指軟件系統(tǒng)不同組成部分銜接的約定。
2、用途不同:
api目的是提供應(yīng)用程序與開(kāi)發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。軟件開(kāi)發(fā)工具包一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件時(shí)的開(kāi)發(fā)工具。
3、內(nèi)容不同:
為了使用API函數(shù),就要有跟API所對(duì)應(yīng)的 .h和 .lib文件,而SDK正是提供了一整套開(kāi)發(fā)Windows應(yīng)用程序所需的相關(guān)文件、范例和工具的“工具包”。SDK包含了使用API的必需資料,所以也常把僅使用API來(lái)編寫(xiě)Windows應(yīng)用程序的開(kāi)發(fā)方式叫作“SDK編程”。
三、SDK要測(cè)什么
1、客戶端SDK測(cè)試的對(duì)象
客戶端SDK測(cè)試,就是對(duì)提供給開(kāi)發(fā)者工具包里面的內(nèi)容進(jìn)行測(cè)試,因此測(cè)試的主要內(nèi)容有:
1) SDK接口和文檔
SDK接口是測(cè)試的主要對(duì)象,也是核心的內(nèi)容。
2)SDK日志打印
對(duì)開(kāi)發(fā)者來(lái)說(shuō),SDK接口里面的具體實(shí)現(xiàn)是透明的,當(dāng)上層調(diào)用時(shí)遇到問(wèn)題,可以依賴SDK打印的日志來(lái)定位分析。所以SDK日志是否完備,有助于問(wèn)題的順利解決,對(duì)應(yīng)用開(kāi)發(fā)者、測(cè)試人員、SDK提供方來(lái)說(shuō)都很重要。
3) 程序示例:demo
demo是SDK提供方用來(lái)展示如何調(diào)用接口實(shí)現(xiàn)具體的功能,也可以作為開(kāi)發(fā)者直觀感受SDK接入的效果
四、SDK測(cè)試類型
根據(jù)需求和開(kāi)發(fā)平臺(tái)不同,會(huì)有以下常見(jiàn)的測(cè)試類型:
功能的測(cè)試
主要是場(chǎng)景覆蓋和接口參數(shù)覆蓋。主要測(cè)試各種參數(shù)下組合下的返回值。
考慮數(shù)據(jù)緩存和存儲(chǔ)
考慮是否有回調(diào)
考慮對(duì)請(qǐng)求成功、或失敗的處理結(jié)果與預(yù)期一致
兼容性的測(cè)試
根據(jù)產(chǎn)品需求是市場(chǎng)排行,確保兼容選取的設(shè)備機(jī)型、版本、分辨率等,并兼容其他軟件
考慮模擬器的支持
覆蓋多平臺(tái)的,還要考慮多端消息數(shù)據(jù)包互通
性能方面的測(cè)試
滿足特定的性能指標(biāo)(CPU、內(nèi)存、耗電量、流量等)
特定場(chǎng)景性能:比如登錄需要同步大量的數(shù)據(jù)包和離線消息,需要考慮對(duì)這些數(shù)據(jù)包的解析和本地儲(chǔ)存的性能
穩(wěn)定性方面的測(cè)試
業(yè)務(wù)場(chǎng)景在一定壓力下,持續(xù)運(yùn)行一段時(shí)間,接口功能和設(shè)備資源占有無(wú)異常。
弱網(wǎng)環(huán)境測(cè)試
對(duì)弱網(wǎng),及其他不同類型網(wǎng)絡(luò)和不同網(wǎng)絡(luò)環(huán)境,SDK接口均應(yīng)有較好的處理
對(duì)比依據(jù)是新老版本、競(jìng)品效果
安全性方面的測(cè)試
隱私數(shù)據(jù)的保護(hù)、訪問(wèn)權(quán)限控制、用戶服務(wù)鑒權(quán)等
五:如何測(cè)試
1、了解業(yè)務(wù)流程,確定開(kāi)放給開(kāi)發(fā)者都有哪些接口
2、了解SDK用到的所有協(xié)議,每個(gè)協(xié)議中字段的意義和作用以及server端處理邏輯
3、接口要校驗(yàn)輸入?yún)?shù)各種輸入情況是否能正確處理,返回值的正確性,是否有數(shù)據(jù)緩存到本地,檢查是否有回調(diào),如果有對(duì)于請(qǐng)求成功、請(qǐng)求失敗(包括無(wú)網(wǎng)絡(luò)、服務(wù)器返回非200錯(cuò)誤代碼)是否都有調(diào)用
4、測(cè)試中對(duì)每個(gè)請(qǐng)求都應(yīng)該抓包測(cè)試,查看請(qǐng)求的字段、參數(shù)值、返回值是否正確
5、對(duì)于協(xié)議中必傳字段,SDK中是否校驗(yàn)為空的情況
6、查看是否存在多發(fā)、少發(fā)請(qǐng)求的情況
7、對(duì)于異步請(qǐng)求的結(jié)果在其他地方(A類中)會(huì)用到的情況,檢查是否存在網(wǎng)絡(luò)較慢情況下,未完成請(qǐng)求數(shù)據(jù)為空時(shí)A類就用到數(shù)據(jù)
相關(guān)推薦