郭旭:如何走出軟件評測的嬰兒期?

  陳致平:分兩步走,首先,我們應該搞清有哪些需求;其次,我們需要一些流程來保障這個測試的過程。還有一種觀點要注意的是,不要把測試當成一個藥,或者是一個惟一藥品。

  劉珍妮:我想這需要軟件開發商和所有軟件開發人員需要共同努力的,軟件開發商應該提升對于測試工具的發展,軟件開發人員則需要重新思考測試的重要并且體驗測試帶來的好處。當軟件開發商能夠提供軟件開發人員無負擔的測試機制時,可以大幅降低一般軟件開發人員抗拒使用或是嘗試測試機制的力量。一旦軟件開發引入測試機制并且提高軟件質量之后,也能夠讓一些管理人員更正對于測試不正確的想法。

  嚴把質量關

  軟件不分大小,都要過測試這一關。而把握質量關,除了強化測試意識之外,還需要一定的機制和流程來約束。專業性、獨立性、客觀性和公正性的第三方測試機構的出現,又對軟件質量起到了加固的作用……

  郭旭:毫無疑問,測試是軟件質量的保證。但嚴把質量關的方法有多種,如CMM、ISO等,一定要走測試這道工序嗎?

  張志明:我認為,軟件質量是管理學范疇的概念,CMM和ISO是質量管理體系。軟件測試主要是技術實現,是軟件質量保障的技術關鍵。不進行充分有效的軟件測試,談軟件質量是一句空話。當然,軟件測試同樣強調測試管理。可以肯定,沒有經過嚴格測試的軟件不具可靠性。

  劉珍妮:如何達成嚴把質量關的目的?我想不是根據感覺而已,而是需要一定的機制和流程。CMM、ISO等可以保證軟件開發經過了驗證的步驟,而其中的測試工序則可以提供量化的數據讓軟件人員得知軟件的質量,這是很重要的工作。

  黃子河:ISO、CMM主要是從宏觀的管理層面上發揮作用,而軟件測試是重要的具體的實踐活動,他們是相輔相成的,對于一個軟件企業來說,如果沒有軟件測試過程的ISO、CMM認證,是不可想象的,比如,SEI的SW-CMM在它的成熟度第三級的“軟件產品工程”關鍵過程中,把軟件開發周期中不同階段的測試作為實施活動的關鍵實踐,“過程決定質量”??軟件測試必須貫穿于軟件定義與開發的整個周期,只有在軟件開發的各個環節實施了有效的測試,軟件產品質量才能得到根本的保證。

  此外,軟件測試不僅僅能發現現有軟件中存在的錯誤,而且通過分析錯誤產生的原因以及在錯誤產生的階段,可以幫助發現軟件開發過程的缺陷,以便進行改進。

  郭旭:軟件測試的種類有多少?一個軟件的推出,至少要過幾道測試關?

  黃子河:從不同的角度,軟件測試有不同的分類。例如按測試功能劃分,有黑盒測試和白盒測試;按開發過程劃分,有單元測試、集成測試、系統測試、驗收測試等;按測試方法劃分,有靜態測試和動態測試。當然還有很多其他的劃分方法,不過我個人認為,劃分軟件測試的種類并不重要,重要的是,一定要把測試看成是軟件全生命周期持續不斷的事情,而不是一個階段性的事情,并且要把測試概念的外延進一步擴大。

  劉珍妮:不同的軟件公司可能有不同的要求,除了開發人員熟悉的測試方法,例如功能測試,單元測試,整合測試之外,還需要回歸測試,Stop-Ship測試。另外對于企業應用系統可能還需要進行效率測試,壓力測試以及耐久測試等。因此對于不同的軟件型態,可能需要經過的測試流程以及重視的特定測試會有所不同。

  陳致平:實際上,有很多種測試渠道關,實際上我覺得從質量保證手段這樣一個范疇,有需求的部分、設計的部分,然后到代碼的走查和后面的單元測試、集成。實際上這一系列都是一道道關卡和質量手段。只要考慮一個問題,你建一道大壩攔水,如果攔不住,這道壩也沒有用了。因此,要用正確的方法去做測試,才能夠達到效果,如果你確實想做,然后方法錯了,那你可能后花多少錢也不是你后想要的結果。

  郭旭:是不是所有的軟件的推出,都需要測試?哪些軟件更需要測試?

  黃子河:是。一個軟件,無論其大小和應用領域,測試都是不可或缺的環節,除非根本不在乎軟件品質的好壞。

  劉珍妮:對于Borland來說是的,而且Borland對于每一個產品都有要求的測試分數,只有高于低標準的產品才能夠推出。

  當然,所有的軟件都需要測試,我想這是毋庸置疑的,但是要花多少相對測試成本可能需要考慮。一個公用應用程序需要測試的成本不可能高于系統軟件。一般而言,系統軟件,24×7×365型態的軟件是需要進行更嚴密的測試的。

  陳致平:當然是。什么軟件更需要測試?那肯定是跟人力相關的,不能宕機,這肯定是。

