軟件工程師評職稱論文(2)
軟件工程師評職稱論文
軟件工程師評職稱論文篇二
軟件工程測試淺析
摘要:軟件工程的目的是開發(fā)出具有可修改性、可靠性、有效性、可適應性、可移植性、可重用軟件工程性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。但是為了保證軟件產品的質量和開發(fā)效率,同時也為了減少維護的困難。我們一定要重視軟件測試。本文就軟件工程測試進行一個探討分析。
關鍵詞:軟件工程 軟件測試 產品 質量 測試工具 需求
在軟件測試日新月異發(fā)展的今天,自動化測試正在成為軟件測試領域里的一個非常矚目的趨勢和潮流,軟件測試在軟件工程中是極其重要的過程,在軟件測試組織中,對測試過程中的知識進行有效的管理,是提升組織整體測試水平的關鍵。一個重要的研究問題是怎樣將知識管理過程與軟件測試過程有效集成,從而促進知識資產在軟件測試組織中的傳播與重用。首先我們來了解一下軟件測試的概念,目前軟件測試的定義比較多,如果想要找一個比較清晰的定義:軟件測試主要是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,也就是說,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內部結構而精心設計的一批測試用例(即輸入數(shù)據(jù)及其預期的輸出結果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程。所以,我們知道,軟件測試其實是為了發(fā)現(xiàn)程序中的錯誤,是一個找錯的過程。
同時,我們知道,軟件測試是一個知識密集型的活動,軟件測試人員的工作不僅僅是依據(jù)測試計劃對軟件進行測試,與測試相關的知識、技巧、經驗和靈感在測試過程中有著重要的作用,但是隨著軟件技術的快速發(fā)展,不斷出現(xiàn)的新的待測軟件產品,常使軟件測試人員感到壓力重重,力不從心,他們有探尋新的測試知識和技術的緊迫需求。而軟件測試的自動化的出現(xiàn)為我們提供了一種新思路和解決問題的新方法,下面對軟件測試幾個方面進行探討。
1 軟件測試的目標
1.1 軟件測試員的基本目標是發(fā)現(xiàn)軟件缺陷。這個是軟件測試的終極目標,之所以再次強調。是因為有時軟件開發(fā)團隊進行軟件測試只是為了證實軟件不存在錯誤的過程,證明該軟件滿足了用戶的要求,而不是找缺陷。在這樣的情況下,測試人員也就缺乏不懈努力發(fā)現(xiàn)缺陷的探索精神和熱情,不會希望在軟件測試中暴露軟件中隱藏的錯誤和缺陷。所以做好測試的首要條件是明確軟件測試員的基本目標是發(fā)現(xiàn)軟件缺陷。
1.2 軟件測試員追求的是盡可能早地找出軟件缺陷。根據(jù)調查和實踐,軟件的修復費用,隨著時間的推移,將數(shù)十倍的增長,所以軟件測試員應盡可能早地找出軟件缺陷。這樣,在測試中,就不要選擇那些導致程序失效概率小的測試用例,因為這樣的測試對于完善和提高軟件質量是沒有任何價值的。同時,應當把軟件測試貫穿到整個軟件開發(fā)的過程中,因為很多預料不到的錯誤,往往只在特定的環(huán)境下才會暴露出來,不然一些隱藏的錯誤和問題查不出來,就可能會出現(xiàn)在運行階段中去。
1.3 軟件測試人員必需確保找出的軟件缺陷得以關閉。在軟件工程測試的過程中,主要目的是發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤,從用戶的角度出發(fā),替用戶著想,將更深層次可能的問題都測試出來。但是,因為各種原因并不是每個軟件缺陷都是必須要修復的。如:沒有足夠時間、風險太大等。但是,測試人員必需確保找出的軟件缺陷得以關閉, 因為軟件測試的目標就是揭示不同類型的錯誤,并且修正它,使得用戶能夠順利使用軟件。
2 軟件測試的基本原則
2.1 軟件開發(fā)人員應當避免測試自己的程序
軟件測試時一項復雜、富有創(chuàng)造性和高度挑戰(zhàn)性的工作,在軟件測試中,如果讓開發(fā)人員來測試自己的代碼,那是一件非常不妥當?shù)氖虑椤R驗殚_發(fā)和測試生來就是不同的活動。所以,不管是程序員還是開發(fā)團隊都應當避免測試自己的程序或者本團隊開發(fā)的功能模塊。如果有條件的話,應當由獨立于開發(fā)組和客戶的第三方測試組或測試機構來進行軟件測試。因為人類的活動具有高度的目的性,建立適當?shù)哪繕司哂兄匾男睦碜饔?。如果我們的目的是要證明程序中沒有錯誤,那我們就會不自覺地朝這個方向去做;也就是說,我們會傾向于挑選那些使程序出錯的可能性較小的測試數(shù)據(jù)?;蛘哂捎诔绦騿T對問題的敘說和說明有誤解而產生的錯誤,這種情況讓程序員測試自己的程序是不可能發(fā)現(xiàn)問題的。
2.2 在軟件測試中,確定預期輸出或結果是測試必要的,不可缺少的一部分,如果事先無法肯定預期的測試結果,往往會把看起來似是而非的結果當成正確的。同時還要注意各種輸入條件,無論合理與否。因為在實際使用中各種情況都有。
2.3 一定嚴格執(zhí)行軟件測試計劃,禁止軟件測試的隨意性,這樣就可以避免軟件交付后出現(xiàn)問題,這樣也可以改善測試的效率和有效性。
2.4 軟件測試并不等于程序測試,軟件測試貫穿于軟件定義和開發(fā)的整個過程,因此,需求分析、概要設計和程序編碼等各階段所得到的文檔都是軟件測試的對象。
2.5 必須檢查每一個測試結果,事實上在最終發(fā)現(xiàn)的錯誤中,有相當一部分在前邊的測試中已經顯露了出來,但是由于人們沒有認真檢查先前的測試結果而遺漏了。
2.6 為了提高對程序重新測試的效率,尤其是在對程序作了修改后,為了減少測試工作量和成本,除了對真正沒有用的程序外,一定不要扔掉測試用例,測試用例代表了一定的價值投資。
3 軟件測試自動化工具的選擇
隨著軟件規(guī)模不斷擴大,軟件的復雜度不斷加大,采用手工測試軟件已經不能適應要求。采用電子自動化測試技術對于人工而言,能更好地保證測試的準確度,而且大大提高了測試的效率,加快軟件的開發(fā)速度。因此,軟件自動化測試應用越來越廣泛,目前,自動測試是軟件測試的一個重要組成部分,它能完成許多手工測試無法實現(xiàn)或難以實現(xiàn)的測試,從而提高軟件質量,節(jié)省經費,縮短軟件發(fā)布周期。在自動化測試中,首先我們要根據(jù)要求來合理選擇測試工具,測試工具的價格在開發(fā)資金中占有較高的比例,從成本角度必須考慮,而且它參加了測試的大部分活動,影響測試的準確性和效率。根據(jù)測試方法不同,測試工具有黑盒和白盒兩種;而從測試目的和對象的角度區(qū)分亦可分為:單元測試、性能測試、功能測試、負載測試等。
在測試中,對于測試工具的選擇,并非測試功能越強大越好,有一個前提,那就是必須適用,而且必須滿足兼容性,能夠支持不同的運行平臺,能對不同的腳本進行測試,同時對待測試的腳本具有追蹤報道、錯誤定位的功能;再次,擁有測試結果總結功能,能夠將測試結果以圖表的形式展示出來,相對于一般的結果表述形式,圖標表示更直觀。更容易讓人理解、信服,可以及時對測試結果進行分析。一般還要從功能、價格、測試工具的集成能力、測試工具的易用性、側重點、技術支持等多方面考慮。
4 結束語
軟件測試有其自身的特點。軟件測試的目的不是為了僅僅找出錯誤,而是通過它發(fā)現(xiàn)錯誤、分析錯誤,找到錯誤的分布特征和規(guī)律,從而幫助項目管理人員發(fā)現(xiàn)當前所采用的軟件開發(fā)過程的缺陷,以便改進;同時也能夠通過設計有針對性的檢測方法,改善軟件測試的有效性。即使測試沒有發(fā)現(xiàn)任何錯誤,也是十分有價值的,因為完整的測試不僅可以給軟件質量進行一個正確的評價,而且是提高軟件質量的重要方法之一。并以此來最終提高軟件產品的質量和企業(yè)的經濟效益,加強軟件企業(yè)的核心競爭力。
參考文獻:
[1]史濟民.軟件工程原理方法與應用[M].北京:高等教育出版社,2001.
[2]張海藩.軟件工程導論[M].北京:清華大學出版社,1997.
[3]佘健明,等編著.工程咨詢概論.中國計劃出版社,2007,11轉
[4]Sam Guckenheimer.The Revolution in Software Testing. Rational Software.2002.
[5]James Newkirk Robot C.Martin. Extreme Programming in practice中文版.人民郵電出版,2002年6月出版.
[6] Ron Patton 著.軟件測試.周予檳,姚靜等譯.機械工業(yè)出版社,2002.
[7]崔啟亮著.國際化軟件測試.電子工業(yè)出版社.2006.4.
[8]孫建.軟件測試工具的研究與建立.浙江大學,2006.
[9]Ann Scblosser.The experience and Web site success[J].The E_business Review,2003,41(6):20.
看了“軟件工程師評職稱論文”的人還看: