日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

胡百敬(書評--提升軟件質量的必經之路)

 wtf_soft 2006-07-17

軟件是多個”人”長期構思,協(xié)同作業(yè)下的成果,不可能不出錯。若沒有配置相當?shù)娜肆ξ锪Y源,分階段把關測試,將隨著系統(tǒng)規(guī)模漸大而逐漸失去控制的能力。
@小標:被疏忽的一環(huán)
筆者在赴制造業(yè)授課時,看到偌大的辦公大樓內,整個樓層的品保(QA)專業(yè)人員,使用華麗的軟硬件,針對制造流程上的瑕疵缺點做各種的良率分析,但該企業(yè)的 MIS 開發(fā)卻沒有測試人員的配置。換句話說,為支持品保所成立的軟件團隊,在開發(fā)軟件時,本身沒有品保的支持。
投資出錢的企業(yè)老板們往往不清楚軟件開發(fā)的困難與復雜,一般大眾也充滿著對軟件工業(yè)的誤解。如筆者任職顧問的報業(yè)集團,其建立了首屈一指的編審制度,企業(yè)內全盛時期,有八到十位軟件工程師花費近兩年的時間,開發(fā)給上千位編輯使用的系統(tǒng)環(huán)境,為得就是對上千位記者所撰寫的文字內容嚴格把關。
但沒有軟件專業(yè)人員為系統(tǒng)開發(fā)把關,讓筆者斗膽做個對照,若程序設計師撰寫程序代碼如同記者撰寫文稿,則我們沒有測試工程師如同編輯來編審與校稿,也就是沒有 code review與測試。軟件開發(fā)團隊也缺乏如編輯們對整份報紙的版面編排與改稿,也就是沒有軟件的重構(refactoring)。甚至對程序代碼的錯誤追蹤和版本控管都還不如編輯們對文稿修改所提追蹤功能之要求。
換句話說,每個產業(yè)都有其專業(yè),卓越企業(yè)的管理階層對該公司之品管一定都有嚴格的標準,如本書第九章所描述的全面質量管理(TQM Total Quality Management)。但對支持品管的信息系統(tǒng)本身之品管卻由于無知而導致漠視。
既然全面質量管理是大大小小的”計劃(Plan)、執(zhí)行(Do)、檢查(Check)、處理(Act)”等 PDCA 循環(huán)流程,沒道理提升公司競爭力的信息系統(tǒng)沒有”檢查”。而純由腦力合作建構的信息系統(tǒng)又沒有容易施行與監(jiān)督的標準步驟(SOP),則更應該強化軟件測試,以提升質量。
軟件測試在國內往往是被忽略的一環(huán),光從筆者對書籍中專有名詞的翻譯感到陌生可作為一個指標 ,因為專有名詞的翻譯是約定俗成的,若大家朗朗上口,且對定義清楚明了,代表該技術在此已經落地生根行之有年。反之,則代表大家還在啟蒙階段,雖然美國早在上個世紀 70 年代就已經建構理論,近年更提出開發(fā)與測試人員的比例最少 3 比 1 的要求(本書中描述微軟的開發(fā)與測試人員視項目的不同,比例是 1比 1.5 到 1 比 3,也就是一個程序撰寫人員配置三個測試人員)。
而我曾經和國內一家軟件開發(fā)商的美籍品管工程師聊天,他說他在美國曾待過四家公司,不管規(guī)模如何,沒有一家公司沒有專業(yè)的品保人員。但他在臺灣沒看過具專業(yè)品保流程與品保工程師的軟件公司或 MIS 部門。
@小標:建構體系
軟件生命周期中,大分有分析、設計、開發(fā)、測試、上線、維護,若越晚發(fā)現(xiàn)問題,修正錯誤所付出的代價越大。任何階段的工作與產出皆有可能出錯,因此如「以測試驅動開發(fā)(Test-Driven Development TDD)」方法論所提倡的,在分析的初始,應該就同時撰寫測試案例(Test Case),亦及以測試來驗證對需求的了解程度,并規(guī)范接下去的設計與開發(fā)不至于偏離。
也就是在分析時期,要撰寫如何測試是否符合使用者需求的文件,在設計時期,要提出模塊與架構間整合測試的方式,以確認架構與接口定義的正確性。而在開發(fā)時期,同時撰寫單元測試,以驗證個別程序代碼的正確性。同時,說明文件的正確性也要一并測試。讓 V&V(Verification and Validation)的精神貫穿整個開發(fā)過程,時時驗證(Verification)是在做使用者需要的產品,并確認(Validation)把事情做對。
軟件測試理論從 1970 年代建構至今,已經自成體系。隨著 ISO、CMMI、Agile 的盛行,不管是 CMMI 的 Support process areas,或是 Agile 的 TDD、Pair Programming,都規(guī)范了軟件質量的基本要求,確保質量的構成要素,以及實踐的方向?;蛟S,這是當今軟件項目管理人員不可或缺的常識。
瀏覽書中所架構的測試定位與流程讓自己一身冷汗,忝為教人做軟件的講師或顧問,自認稍有涉獵軟工中的測試環(huán)節(jié),但從未在心中建立出一套完整的測試架構?;蛟S是疏于找尋,滿足于浮面的知識,以往總以人力資源不足,項目時間短促等理由自欺欺人,而讓測試流于形式。
當我們永遠陷在資源不足的窘境中時,如何拿捏資源分配應是首要問題。而不是把不熟的領域直接割舍。若心中沒有整個測試的輪廓,如何能夠取舍該做多少?
@小標:軟件測試之定位
書中提出對軟件測試定位的認知,或許值得你參考:

  •  提高軟件測試的效率和產出依靠功力,好的測試人員不僅要掌握各種測試技術,還要具備豐富的程序編寫和對 bug 的敏感度。
  •  經驗對軟件測試至關重要,有無經驗的測試人員實有天壤之別。軟件測試有復雜專業(yè)的技術,且需要測試項目本身的項目管理。
  •  軟件測試有規(guī)范與理論,不是隨心所欲愛做多少做多少,需要分配時間、人力、財力。
  •  開發(fā)與測試是相輔相成的過程,開發(fā)與測試兩個團隊間的交流、協(xié)助是提高整體效率的重要因素。
  •  軟件生命周期中的「測試階段」表明該階段的主要工作是測試,但不是說測試工作只發(fā)生在該階段。通?!笢y試階段」的主要任務是執(zhí)行測試與撰寫報告,但準備工作如測試計劃,案例(test case)以及測試程序的編寫要在更早階段完成。
    開發(fā)過程中交互執(zhí)行著單元測試(unit test),若干單元或全部集結后的測試,在日漸高漲的軟工理論 TDD 中,要求周期性的甚至到每天編譯(build)后執(zhí)行測試計劃,第二天看分析報表。
  •  軟件測試是一種有效提高軟件質量的手段,但不能百分之百地發(fā)現(xiàn)所有質量的隱憂。


