配置測試不僅應該是整個開發過程中必不可少的步驟,而且在安裝新應用程序以在 Web 和應用程序服務器上使用的過程中也很重要。如果沒有適當的測試,應用程序通常會失敗或容易受到漏洞影響。暴露于黑客或病毒的攻擊可能會導致不必要的費用和花費過多的時間來糾正這些問題。應用程序開發人員忽略配置測試的需求并不罕見,因為他們認為使用像 Chef、Puppet 或其他系統這樣的自動化方法來測試他們產品的部署就可以了。他們認為,通過使用這些完全自動化的流程,他們可以測試一致性、充分再現輸出并確定事情是否按預期工作。
為什么自動化測試還不夠
自動化測試套件就是這樣——自動化。這些工具是通用的,并非旨在真正了解您的產品或實際上能夠根據可能發生的任何問題檢測缺陷。這些自動化測試方法缺乏模擬可能出現的與您的特定應用程序和配置相關的不同更改的能力。由于防火墻更改、安全配置更改或作為快速解決問題而實施的補丁代碼更改,可能會出現問題。
開發軟件應用程序的整個過程需要復雜且耗時的過程,例如規劃、構建、測試和部署產品。開發最重要的方面之一是部署階段的安全測試。在前端測試身份驗證和授權技術以及密碼保護的傳統方法確實存在。開發人員可能知道需要在應用程序的初始源代碼上實現和測試什么安全性,但他們可能不具備在完整的集成系統或操作環境下測試應用程序的必要知識。例如,他們可能不了解托管 Web 應用程序的服務器,或者是否有有效的SSL 證書是安全配置所必需的,或者對防火墻的更改可能如何影響安全問題。測試配置問題是安全測試的一個主要特征,應該實施以防止潛在的攻擊。
每個人都參與過程的案例
即使是最復雜的安全工具也無法與經驗豐富的安全測試人員競爭,他們知道系統的安全問題,包括安全漏洞的根本原因、找到原因的測試技術、修復它所需的補救措施或對策。使用不測試或不知道您的安全問題的人或方法只會導致給您一種錯誤的安全感。
例如,當開發人員發布補丁解決編碼問題時,您如何知道如何清楚地使用補丁,補丁是否易于實現或補丁如何影響其他組件?通常,這些補丁或更改無法與其他人輕松溝通或從未成功實施。配置測試可確保所有更改都易于訪問,輕松與當前系統和要求集成,并且流程中涉及的每個人都始終保持最新狀態。
每個團隊在流程中都有自己的位置
您的團隊應該通過提供有關他們最了解的內容的意見,在各個階段獨立使用他們的技能。開發團隊應該專注于應用程序的構建;而安全團隊應該專注于安全測試,而您的運營團隊應該負責合規性和驗證過程。通過實施測試方法,每個人在他們可以完全訪問的過程中都有發言權,可以消除錯誤,并且可以針對他們的特定責任領域順利實施更改。當出現配置和安全問題時,不應要求開發團隊學習新代碼或測試新框架。安全團隊可以在保護站點內容方面發揮重要作用,并且可以負責對 Web 服務器或應用程序服務器配置的要求。系統管理員具有了解如何配置服務器以及應考慮的通用準則的必要知識。當在流程的早期應用這些知識時,可以及早解決問題和漏洞,并且通常可以降低實施成本。
最后但并非最不重要的:需要分享
團隊將能夠就他們的配置測試想法進行協作,并分擔個人和整體配置測試的職責。每個人都會受益;消除了重復工作,定義了系統配置并輕松記錄了信息,輕松改進了溝通和協作,并減少了花費的時間和金錢,以實現每次變更的有效結果。使用配置測試可確保所有團隊成員都能輕松獲得應用程序開發的充分溝通、監控和文檔。團隊之間的溝通將培養“跳出框框”的思維。通常,良好安全性的用例只會測試人們預期會發生的情況。很少有自動化方法真正測試會破壞應用程序或導致應用程序以不安全方式失敗的異常情況。由于自動化方法通常無法捕捉到這些不尋常的案例,因此組織必須考慮使用創造性思維技術出現的其他案例。創造性思維通常可以幫助確定可能導致應用程序失敗的原因以及如何幫助提前避免或解決任何問題。
您可以放心,您的團隊將能夠定義、共享和運行正確的配置測試,以確保滿足您公司目標的質量。使用正確的配置測試實際上可以縮小未來安全風險成本的差距,方法是在出現問題之前解決它們。通過使用配置測試和實施持續集成作為團隊發布管理策略的一部分,您可以在不犧牲質量或性能的情況下加快發布產品的時間。