壹個軟件開發項目通常要經歷幾個主要階段,比如需求分析、設計、編程和測試。其中,設計包括總體設計、系統設計(將整體架構變成塊系統)和詳細設計。經過詳細設計,軟件成為壹個塊模塊,然後它進入編程。在編程階段,軟件藍領最後剩下的就是模塊編碼工作,通常由在印度培訓壹兩年的高職畢業生擔任。
軟件的最終測試是壹個復雜的過程——單元測試(小模塊測試)、系統測試(逐塊連接集成)和整體功能測試。在此期間,測試編程工程師編寫測試工具、制定測試規則的難度不亞於系統框架的制定。最後,測試工程師完成測試任務。
外包軟件測試有望成為小作坊軟件業的業務增長點。
壹個企業要想把國際軟件外包業務做強做大,就必須與國際軟件市場接軌——包括英語理解和溝通能力、技術、管理、做事方式和知識產權。還有質量保證、信譽保證、風險控制能力、知識產權保護等方面。顯然,上述條件是國內大多數小作坊式軟件企業所無法企及的。但這並不壹定意味著小作坊軟件企業就沒有機會承接軟件外包服務。因為在軟件外包項目中,軟件測試項目最適合目前國內小作坊軟件企業的行業特點。
軟件測試是保證軟件質量的最重要的手段。
使用低質量的軟件在操作過程中可能會出現這樣的問題,可能會造成工作的延誤或者給用戶造成生命財產的損失。軟件測試是保護軟件用戶免受損失的最重要的手段。
什麽是軟件測試?1983 IEEE定義為通過人工或自動方式運行或測量壹個系統的過程,其目的是檢查其是否滿足規定的要求或找出預期結果與實際結果之間的差異。
現代軟件開發工程明確將整個軟件開發過程分為幾個階段(見下圖),分階段詳細解決復雜問題。這樣,在整個軟件開發過程中,可以對每個階段提出若幹個明確的監控點,作為每個階段目標實現情況的檢查標準,從而提高開發過程的可視性,保證開發過程的正確性。
經驗證明,軟件的質量不僅體現在程序的正確性上,還與編碼前的系統需求分析和軟件設計密切相關。軟件使用中的很多錯誤,不壹定是程序員在編碼階段造成的,而是埋在程序設計甚至需求分析中。這時,軟件工程的糾錯必須追溯到軟件開發的初始階段。如果是這樣,會增加軟件開發的成本。
為了保證軟件的質量,項目管理應該關註整個軟件生命周期,尤其是開發階段的系統分析。因此,軟件測試的概念和實施範圍必須包括開發的所有階段的審查、評估和測試。