10大準則令完美的開發/測試實驗室成為可能
你是否擁有一些實現超敏捷軟體開發所必備的特質?創業公司Ravello Systems探討了通過將雲規範化,來構建夢寐以求的開發/測試實驗室的關鍵準則。
在這樣一個競爭優勢與業務敏捷度近乎畫上等號的世界中,現實情況是,企業往往需要非常多的時間投入,來開發和測試驅動業務的種種軟體。
在軟體開發中,超敏捷要求基礎設施和自動化不僅與開發程式保持一致,而且還要對加速迴圈和改進整體質量產生實質性幫助。在開發/測試工作負荷具有猝發性和短暫性本質的大前提下,要想打造一套理想的完全部署在本地的實驗室,可以說在經濟上是不可行的。然而現在藉助將雲規範化的新技術,對大多數企業來說,與超敏捷開發和測試之間的距離正在被不斷縮短。
這裡給出的10項準則,它們將有助於推動開發/測試實驗室涅槃重生。儘管時至今日,依舊幾乎不可能實現在打造這個“夢寐以求的實驗室”的同時又不至於投入許多花費,然而藉助各種最新的技術,很容易構建這個理想的實驗室:它不止能夠提升軟體質量、加快投放市場的步伐,還能夠減少整體成本。
1.敏捷開發/測試具有猝發模式的特點,並且實際上要求無限的基礎設施資源池
典型的軟體開發和測試現在都得到了自動化處理,但是由於資源方面的制約因素,並不是所有的測試都能夠並行進行。對任何企業來說,讓開發/QA團隊等待測試結果,需要付出極其高昂的代價——這不僅僅是一種低效行為,還會使得企業在業務競爭中輸給更加敏捷的對手。在理想場景下,開發者應該無須等待,就能夠訪問資源池,而且該資源池在他的角度看來是無窮無盡的——不論是公有、私有還是混合雲,因此任意數量的測試都可以立即且並行地進行。
2.開發者應該享有基礎設施的自服務渠道
要想完全利用潛在的近乎無窮盡的資源,工程師需要能夠:通過預先定義的許可,以按需、自服務的方式訪問資源池,而不是等待IT為每個請求逐一配置資源並授權訪問。
3.使用產品複製品進行測試的能力
從Ravello針對開發/測試工程師、IT管理員、自動化工程師和DevOps進行的調查來看,多達75%的架構師和IT管理員都意識到了:建立開發/測試環境過於複雜且耗時,而且這些環境並不能代表產品。儘管每個人都能夠認識到對速度的要求,但同時我們也不要忘記,軟體質量是另一個同等重要的方面。特別是在非常靈動地環境中,要想確保最終結果始終具有高質量,測試產品的複製品固然頗具挑戰,但卻是至關重要的事情。例如,如果我們擁有一個本地VMware環境,並且想要在亞馬遜AWS雲服務上測試這些應用,那麼兩種型別的環境之間應該是完全無縫的。
4.基礎設施應該在應用層面進行自動化
基於單獨的快照和副本,手動複製複雜的多虛擬機器應用,是一件繁瑣且容易出錯的工作,而且當涉及到複雜的網路配置時更是如此。在理想情境中,應該能夠通過簡單的一次點選,就完整複製多虛擬機器應用及其網路。
5. 持續整合——從應用到基礎設施
通過持續整合,開發者在提交程式碼時,應該能夠擁有應用的多個例項(產品複製品),並且在同一時間裡執行一系列完整的整合測試。開發者需要即刻獲得反饋,以瞭解測試的功能在類生產環境(production like environment)中工作良好,或是出現了問題並需要修訂。作為支援持續整合的絕佳工具,Jenkins得到了廣泛運用。然而要想成功使用,需要將它與底層基礎設施設定緊密地整合,以用於無縫的端到端自動化——從程式碼到硬體。
6.身處各地的開發和測試團隊能夠便捷地協作
設想一下,一位QA找出了某個Bug,他不需要打斷或推遲其他正在進行的測試工作,就能夠邀請開發者檢查或除錯相同的應用例項——不論二者身在何方。這種快速訪問和分享將加速開發/測試迴圈,並提高團隊協作。
7. 重現Bug的能力
在複雜的多虛擬機器應用中,跨應用元素的依賴和互動,使得重現Bug是一件非常困難的事情。在理想的配置中,整個複雜應用可用被打包成一套環境,從而能夠簡單地重現Bug,例如識別出某個Bug時,就可以執行測試系統的一份複製品。
8. 快速製作原型
使用標準的預定義積木式部件(例如,標準的資料庫叢集)來快速製作應用原型,將顯著加快開發/測試迴圈的速度。然而,理想中的積木式部件,應該不僅僅是使用標準應用元件的全新或現成的例項,而是對實際應用中存在的相同元素進行復制,從而更加貼近生產環境。
9. 監控資源使用的能力
考慮到開發/測試實驗室在本質上來說非常不穩定——虛擬機器被頻繁的建立和銷燬——因此,要想確保資源有效利用和未使用生產能力的恢復,監控開發/測試資源使用情況的能力至關重要
10.成本效益
最後,但顯然很重要的一點是,提供所有這些能力,都應該以業務能夠承受的成本為前提條件。在之前提到的這份調查中,80%的開發團隊遇到了開發/測試基礎設施短缺的問題,而92%的開發團隊則擁有購買更多硬體裝置以用於開發/測試專案的需求——然而增大采購併不總是一個划算的方法。特別是對於突發性的工作負荷——例如開發/測試——幾乎不可能針對峰值容量預先設計好資料中心,因為那意味著在大部分時間裡,讓昂貴的基礎設施資源閒置。在完美的實驗室中,應該能夠很容易地管理開發/測試例項,我們只要在用到的時候“開啟”例項即可,而不是讓所有例項保持7*24執行——只需要為了消耗的資源按使用付費。
11.額外要點:極限測試
實驗室還應該具有這樣的能力:通過簡單API呼叫,來檢查網路失敗情景或是測試高可用性環境。這在概念上與Chaos Monkey有點類似,但是卻有著更廣泛的功能,並使得執行檢查失敗情景的複雜測試時,不再需要手動拉線或是停止Tomcat。
軟體正在“蠶食”這個世界,但是企業中開發和測試基礎設施的狀態,卻阻礙了企業開發者們真正擁抱敏捷的程式。DevOps的興起正是面對該差距的一種嘗試。上面介紹的這些準則,在彌合開發者和基礎設施管理員之間的鴻溝,以及為企業建立夢想中的實驗室方面,還有很長的路要走。
關於作者
Rami Tamir在管理多型別軟體開發方面,擁有長達十五年的經驗, 2011年,Tamir與他人一起建立了Ravello Systems並擔任CEO的職位。在創辦Ravello Systems前,Red Hat收購Qumranet(開發了KVM管理程式的公司,現在該技術已成為Linux中的標準虛擬化技術)時,Tamir作為Qumranet的聯合創始人和總裁出任了Red Hat的工程副總裁。再早些時候,Tamir與他人創辦了Pentacom並執掌軟體部分,並隨著被Cisco收購就任後者提供的高階祕鑰管理職位。
英文原文:The Perfect Dev/Test Lab: 10 Principles that make it Possible
相關文章
- Hadoop TeraSort 基準測試實驗Hadoop
- JavaScript 實戰開發經驗!“智力”測試JavaScript
- 測試工程師必知的10大測試法則工程師
- Ajax開發10條標準守則
- QA(測試) 工作準則建議
- 想要成為軟體開發中的王者,需要明白的 21 條準則
- DEKRA德凱獲Wi-Fi聯盟授權,成為Wi-Fi HaLow授權測試實驗室
- 實驗室環境下測試千兆入侵檢測系統(轉)
- 我為何從測試轉測試開發,並堅持了10年?
- 為什麼招聘測試人員需要有開發經驗
- 谷歌制定AI技術開發七大準則谷歌AI
- 校園實驗室智慧管理系統開發
- 精準測試實踐
- 做社會化的測試工程師之一:把軟體測試搬出實驗室工程師
- 測試:開發人員理想與現實的大PK
- 實驗三--測試
- 測試工作重複枯燥,必須成為測開才能避免?
- 開源測試工具 JMeter 介紹 - 物聯網大併發測試實戰 01JMeter
- 疫情之下,精準測試的智慧可信模式正在成為中流砥柱模式
- 川大ATC實驗室從轉發平臺同步計劃
- 影片大戰開打:亞馬遜瞄準YouTube FB則與天下為敵亞馬遜
- Uber成立AI實驗室 為研發出“會飛的汽車”AI
- PHP大師的10個開發原則PHP
- 軒轅Linux開放實驗室Linux
- 阿里雲體驗實驗室 教程《搭建Java Web開發環境》阿里JavaWeb開發環境
- 身為實驗室管理者的你,需要知道的實驗室物聯網!
- 面向實驗室級別的ONT-800乙太網測試平臺
- 蒲公英(pgyer)——完美的 App測試方案APP
- 成為比開發硬氣的測試人,我都經歷了什麼?
- 演講稿 ---- 10年 測試開發
- 【星雲測試】開發者測試(2)-採用精準測試工具對J2EE Guns開發框架進行測試框架
- 軟體測試實驗三單元測試
- 開發測試
- 快遞100獲批成為工業和資訊化部重點實驗室工作組成員單位
- 開發者測試(2)-採用精準測試工具對J2EE Guns開發框架進行測試框架
- 我是如何從測試開發做到年薪50萬的?揭秘測試開發工程師成神之路工程師
- Firefox 10 測試版擁有更強大的Web開發工具FirefoxWeb
- [新手開發記錄] 驗證資料的測試