@小標:工欲善其事,必先利其器
由于應用程序的開發(fā)方式繁多,如采用 C++、Visual Basic、Java、Delphi、.NET、D2K…等,存取接口也大不相同,如批次作業(yè)、Web、Windows Form。而我們的測試目的,除了上述開發(fā)流程中的配套作業(yè)外,尚有安全、壓力等測試。廣義而言,你還需要測試使用者的專業(yè)能力(或許使用者的無知,是系統(tǒng)損毀、安全疑慮的最大來源),系統(tǒng)災難復原的能力、隨著軟硬件迭代更新的兼容性等等。因此,測試工程師需要選擇適合的軟件工具,建構獨立的測試環(huán)境,并有程序寫作、整合軟硬件平臺,協(xié)調開發(fā)人員的能力,同時在人格特質上喜歡找問題,挑毛病。這其實與軟件開發(fā)工程師喜歡堆積木,無中生有創(chuàng)造系統(tǒng)的特質不同。
當我們定出軟件測試的流程后,若沒有強悍、整合、易上手且自動化的工具程序,則推廣的結果可能是流于空談,畢竟測試是一再重復而枯燥的流程。
本書中除了對 ISO、CMM、TQM 等規(guī)范與軟件測試之關系,各種開發(fā)階段所應進行的測試工作,不同類型的測試之定位有明確解說外,于后半冊廣泛介紹了在軟件測試領域著名的廠家,也詳列了著名的軟件測試工具,并分門別類地介紹工具之使用。擷取操作的屏幕畫面,以逐步介紹的方式解說。
@小標:閱讀建議
這本書有點流于教科書的繁雜,且部份細部章節(jié)的編排上稍嫌紊亂。書中有些過于理論的說明,需要讀者耐得住性子 。且受限于項目經費、時程與人力,若要將書中的建議全部落實于我們日常的團隊合作,似乎仍有一段落差。
建議你先廣泛地瀏覽一下書籍內所談到的內容,如操做測試的黑箱/白箱進行方式,配合開發(fā)流程而對應的測試流程,如單元、整合、確認、系統(tǒng)、平行驗收等測試。有了概念后,在軟件開發(fā)的過程中,再擇要精讀。
由于導入測試的效益要明顯呈現(xiàn),恐怕是在兩三個案子之后,這種先期需要投資,但下兩三個案子才見效益的規(guī)劃,對項目經理而言,可能更需要謹慎拿捏資源配置的比例。
@小標:相關閱讀
對于國內廣大的微軟產品愛用者而言,這本書有點可惜的是于此主題著墨不多。若你需要從事 Microsoft .NET 開發(fā)相關的測試,可以參考以下的書籍:
 Test-Driven Development in Microsoft.NET,作者為 James W. Newkirk、Alexei A. Vorontsov。出版社 Microsoft。
此書有介紹 TDD 的概念,以及免費軟件工具 NUnit 搭配 C#/.NET Framework 開發(fā)與測試的使用方式。
 Working with Microsoft Visual Studio 2005 Team System,作者為 Richard Hundhausen。出版社 Microsoft。
此書是本入門書,介紹 VSTS 的架構,與實做軟件生命周期管理之方式。并對于 VSTS 所提供的測試管理:Test Manager、Test View、Test Project、Test Results,以及測試類型 Unit Test、Code Coverage、Profiling、Manual Test、Web Test、Load Test 稍有介紹。
若要強化軟件質量,重構是可考慮的過程,而重構更與測試密不可分。你可參考與重構相關的書籍:
 重構—改善既有程序的設計(Refactoring : Improving The Design of Existing Code),作者為 Martin Fowler,譯者 侯捷/熊節(jié),碁峰出版。
除了書籍外,以下這個網站也蠻有趣的,值得去逛逛:周思博趣談軟件(http://chinesetrad./index.html)

@書名:軟件測試理論與實作
@飛思科技產品研發(fā)中心 編著
@博碩文化出版

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多