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