我們生活在一個軟件定義的世界中。軟件幾乎接觸到方方面面。任何努力保持競爭優勢或市場先機的企業,都必須在某種程度上重新整合其軟件。這會導致快速的開發方法,如敏捷開發和開發運維,促進持續的產品改進。但是,這些新的開發方法能夠使測試最小化,反過來又可能破壞性能和安全性。
為保持競爭優勢,企業必須提供高質量的應用體驗。此外,安全是必須的而不是“有安全性也不錯”。因而,持續的測試方法已經日益重要,其動態性就像新的開發過程一樣。幸運的是,企業越來越明白這種不斷增長的需要,并且重新思考整個過程。
推動測試升級
軟件開發的新步伐給測試人員帶來一個非常確切的問題,那就是測試者在沒有規劃好明確路線圖的情況下必須快速響應。如果產品的開發團隊被招集起來按照最新的時間表進行產品更新,直至發布日期再次更改,這往往會導致執行不力,因為解決方案存在未知的漏洞和缺陷。
但是,即使消費者的期望促進更快的開發步伐,也會提出質量問題。終端用戶期望快速、穩定和安全。及早測試和經常測試已經慢慢占據了開發者的思想,而易于使用和功能的重要性也繼續增長。還有一個問題,即新應用和設備如何使用。軟件無處不在,糟糕的開發方法可能導致大問題,其范圍涉及從自動制造問題到個人信息的失竊等諸多方面。新一波技術所產生的復雜性要求更為嚴格的評估周期。
培育改變的文化
隨著開發越來越快,企業和客戶需要在思想觀念方面有所轉變。促進更快開發的文化還需要倡導靈活的測試方法。
這要從測試方法和培訓開始。開發者、測試人員和版本管理員需要認可和實施一種連續性的測試觀念。更具體地說,這些人員需要在此過程中得到培訓,在一個快速開發周期中進行測試時,還要有可用工具。跨隊的交流也很重要,尤其是在質保經理和開發者之間的交流更為重要。在完成此步驟后,代碼將更加穩定,而漏洞的解決速度也會更快。適當的工具可以模擬真實的情況,提供共享的測試數據環境,并且總保持可用性,還能夠與主要的代碼庫框架相集成。
在成功實施后,持續的測試和培訓可以防止漏洞和性能問題的產生,同時又可以使開發人員在將來更好的找到問題。確認可疑活動和采取什么行動也會變得更為容易。企業應當避免利用有限規模的測試環境,如內部開發攻擊,或者是眾包探測,否則就會帶來一種錯誤的安全感。
最后,在并非為滿足緊迫的時間表而進行的測試中,關鍵的問題是不“走捷徑”。 迭代開發確實意味著在問題出現時并不能解決。我們還希望進一步擴展,以求在下一個軟件版本中包括另一種特性。這就需要在增加新特性和測試已有特性之間尋求平衡。適當的方法有助于減少缺陷、響應時間,以及因業績不佳對品牌造成的負面影響。開發者、測試者、版本管理員如果及早測試,并且在將其貫穿整個過程,就有能力增加穩定性和安全性。