將QA引入軟件開發生命周期是工程師要遵循的最佳實踐
譯文???
作者丨Lena Yakimova
譯者 | 朱鋼
策劃丨孫淑娟
【51CTO.com快譯】為了滿足業務需求,思想前衛的公司會將 QA 嵌入到 SDLC 中。這篇文章將帶您了解應在每個開發階段引入哪些 QA 活動。
幾乎無可爭辯的,速度和創新是產品高效交付的支柱,這有助于在當今市場上取得成功。憑借順利引入新技術并更快地發布實用軟件的能力,公司走上了從 COVID-19 大流行及其后果中恢復并調整到"下一個常態"的道路上。
為了自信地做到這一點并保證軟件滿足計劃的業務需求,思想前衛的公司將 QA 引入到了軟件開發生命周期(SDLC)中。
QA 是所有流程階段不可或缺的一部分,它有助于避免在關鍵缺陷修復、提高軟件可信度和安全性以及降低系統突然停機的風險方面產生不可預見的費用。除了改進功能外,QA 還會衡量在當前狀態下將功能發布到生產環境中對業務的影響,從而提高客戶忠誠度并促進整體銷售。
那么,在每個開發階段應該引入哪些 QA 活動呢?讓我們仔細閱讀本文中的答案。
SDLC 的 4 個階段中必備的最佳實踐
瀑布式、敏捷式、快速應用開發 (RAD)、螺旋模型... 根據方法和產品的特性,開發過程中不同階段略有不同。但是,無論你的公司堅持哪種方法,在每個 SDLC 階段進行測試都變得至關重要。
這是一個真實案例:幾年前,三星召回了 250 萬部 Note7 智能手機,導致損失數十億美元。這都是因為軟件缺陷——電池管理系統的瓶頸——負責監控和停止充電過程,導致過度充電和爆炸。
不幸的是,這種情況屢見不鮮。因此,為了最大限度地提高開發效率并減少因修復后期發現的缺陷而造成的財務和聲譽損失,我建議在每個基本開發階段考慮必要的 QA 活動。
???
一、需求收集
如果不了解目標受眾、應用解決的問題、性能、安全性、合規性和許多其他標準,就不可能規劃開發和測試工作。
考慮到修復缺陷的成本在每個階段都呈指數級增長,QA 工程師需執行需求測試,以減少從一開始的返工,并發現 IT 解決方案業務邏輯中的錯誤、歧義或不一致。
在測試需求時,專家確認產品的功能、UI、必要的硬件和軟件標準一致、清晰且無錯誤。這允許進一步創建無故障的測試計劃、測試用例、用例、可追溯性矩陣和其他工件。
然而,測試只是成功的一半。測試文檔的標志是其動態性質。在沒有任何更新的情況下,它逐漸變得毫無價值,這些更新是由不斷變化的需求、轉移優先級或不斷將新代碼傳送到生產環境造成的。因此,除了測試之外,QA 團隊還必須及時更新測試文檔,以消除任何流程故障。
二、分析與設計
基于上一階段的結果,開發團隊設計即將推出的應用程序的架構并創建其原型。
為確保產品取得商業上的成功,QA 團隊首先進行原型測試,以根據客戶反饋及早發現 SDLC 中的問題,并在開發開始之前引入必要的更改。通過專注于識別可能在以后導致系統故障的邏輯缺陷,工程師顯著減少了額外軟件創建過程所需的時間和財務工作。
特別關注原型的可用性測試。這只是提供引人入勝的設計的第一步,必須考慮一些限制,因為它們可能會影響現階段的測試結果。例如,構思不佳的顏色陣列可能會在屏幕上缺乏直觀的元素,從而使產品使用變得復雜。牢記它們有助于確定所需的測試并更好地掌握結果。
三、軟件開發
讓我們來看看軟件測試活動是如何有助于交付無瑕疵的產品。例如,單元測試單獨驗證可以在系統中邏輯隔離的每個應用程序組件,以確保其行為符合設計方式。
通過適當的單元測試,開發人員可以自信的實現代碼重構,使工作流程更加敏捷,并及早發現軟件的問題,確保簡化集成和調試過程,并大大降低修復缺陷的成本。
經過測試的單元現在形成了模塊,這些模塊反過來又創建了一個完整的系統。在單元測試之后,集成驗證可幫助軟件工程師確保由不同團隊編寫的這些系統組件之間彼此和諧地融合在一起。
敏捷和 DevOps 生態系統中的單元和集成測試通常可以自動化,以顯著縮短測試時間、最大化測試覆蓋率、多次重用相同的測試用例并避免人為因素。
???
當開發人員專注于執行單元和集成測試時,QA 團隊會創建測試工具以確保高的軟件質量并為發布準備功能。為了取得成功,這里有 10 種測試類型,根據產品細節和業務需求,這些類型可能會派上用場:
1、功能測試
從一開始,功能測試就確保不存在可能阻礙進一步測試的關鍵問題,并保證最近添加的功能已經完全實現,而不會影響產品的邏輯。
2、性能測試
通過服務器端性能測試,QA 工程師評估系統是否能夠承受負載,發現其弱點,并提供詳細的改進建議。這有助于降低軟件 TCO 并建立有效的性能監控。
客戶端性能 QA 會衡量 HTML 頁面的加載和呈現時間,并找出影響客戶體驗(繁重的界面、長的響應時間、較差的整體性能)并阻礙與和品牌進行愉快互動的問題。
3、網絡安全測試
基于 OWASP 方法的手動和自動漏洞評估可發現安全漏洞,并確保對用戶敏感數據的高度保護。通過將最佳安全措施盡早注入 SDLC,公司可以最大限度地降低惡意入侵者執行攻擊的風險并挽救其聲譽。
4、自動化測試
由于快速質量是敏捷方法和高效產品交付的基石,因此采用自動化測試是更快地構建、測試和交付高質量軟件的方法。
為了實現這些目標,QA 工程師定義了自動化和工具包的范圍、實施所需的框架、配置環境、準備測試數據并開發腳本,分析測試結果,同時提供對自動化測試的全面支持和監控。
5、跨瀏覽器測試
確定應用程序是否可以在不同的瀏覽器中無縫運行,這有助于提供引人入勝的用戶體驗并擴大目標受眾。為此,QA 工程師分析不同地域的瀏覽器使用情況統計信息,選擇最受歡迎的變體,并執行測試以確保軟件操作的一致性。
6、跨平臺測試
兼容軟件的操作系統越多,公司可以吸引的客戶就越多。因此 QA 供應商會執行測試以發現操作系統級性能、UI 不一致和特定于平臺的故障,并確保軟件在最低系統要求下按設計運行。
7、移動應用測試
根據 Statista 的數據,到 2023 年移動應用程序帶來的全球利潤將超過 9350 億美元。隨著全球下載量的增加,市場上的激烈競爭迫使公司更多地考慮其質量并引入 QA。為了提高結果的效率和準確性,提供商會在真實設備上進行測試。
8、無障礙測試
正如世衛組織所述,有超過 10 億人(占世界人口的 15%)患有特定的身體或認知障礙,因此設計適合所有社會群體的軟件成為首要目標。通過驗證其是否符合 WCAG 2.1 或 AODA 等國際標準,公司可以照顧目標受眾并擴大其客戶群。
9、本地化測試
在滿足特定國家 / 地區的語言、文化和區域要求方面,針對國際市場的軟件首當其沖。為了定制產品,使其被目標受眾視為符合他們需求的獨特解決方案,QA 工程師專注于:
- 當地法規(例如,遵守數據隱私法)
- 文化方面(例如,避免冒犯性符號或不適當的顏色)
- 用戶體驗(例如,日期、地址和貨幣的布局)
- 視覺材料(例如,必須符合文化期望)
- 腳本(例如,從內容到 UI 的所有方面都按照既定的語言規則顯示)
10、可用性測試
通過評估用戶適應應用程序設計和執行不同任務的難易程度,QA 工程師可以發現他們在原型設計過程中可能忽略的缺陷,以確保用戶使用過程盡可能透明、直觀和簡單。
四、部署和維護
在期待已久的發布之前,必須進行用戶驗收測試,以確保軟件可以投入生產,滿足所有用戶需求和業務需求,并且保證遺漏任何缺陷的可能性是最低的。
一旦達到 UAT 推出標準,團隊就會發布功能。通常每家公司都會設定自己的指標,例如成功完成測試的數量或已識別的不同嚴重性問題的百分比。
一旦發布結束,新功能即將推出,這意味著每次將代碼更改交付到生產環境時,QA 團隊都必須執行回歸測試,以確保修改后的軟件部分不會影響現有功能。
通過分析潛在的風險區域并執行多輪(最多三輪)回歸測試以及中間缺陷驗證,QA 工程師可以提高軟件質量并穩定改進軟件應用程序。
使用 QA 構建可靠的 IT 產品
為了提供吸引目標受眾的引人入勝的軟件解決方案,公司可以將 QA 注入到整個軟件開發生命周期,而不是在開發完成后完成任務,使 QA 工程師超負荷工作。
因此,公司在整個核心 SDLC 階段堅持的基本質量保證實踐應包括:
- 規劃期間的需求測試
- 設計過程中的原型以及可用性驗證
- 測試文檔的創建和全面性測試,以在開發階段提高產品質量
- 在部署和發布后的支持階段進行 UAT 和回歸測試
當 QA 應用于復雜環境時,這些工作可以幫助組織降低運營費用,因為它們能夠及早發現軟件問題,從而將修復成本降至最低并提高開發速度,并且從一開始就進行徹底的測試,因此返工的可能性很小。
譯者介紹
朱鋼,51CTO社區編輯,2019年CSDN博客專家20強,2020年騰訊云+社區優秀作者,10年一線開發經驗,曾參與獵頭服務網站架構設計,企業智能客服以及大型電子政務系統開發,主導某大型央企內部防泄密和電子文檔安全監控系統的建設,目前在BIM頭部企業從事招投標軟件開發。
原文鏈接:https://dzone.com/articles/qa-to-support-software-development-life-cycle-best
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】
???