$news-page$

  郭旭:理想狀態下,軟件在開發過程中,開發工程師與測試工程師的合理比例是多少?

  黃子河:這里說的比例只能是一個概念性比例,并不是的要求,主要還是根據實際測試需要而定,有些人曾提出,成熟的軟件產品制造過程中軟件開發工程師和軟件測試工程師的合理比例為1∶3。近,微軟亞洲工程院張宏江院長在一次演講中指出,微軟開發工程師與軟件測試工程師比例是1.2∶1。像目前國內一般公司的軟件開發工程師與軟件測試工程師的比例為6∶1甚至10∶1,有的甚至直接用開發工程師兼職,顯然是不能滿足測試需求的。

  陳致平:我覺得其實質量是成本,客戶統籌是不是投入,這么大一個測試的群體,哪個企業都不要盲目地跟從,首先要立足于企業自己的問題和需要。現在,已經開始有了問責制,我們已經出問題了,或者說本來出問題了,那我們一定要追查到。其實軟件也是一樣的。所以,我覺得,這個合理的比例實際上現在肯定是少的,你能有多大的比例,其實完全取決于你的客戶愿意負責多少成本。

  測試自動化

  面對軟件的規模越來越大,應用的復雜度和集成性越來越高,各種新的軟件開發技術不斷應用,那么,如何提供高效、有效性的測試,是軟件測試技術面臨的巨大挑戰。但不可否認的是,測試自動化仍然是一種趨勢……

  郭旭:隨著軟件測試的重要性越來越明顯,與之相關的軟件測試工具也悄然而至。用這些工具,可以完成軟件測試了嗎?

  黃子河:應該說,軟件測試和軟件開發一樣,都是一項人的工作。但是在軟件測試中主要的還是測試工程師,這與在軟件開發中重要的是開發工程師而不是開發工具,是一樣的道理,工具只能是工具,只不過是用它來實現測試工程師的思維,從而可以減輕一些手動的重復的工作,使測試工作更加條理化。測試工具只是起到一個輔助作用,在更多的時候還要測試工程師發揮他們的經驗和智慧實施有效的測試。

  劉珍妮:我想使用測試工具可以解決許多的測試工作,但是并非全部,尤其是對于垂直產業的軟件來說,目前的測試工具似乎還有待改進。這是因為垂直產業軟件的測試需要結合領域知識,現在的測試工具對于水平產業的軟件支持比較好。即使如此,軟件廠商在發展軟件產品時除了使用測試工具之外也仍然需要啟動測試階段,找各種不同外部測試人員(Beta Tester)參加測試。

  陳致平:測試自動化實際上是很困難的,從實際的結果來看,我們說有需求,有流程。這是全面的,兩個前提條件,你才能自動化,因為你有沒有一個穩定的需求,你的測試自動化無從談起,你的目標像一個自動靶射箭,沒有流程你也沒法射箭,所以說實際上自動化是你在少年這個階段,你想得很清楚,你有足夠的力氣,你才能掄得動這把刀。

  郭旭:從目前的測試工具來看,以國外品牌居多,對于用戶來說,如何選擇測試工具?

  黃子河:選擇測試工具當然也是要根據自己的需求,雖然有很多的測試工具,但是要看清它們的測試類別,有針對功能的,有針對源代碼的,有針對壓力負載測試的等等,在同類的工具中再進行比較,很多的工具大同小異,好先進行試用,當然也可以咨詢專業的測試機構,無論如何,滿足自己需要的才是好的。

  劉珍妮:這主要需要看使用者的軟件形態和公司重視的測試項目,用戶必須了解每一個測試產品的重點,此外由于新的軟件架構不斷的出現也不時的造出新的測試產品。

  郭旭:軟件測試技術發展走向是什么?利用工具進行自動化測試,是趨勢嗎?

  黃子河:面對軟件的規模越來越大,應用的復雜度和集成性越來越高,各種新的軟件開發技術不斷應用,那么如何提供高效、有效的測試,是軟件測試技術面臨的巨大挑戰。

  劉珍妮:從各種測試工具的開發趨勢來看,自動化測試是發展主流,因為這可以大幅減輕開發人員的負擔以及測試成本。除此之外,測試工具如何結合領域知識提供測試人員可重復使用的測試以及測試學習機制,我相信測試工具打入垂直產業軟件,讓這種軟件開發人員使用是很重要的發展趨勢。

  郭旭:從目前來看,國內軟件如何快速進入測試階段?

  陳致平:實際上應該立足于手動測試流程,要把流程建起來。我更覺得可能測試流程的管理工具是更緊迫的。自動化主要是指一個黑盒、自動回放這樣一些東西,取決于一個很好的流程,一個測試管理的流程,取決于相對穩定的需求。尤其在中國現在的條件下,我覺得很多企業是不具備一個好的流程,同時我們的市場變得太快,其實現在來講,應該從自動化這個角度做是相對比較困難的。現在可能從測試工具來講,比較容易相對從體系里面,如果你要做一件事情,受到的其他的牽制和壓力很大的,一般來講會有幾個方面,首先從工具上來說,先是設置的流程管理;其次會是一些我們會有一些其他的元素。這個你要考慮,但是相對來講,其實是一個比較有效的質量保證系統,然后我們說這種回歸測試,是說用機器來替代人,這個我在國內應該是比較特定的一種服務,相對來說,我覺得這兩個前提條件都是要具備的;后的是壓力測試、單元測試。相對來講,高級應該是壓力測試,這樣才能回歸。

  正確看待第三方測試

  第三方測試大的特點在于它的專業性、獨立性、客觀性和公正性。對于軟件開發商來說,經過第三方測試機構的測試,不僅可以通過專業化的測試手段發現軟件錯誤,幫助開發商提升軟件的品質,而且可以對軟件有一個客觀、科學的評價,有助于開發商認清自己產品的定位。對于行業主管部門以及軟件使用者來說,由于第三方測試機構獨立公正的地位,可以對被測試的軟件有一個客觀公正的評價,幫助用戶選擇合適、的軟件產品。目前“863”計劃引入了“以測代評”的機制,通過第三方測試機構公平、公正、公開的測試,把可視性差為特征的軟件透明化,用量化的數據說話,為科技部和專家組擇優支持提供了科學客觀的依據,從而避免了以前的印象以及關系成分。另外,很多大的信息系統工程的驗收,也要經過第三方測試機構的嚴格測試,從而大程度地避免信息行業的“豆腐渣工程”通過驗收。

  可以說,第三方軟件測試的出現,標志著中國軟件產業走向成熟。雖然是“小荷才露尖尖角”,但的確是一個非常可喜的征兆。希望它能快速成熟起來,為中國軟件產業的發展發揮重要作用。