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