當測試開放API時,測試專家約Johanna Rothman建議要測試API的功能性、端點安全性,尤其是連接的正確性。
為什么要測試新開發(fā)的或者成熟的開放API?這個問題的答案和測試應用軟件的原因是相同的:確保連接和流程能正常工作。測試和驗證某個API可以成功連接,并能夠提供可靠的安全性和預期的功能,這點對于軟件開發(fā)公司的聲譽很重要。
API測試不是一個簡單的任務,涉及的人員要比單元測試多得多。為了保護和提高公司應用的聲譽,必須要對API做全面測試。在規(guī)劃和開發(fā)針對開放API測試時,務必要驗證系統(tǒng)間的連接性。通常情況下,驗證連接性都很棘手,要找到能夠滿足業(yè)務需求的方法。連接性測試是API測試的基本前提,同時也有其他很多方面需要考慮。
清楚測試內容
測試團隊需要決定具體哪些方面需要測試。和其他測試一樣,風險、優(yōu)先級和可訪問性都會影響要在API上執(zhí)行的測試類型。最起碼,需要測試端點的功能性,是否能夠正確地接受或者轉發(fā)信息。如果有條件,也需要測試端點安全性和業(yè)務邏輯的功能性。有些測試人員不喜歡測試端點安全性,但是可以和開發(fā)人員一起確保令牌和證書無法輕易被繞開。
業(yè)務邏輯功能性的測試非常關鍵。即使API端點是安全的,并且已經(jīng)成功建立鏈接,確認API能夠按照設計工作,仍然非常重要。API功能性測試包括模擬客戶行為使用所有可供選擇的功能。測試團隊必須決定他們是否需要創(chuàng)建一個虛擬的用戶實例,或者是否更適合試點測試,或是和真實客戶一起完成測試。測試深度取決于業(yè)務需求以及可用于測試和開發(fā)的時間。
創(chuàng)建API測試數(shù)據(jù)
應用所服務的領域決定了需要多少時間和技能來創(chuàng)建測試數(shù)據(jù)。比如,在醫(yī)療軟件領域,不違反HIPAA病例信息披露原則很重要;否則,不僅可能面臨巨額的政府罰款,而且任何形式的數(shù)據(jù)泄露都不可避免地損傷企業(yè)的公眾形象。但是不管API所服務的是什么領域,都需要花費時間為API測試創(chuàng)建簡潔或者廣義的數(shù)據(jù)。
簡潔數(shù)據(jù)是有效的真實數(shù)據(jù),但是不可識別或者跟蹤到真實的某個人。一組數(shù)據(jù)也可以手動轉化成一系列數(shù)據(jù),用于開發(fā)人物角色,用于五個不同的客戶場景。比如,針對藥物記錄的數(shù)據(jù)轉換API,一個人物角色可能是主動去看初級醫(yī)生,和肺、心臟病和風濕病專家的病人。要創(chuàng)建這個人物角色需要個人數(shù)據(jù)、醫(yī)療記錄信息,以及每個醫(yī)生的地址,電話號碼和病人到訪信息。根據(jù)就診場景的需要,測試人員使用滿足需求的最小數(shù)據(jù)集填充數(shù)據(jù)庫??梢允褂眠@些數(shù)據(jù)測試API,驗證返回的數(shù)據(jù)是否正確。
測試端點安全性
測試API時,測試API端點的安全性至關重要。測試確保端點只會回復有效鏈接的請求。測試消息安全性也很重要。很多API使用JWT令牌和證書來保證收到的消息來自于授權的發(fā)送方。嘗試使用無效令牌發(fā)送未經(jīng)授權的消息,或者確保能夠使用有效令牌。API的功能決定了是否需要使用公司外第三方的安全測試服務,或者公司內現(xiàn)有的測試人員和開發(fā)人員能否完成充分的測試。
測試API功能性
創(chuàng)建出的測試數(shù)據(jù)主要用來測試API的功能性。一種有效的方法是創(chuàng)建模擬的API系統(tǒng),模擬真實的業(yè)務伙伴來使用API。當然,創(chuàng)建模擬系統(tǒng)需要時間,取決于對API使用的理解程度,但是這仍然是一種測試API功能性的有效方式。如果沒有時間開發(fā)模擬應用來連接測試API的功能性,那么可以考慮和真實的業(yè)務伙伴合作。
和試點測試類似,和真實的業(yè)務伙伴一起測試有很多優(yōu)勢。主要的優(yōu)勢是使用的是真實的數(shù)據(jù)實例。這時花在測試和開發(fā)上的時間不像花在模擬系統(tǒng)上顯得被浪費了,因為最終創(chuàng)建了能提供價值的可以工作的業(yè)務伙伴系統(tǒng)。已經(jīng)證明數(shù)據(jù)傳輸?shù)目煽啃詫τ贏PI的成功至關重要,沒有試點系統(tǒng)也很難對此進行測試。試點測試同樣也使用真實的客戶系統(tǒng)來完整測試商業(yè)邏輯。
保護已有客戶并維持客戶信任對于業(yè)務增長而言至關重要,因此花費時間和精力來測試開放API是很值得的??蛻艨赡苁莻€人用戶和大型或小型公司,得到客戶的信任和尊重會直接帶來商業(yè)上的成功。開放API的測試也提供了初級的安全測試和業(yè)務邏輯認證。軟件公司都必須在此領域深度測試來確保API的質量。