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

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

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

  嚴把質(zhì)量關(guān)

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

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

  張志明:我認為,軟件質(zhì)量是管理學(xué)范疇的概念,CMM和ISO是質(zhì)量管理體系。軟件測試主要是技術(shù)實現(xiàn),是軟件質(zhì)量保障的技術(shù)關(guān)鍵。不進行充分有效的軟件測試,談軟件質(zhì)量是一句空話。當然,軟件測試同樣強調(diào)測試管理?梢钥隙,沒有經(jīng)過嚴格測試的軟件不具可靠性。

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

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

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

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

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

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

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

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

  黃子河:是。一個軟件,無論其大小和應(yīng)用領(lǐng)域,測試都是不可或缺的環(huán)節(jié),除非根本不在乎軟件品質(zhì)的好壞。

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

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

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

$news-page$

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

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

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

  測試自動化

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

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

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

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

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

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

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

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

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

  黃子河:面對軟件的規(guī)模越來越大,應(yīng)用的復(fù)雜度和集成性越來越高,各種新的軟件開發(fā)技術(shù)不斷應(yīng)用,那么如何提供高效、有效的測試,是軟件測試技術(shù)面臨的巨大挑戰(zhàn)。

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

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

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

  正確看待第三方測試

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

  可以說,第三方軟件測試的出現(xiàn),標志著中國軟件產(chǎn)業(yè)走向成熟。雖然是“小荷才露尖尖角”,但的確是一個非?上驳恼髡住OM芸焖俪墒炱饋,為中國軟件產(chǎn)業(yè)的發(fā)展發(fā)揮重要作用。