本站小編為你精心準備了軟件工程中軟件測試的必要性參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1軟件工程提升軟件健壯性分析
軟件工程目前一直缺少一個明確的定義,但是目前業內專家都一致認為軟件工程一般分為需求分析、設計、編碼及測試4個環節。其中前面3個環節是整個軟件的編寫,而最后1個環節的軟件測試,則是通過各種專業測試方法來測試軟件是否滿足軟件工程下的10種特性:可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性。
2當前軟件測試的現狀
從對軟件工程的分析來看,軟件測試是保證軟件最終健壯性的最后一個工序。但是,當前很多軟件設計公司,在軟件測試方面投入的人力物力都非常低,甚至沒有專門的軟件測試部門,而是由一些軟件設計人員兼職。雖然這樣也有了所謂的軟件測試這道工序,顯然因為軟件設計人員本身的先入為主,所以在軟件測試的過程中,往往不容易發現潛在的問題。另外有的軟件測試人員僅僅把軟件推到市場上,部分使用人員來進行測試,雖然這也是一種測試方法,但是這種由用戶測試的軟件測試環節,更多的是在軟件的操作體驗的測試,并不能夠發現軟件潛在的bug,正確的軟件測試流程,應該設計專業的測試軟件,通過白盒測試的方法來針對軟件代碼進行測試。而上述的僅僅測試界面和操作,那只是軟件測試中的黑盒測試法,只有綜合白盒和黑盒,才可能獲得更好的軟件測試效果。但是,目前能夠綜合這2種測試方法的專業軟件測試部門,還是非常稀缺的。這自然導致了國內整個軟件行業的軟件健壯性存在缺陷的主要原因之一。
3軟件測試重要性分析
3.1軟件危機下凸顯軟件測試的重要性
軟件危機一直是IT行業的最重要的話題,其實在軟件危機這個名詞出來之前,軟件工程就已經初步有了核心流程,不過正是因為很多專家有著自己的理論,所以讓軟件工程這門技術的解釋出現了很多不同的版本,不過在眾多版本中,軟件測試始終占據一個重要的模塊。軟件危機常見的表現就是因為軟件在開發的過程中,成本失控、時間跳水、穩定性和兼容性欠缺等諸多問題,而不得不一而再再而三的重新開發,特別是軟件在設計的過程中,對于可維護性、可修復性不重視,導致維護的成本占據了整個軟件生存周期的90%以上,這很明顯是不正常的。通常而言,軟件維護的成本應該是軟件生存周期的70%以下,超過70%,這個軟件最終的結局一定會失敗。軟件測試的過程,除了針對軟件的運行是否穩定,同樣也會對軟件的可維護性進行有效的判斷,盡可能的避免軟件危機的產生,所以從軟件危機的角度上來看,軟件測試在軟件工程中的地位無疑是非常重要的。
3.2軟件測試的必要性
(1)是交流的問題,容易導致軟件接口處的錯誤?,F代軟件設計已經不是單人作戰的模式,已經上升到團隊甚至全球軟件工程師通過互聯網這個大平臺進行合作,這種方式顯然對軟件工程規范要求更高。其中交流往往就成了一個很重要的問題,很多軟件工程師在設計的過程中,盡可能的將自己負責的模塊做到完美,甚至也能夠考慮到模塊間的借口問題。但是因為交流上的不便,或者忽視交流,往往會產生2個模塊接口不兼容,甚至還會發生軟件需要重新改寫的問題。
(2)軟件結構有越來越復雜的趨勢。雖然軟件開始實施模塊化設計方式,將一個軟件整體拆解成無數個小的系統模塊進行設計,然后將設計好的模塊進行統一封裝。這種化整為零的軟件設計方式的確有效的改善了軟件復雜性的問題,但是同樣也面臨著模塊間的兼容問題,不同設計師的設計風格可能會導致軟件可維護性降低及可移植性降低,特別是一些軟件開發公司,根本就沒有軟件工程的概念,其研發的軟件產品,更是漏洞百出,自然很難保證軟件產品的健壯性。
(3)程序代碼的設計問題。目前一個軟件的誕生,往往會有好幾千萬行的代碼,而且在軟件正式代碼編寫之前,還需要撰寫概要設計代碼和詳細設計代碼,這些往往都給錯誤埋下伏筆。如果程序設計代碼撰寫不規范,沒有相應的注釋,沒有相應的模塊設計,往往計算式發現了軟件的錯誤,最終維護起來,也很難讓維護工程師定位,甚至連測試工程師也很難找到錯誤的地方。
(4)設計文檔的組成非常少。一個軟件產品的誕生,除了優秀的代碼設計之外,還要一份完善的代碼文檔,包括軟件的可行性研究、需求分析、詳細設計、代碼編寫,以及軟件測試等工作流程中所需要的一切的代碼文檔。如果代碼文檔貧乏,甚至沒有,那么一旦在軟件測試環節,或者在軟件使用環節,出現錯誤時,那就很難進行維護調試了。這時候的維護成本往往會比重新編寫一款軟件的成本還要低,可見設計文檔的錯誤撰寫給軟件健壯性的影響。
(5)一些軟件測試工具和開發工具本身的問題,往往導致軟件出現嚴重的bug。而且在設計階段,還很難發現,因為是本身軟件測試工具和軟件開發工具引起的,因為軟件測試工具和開發工具實際上也是一種軟件,如果這些軟件的健壯性有問題,自然也會導致測試結果出現偏差,最終影響到軟件的健壯性。
3.3軟件測試成本過半證明了軟件測試的重要性
軟件工程雖然在很多專家和權威機構的定義有所偏差,但是無一例外,對于軟件成本構成的分析上,軟件測試的成本一直占據了主要部分,最低的認為,軟件測試成本要占據30%,最高的則認為占據到50%。如果將后期維護成本也放在軟件測試板塊中,那么這個測試成本就會變得更高。因為軟件進入維護期時,一旦出現軟件需要進行調試,那么修復后的軟件依然要進行軟件測試,否則很難保證調試后軟件依然能夠保證健壯性。作為一個軟件系統的所有代碼,都是牽一發而動全身,修改了某處代碼,可能會影響到另外一個模塊的功能,所以在維護期內,對軟件的任何變動,都需要進行軟件測試,才能夠保證軟件接下來的健壯性。但很明顯,如果將軟件測試工作放在軟件推出市場之前,就來進行有效的測試,那么對于軟件整個生命周期的成本,將能夠得到有效的降低。軟件測試的成本的高低,往往和軟件的質量成正比,而軟件質量提升了,后期的維護成本就能夠有效的降低,所以綜合起來,軟件測試這部分的成本支出是非常有必要的。
4軟件測試流程分析
(1)建立獨立的軟件測試部門,測試部門領導應該對這個專業非常精通,而不是簡單的由開發人員兼職,這個測試部門需要從可行性研究開始就應該著手對軟件研發進行測試,可行性研究的最終確認應該也有軟件測試主管部門的簽字確認才能夠進行下一步的工作。
(2)軟件測試工作不是等到軟件全部開發完畢才來進行測試,而是跟隨軟件設計的整改生命周期,針對每一個環節進行測試,軟件測試部門應該擁有獨立的物理部門和獨立于開放環境的測試環境,這樣才能夠提供更加完善的軟件測試,盡可能的將軟件bug扼殺在搖籃里。
(3)軟件模塊測試,因為現在軟件設計都已經進入模塊化設計標準,比如一個完整的軟件是S,它有A、B、C、D等模塊構成,那么對于A模塊的軟件設計過程中,就應該有獨立的軟件測試人員進行跟蹤,直到A模塊被測試證明沒有隱患。以此類推,分別對B、C、D等模塊分別進行測試,合格以后,組裝后的軟件依然進行測試,這樣才能夠最終提升軟件健壯性。在軟件設計的過程中,其實測試人員是和軟件開發人員并行工作的,而不是等到軟件設計完畢之后,再來對模塊進行測試,這種方法才能夠提升軟件測試的效果。
5結語
軟件測試隨著軟件系統復雜性的不斷提升而變得越來越重要,如果現在的軟件設計公司依然按照傳統的軟件研發,只注重軟件的功能設計,而忽視軟件測試,通過不斷的壓縮測試成本,希望以此來提升軟件最終的利潤作法已經行不通了,只有將軟件測試做好、做精,才能夠提升軟件的健壯性,才能夠提升軟件的生存周期,才能夠降低軟件的整體成本。
作者:董倩范亞斌單位:石家莊學院