第一章 軟件測試的任務(wù)_第1頁
第一章 軟件測試的任務(wù)_第2頁
第一章 軟件測試的任務(wù)_第3頁
第一章 軟件測試的任務(wù)_第4頁
第一章 軟件測試的任務(wù)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章

軟件測試的任務(wù)本章要點討論軟件測試的背景,包括

缺陷是什么軟件測試的定義和目的軟件測試工程師工作職責(zé)工作流程工作產(chǎn)品職業(yè)道德易混淆的專業(yè)術(shù)語軟件測試方法和應(yīng)用》

1-2軟件中的錯誤是客觀存在的原因在可以預(yù)見的未來,人仍將是軟件開發(fā)中的主角。我國有句古話“人非圣賢孰能無過”,由于在軟件開發(fā)各個環(huán)節(jié)中產(chǎn)生的人為錯誤,使得軟件中必然存在著大大小小的問題,而這些問題在一定的觸發(fā)條件下被激活,便會使軟件的運行出現(xiàn)差錯,導(dǎo)致或大或小的經(jīng)濟損失,而且更為嚴重的是這些激活的錯誤可能會威脅人類生命,會導(dǎo)致令人痛心疾首的人間悲劇。軟件測試方法和應(yīng)用》

1-3缺陷是什么定義到目前為止,沒有標(biāo)準的定義,不同組織對缺陷的定義不同。有的組織稱缺陷為偏差、異常、故障、錯誤或事故。在實際活動中,不用太在意缺陷的到底該怎么叫,最重要的對缺陷有相同的理解在軟件測試中,有一組專門用于描述軟件中的錯誤的術(shù)語,下面的一些定義已經(jīng)被大多數(shù)專業(yè)人員所接受軟件錯誤:在軟件生存期內(nèi)的不希望或者不可接受的人為錯誤。軟件缺陷:存在于軟件(文檔、數(shù)據(jù)、程序)之中的那些不希望或不可接受的偏差,Bug是口語化的缺陷。缺陷在沒有被激活的狀態(tài)下,軟件可以正常運行,但是一旦在某一觸發(fā)條件下,缺陷被激活,軟件內(nèi)部就會出現(xiàn)故障。軟件測試方法和應(yīng)用》

1-4缺陷是什么定義下面的一些定義已經(jīng)被大多數(shù)專業(yè)人員所接受軟件故障:軟件運行過程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài)。此時,如果沒有適當(dāng)?shù)奶幚泶胧┑脑?,軟件故障就會?dǎo)致軟件失效。軟件失效:軟件運行時產(chǎn)生的一種不希望或不可接受的外部行為結(jié)果。比如死機就是一種嚴重的軟件失效。軟件失效是軟件用戶所能直接感受到的。當(dāng)軟件出現(xiàn)失效時,必然說明軟件中存在缺陷軟件測試方法和應(yīng)用》

1-5缺陷的代價缺陷的代價是非常高昂的經(jīng)濟上一項統(tǒng)計數(shù)據(jù)表明,大約62%的項目成本用于修復(fù)軟件缺陷。據(jù)美國NIST在2002年發(fā)布的一項研究估計,美國經(jīng)濟每年因軟件Bug會損失600億美金,約合0.6%的國民生產(chǎn)總值對人類生命的威脅軟件測試方法和應(yīng)用》

1-6結(jié)論結(jié)論軟件已經(jīng)越來越多的被使用在日常生活中,我們需要更多的高質(zhì)量、高可靠性、高安全性的軟件產(chǎn)品,但是缺陷,軟件世界中的“恐怖分子”,影響著軟件的質(zhì)量,威脅著軟件的正常運行。我們無法避免人類犯錯,但是可以通過努力將隱藏在軟件中的缺陷,尤其是那些致命的,嚴重的缺陷,盡可能多地尋找出來,盡早定位,盡早解決,避免人間悲劇一次又一次地上演。尋找軟件中的缺陷就是軟件測試的主要目的,承擔(dān)這個使命的就是軟件測試工程師。軟件測試方法和應(yīng)用》

1-7軟件測試是什么定義到目前為止,沒有標(biāo)準的定義不同組織有不同的定義下面的一些定義被大多數(shù)專業(yè)人員所接受[Myers]程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程[BillHetzel]

測試是以評價一個程序或者系統(tǒng)屬性為目標(biāo)的任何一種活動,測試是對軟件質(zhì)量的度量請記住軟件測試的目的就是發(fā)現(xiàn)軟件中的缺陷測試對象不只包括程序代碼,也包括與軟件相關(guān)的交付件軟件測試方法和應(yīng)用》

1-8軟件測試的目標(biāo)目標(biāo)軟件測試的目的就是尋找軟件中的缺陷為了獲得更高質(zhì)量的軟件,軟件測試的目標(biāo)是盡量多的尋找軟件中的缺陷另外,考慮到測試成本,軟件測試的目的是在可允許的時間跨度內(nèi)可管理的工作量的條件下盡可能多地尋找軟件中的缺陷軟件測試方法和應(yīng)用》

1-9軟件測試方法的分類通常有如下幾種分類:站在對被測對象內(nèi)部實現(xiàn)情況了解程度的角度:白盒測試、灰盒測試和黑盒測試;站在是否執(zhí)行被測系統(tǒng)的角度:靜態(tài)測試和動態(tài)測試;站在測試工具支持的程度:手工測試和自動測試;站在被測內(nèi)容的角度:功能測試、結(jié)構(gòu)測試和非功能性測試;站在以顯示被測對象是否工作的角度:正向測試和反向測試;站在測試過程推進的角度:單元測試、集成測試、系統(tǒng)測試。軟件測試方法和應(yīng)用》

1-10白盒測試、灰盒測試和黑盒測試白盒測試(White-boxTesting)是指基于被測對象的內(nèi)部實現(xiàn)結(jié)構(gòu)進行測試的方法。黑盒測試(Black-boxTesting)是指把被測對象看成一個不透明的黑盒,在完全不考慮被測對象內(nèi)部實現(xiàn)的情況下進行測試的方法?;液袦y試(Grey-boxTesting)是白盒測試和黑盒測試的混合體,是指在部分了解被測對象實現(xiàn)的情況下進行測試的方法。。軟件測試方法和應(yīng)用》

1-11靜態(tài)測試和動態(tài)測試靜態(tài)測試(StaticTesting)是指不運行軟件系統(tǒng),而是通過采用檢查或者評審的方式尋找被測對象中的缺陷。動態(tài)測試(DynamicTesting)是指運行系統(tǒng)進行測試的過程。動態(tài)測試可能是大多數(shù)人認為的測試,即通過運行軟件進行的測試軟件測試方法和應(yīng)用》

1-12手工測試和自動測試手工測試(ManualTesting)是指在不借助測試工具的情況下,完全由人類完成對軟件產(chǎn)品的測試。自動測試(AutomatedTesting)是指通過測試工具或者其它手段,按照測試工程師的預(yù)定計劃對軟件產(chǎn)品進行自動的測試。。軟件測試方法和應(yīng)用》

1-13正向測試和反向測試正向測試(PositiveTesting)是指以驗證被測對象的正常行為為測試目標(biāo),根據(jù)其行為表現(xiàn)判斷被測對象中是否存在缺陷的一種測試方法。反向測試(NegativeTesting)是指以破壞被測對象的正常行為為測試目標(biāo),根據(jù)其行為表現(xiàn)判斷被測對象中是否存在缺陷。軟件測試方法和應(yīng)用》

1-14單元測試、集成測試和系統(tǒng)測試單元測試(UnitTesting)是指以構(gòu)成軟件的基本單位--單元為測試對象,驗證其功能是否正常,是否符合設(shè)計要求。集成測試(IntegrationTesting)是指將經(jīng)過單元測試的構(gòu)件按照設(shè)計要求組裝成子系統(tǒng)或系統(tǒng),以驗證按設(shè)計要求組合在一起的各單元能夠按照既定的意圖協(xié)作。系統(tǒng)測試(SystemTesting)是指將已經(jīng)集成好的軟件系統(tǒng),作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實際運行環(huán)境下,對應(yīng)用系統(tǒng)進行的一系列組裝和確認測試,以驗證系統(tǒng)是否符合用戶需求。軟件測試方法和應(yīng)用》

1-15功能測試、結(jié)構(gòu)測試和非功能測試功能測試(FunctionalTesting)是指依據(jù)功能需求規(guī)格說明書評估被測對象的功能是否符合需求。結(jié)構(gòu)測試(StructuredTesting)是指基于被測對象的內(nèi)部結(jié)構(gòu)或者邏輯尋找缺陷的測試活動。非功能性測試(NonfunctionalTesting)是指依據(jù)非功能需求規(guī)格說明書評估被測系統(tǒng)的某些整體屬性,例如性能測試、安全性、易用性等是否符合需求。軟件測試方法和應(yīng)用》

1-16功能測試vs黑盒測試

功能測試針對系統(tǒng)或者組件的功能進行的測試黑盒測試不考慮系統(tǒng)或者組件的內(nèi)部結(jié)構(gòu),僅關(guān)注系統(tǒng)或組件在特定輸入和一定條件所產(chǎn)生的輸出區(qū)別和聯(lián)系許多專業(yè)人士認為功能測試和黑盒測試是等同的兩個事物,我個人并不同意此觀點,黑盒測試是一種設(shè)計測試用例的方法而功能測試是測試的內(nèi)容,黑盒測試同樣可以用于性能、安全、易用性等非功能測試軟件測試方法和應(yīng)用》

1-17結(jié)構(gòu)測試vs白盒測試結(jié)構(gòu)測試基于內(nèi)部結(jié)構(gòu)或者邏輯尋找缺陷的測試過程白盒測試也叫玻璃盒測試、透明盒測試基于系統(tǒng)或者組件內(nèi)部實現(xiàn)方法尋找缺陷的測試方法區(qū)別和聯(lián)系白盒測試的方法一般可用于進行結(jié)構(gòu)測試軟件測試方法和應(yīng)用》

1-18軟件測試工程師的目標(biāo)目標(biāo)基于軟件測試的目標(biāo),軟件測試工程師的目標(biāo)就是發(fā)現(xiàn)軟件中的缺陷考慮到缺陷修正成本,軟件測試工程師的目標(biāo)是盡早發(fā)現(xiàn)程序中的缺陷缺陷被修正后,測試人員必須確認缺陷被修改正確,同時修改沒有引入新的缺陷,也就是說軟件測試工程師的目標(biāo)是盡早的發(fā)現(xiàn)軟件中的缺陷并確保缺陷被正確的修改軟件測試方法和應(yīng)用》

1-19軟件測試工程師如何進行測試方法根據(jù)軟件需求規(guī)格說明書,設(shè)計說明書,代碼等軟件產(chǎn)物選取恰當(dāng)?shù)妮斎虢M合(測試用例testcase)運行被測對象輸入數(shù)據(jù)執(zhí)行操作查看輸出結(jié)果是否和預(yù)期的結(jié)果一致,如果一致則認為被測對象沒有問題,否則,則認為被測對象中可能存在缺陷缺陷修改完畢,驗證缺陷修改,確認缺陷是否修改正確是否引入新問題軟件測試方法和應(yīng)用》

1-20軟件測試工程師的工作流程核心工作產(chǎn)品測試用例缺陷報告單其他重要的工作產(chǎn)品測試計劃測試策略測試報告。。。。軟件測試方法和應(yīng)用》

1-21測試用例是什么定義針對被測試項的測試輸入,執(zhí)行條件和預(yù)期結(jié)果的集合(是挑選出來的具有代表性的輸入組合)挑選輸入組合的方法就是測試用例設(shè)計方法測試用例是軟件測試的靈魂,體現(xiàn)著軟件測試工程師的職業(yè)價值測試用例可以用結(jié)構(gòu)化自然語言描述,也可以用編程語言實現(xiàn)軟件測試方法和應(yīng)用》

1-22為什么需要測試用例不可能進行完全的測試根本原因:輸入的組合數(shù)目太龐大輸出的可能結(jié)果數(shù)目太龐大可執(zhí)行的路徑數(shù)目太龐大結(jié)論為了進行聰明的測試,軟件測試工程師必須在眾多的數(shù)據(jù)中選取恰當(dāng)?shù)淖龃碥浖y試方法和應(yīng)用》

1-23如果你打算測試一個計算器程序的功能,你認為需要進行多少次輸入?不可能進行完全的測試結(jié)論是不計其數(shù)整型:從1+1到999999999999999999999999999999+999999999999999999999999999999小數(shù):1.0+0.1,1.0+0.2…等等鍵盤上的任何一種組合為乘法和除法運算重復(fù)上面的操作軟件測試方法和應(yīng)用》

1-24結(jié)論是:51+52+53+……+510=6.1*107,需要1分鐘左右的時間如果循環(huán)次數(shù)為20次,100次時,結(jié)果又如何?結(jié)論是:循環(huán)20次,需要約16000小時,循環(huán)100次則大約需要2.4*1048年不可能進行完全的測試123564789左圖是具有某程序的流程圖,假設(shè)循環(huán)10次,請計算一下有多少條程序執(zhí)行通路?假設(shè)由圖中得到的所有路徑都是可執(zhí)行路徑,執(zhí)行一次循環(huán)大約需要10微秒(奔騰41.7G),且一年365天每天24小時不停機,請回答:如果循環(huán)次數(shù)為10的話,遍歷圖中所有路徑需要多長時間?軟件測試方法和應(yīng)用》

1-25三角形問題[三角形問題]輸入三個整數(shù),這三個數(shù)分別代表三角形三條邊的長度,請判斷這三個數(shù)構(gòu)成的三角形是等邊三角形,等腰三角形還是不等邊三角形并輸出相應(yīng)的結(jié)果。軟件測試方法和應(yīng)用》

1-26測試用例實現(xiàn)(1)用例編號TestSample_ST_001優(yōu)先級P1測試項等邊三角形判定功能執(zhí)行條件程序可以正常運行測試過程運行程序isTriangle.class在第一條邊中輸入60,第二條邊中輸入60,第三條邊中輸入60單擊“告訴我結(jié)果l”按鈕預(yù)期結(jié)果等邊三角形實際執(zhí)行結(jié)果一個用自然語音實現(xiàn)的測試用例實例不同的組織可能使用不同的測試用例模版軟件測試方法和應(yīng)用》

1-27測試用例實現(xiàn)基于JUnit框架()用Java語言實現(xiàn)的一個測試用例軟件測試方法和應(yīng)用》

1-28高質(zhì)量測試用例的屬性高質(zhì)量測試用例的四個屬性有效性是否能夠發(fā)現(xiàn)缺陷或者至少可能發(fā)現(xiàn)缺陷仿效性衡量測試用例的代表程度,減少測試用例的數(shù)量經(jīng)濟性測試用例所花費的成本,包括設(shè)計、實現(xiàn)、調(diào)試和運行測試用例的成本可維護性修改和維護測試用例的難易程度軟件測試方法和應(yīng)用》

1-29缺陷報告單定義缺陷問題報告單是描述缺陷細節(jié)的文檔,包括缺陷的編號、被測軟件及其版本、優(yōu)先級、嚴重程度、誰來修復(fù)缺陷等等優(yōu)良的缺陷報告應(yīng)該具備準確、清晰、簡潔、完整,統(tǒng)一的特點,還需要注意給每個缺陷問題報告單分配一個唯一的標(biāo)識以有利于缺陷的后續(xù)處理、查詢和管理維護等活動。站在為他人服務(wù)的立場上編寫缺陷問題報告單注意語句措詞,不要涉及對他人的評價和自己情緒的宣泄只報告問題不要試圖解決問題一個缺陷問題報告單里只報告一個缺陷漏軟件測試方法和應(yīng)用》

1-30缺陷問題報告單示例缺陷問題報告單張三軟件測試方法和應(yīng)用》

1-31軟件測試工程師職業(yè)道德規(guī)范建議恪守職業(yè)道德,始終維護所在組織的利益,不能因為個人利益,損害甚至出賣組織具備團隊合作精神,在工作中樹立為他人服務(wù)的意識,始終銘記軟件項目不是個人作品,而是整個團隊密切合作的產(chǎn)物,當(dāng)同事們尋求幫助時,應(yīng)盡最大可能伸出援助之手。具備誠實的品德,實事求是。不能為了個人績效進行具有欺騙性的活動,如偽造測試數(shù)據(jù),對發(fā)現(xiàn)的缺陷夸大其辭等。軟件測試方法和應(yīng)用》

1-32軟件測試工程師職業(yè)道德規(guī)范建議良好的溝通能力。軟件測試工程師的工作是挑別人的毛病,這注定測試人員不會太受團隊中其他成員的歡迎,尤其是開發(fā)人員。兩者經(jīng)常會因為發(fā)現(xiàn)的缺陷究竟是不是真的缺陷而發(fā)生沖突。軟件開發(fā)工程師,出于本能,會為自己的作品辯解不承認測試工程師找到的缺陷是自己的問題或者認為這就是一個功能,而軟件測試工程師,出于職業(yè)責(zé)任感,會堅持自己的意見,此時,如果不適當(dāng)運用一些溝通技巧,很可能將形成一個互不相讓的僵局。在這種情況下,軟件測試工程師不防站在開發(fā)人員的角度思考一下并選擇恰當(dāng)?shù)姆绞竭M行表達。適當(dāng)?shù)挠哪赡軙浅S袔椭\浖y試方法和應(yīng)用》

1-33軟件測試工程師職業(yè)道德規(guī)范建議始終秉持任何軟件都存在缺陷的工作態(tài)度。軟件測試工程師不能因為自己的想當(dāng)然或崇拜心理主觀地認為被測系統(tǒng)中問題很少或者不會有問題。如果是這樣的話,根據(jù)心理學(xué)研究的結(jié)果,那么很可能遺漏本應(yīng)被發(fā)現(xiàn)的缺陷。認真負責(zé)仔細耐心。缺陷經(jīng)常會把自己隱藏在角落里,為了發(fā)現(xiàn)缺陷,測試工程師很可能重復(fù)相同的操作很多次,如果沒有耐心半途而廢或者思想有松懈的話,缺陷也許就從會悄悄地溜走。軟件測試方法和應(yīng)用》

1-34軟件測試工程師職業(yè)道德規(guī)范建議只要是缺陷不論大小一定要報告。客戶和用戶會因為系統(tǒng)中竟然會存在類似于頁面中的錯別字、文本框沒有左對齊或是語句不太通順等很明顯的小錯誤而大動肝火,會認為連這種小問題都沒有辦法杜絕,系統(tǒng)有何可信而言。另外,一旦測試工程師報告了所發(fā)現(xiàn)的缺陷,如果沒有確切的理由,那么就要堅持到底所提的缺陷是一個缺陷,不能因為開發(fā)人員的態(tài)度或者自己自信心的缺乏而退縮。報告不可重現(xiàn)的缺陷。不可重現(xiàn)問題的背后很可能隱藏著系統(tǒng)致命的缺陷,一旦被激活會導(dǎo)致系統(tǒng)運行的不穩(wěn)定甚至宕機。對于這類缺陷,軟件測試工程師有責(zé)任提出并且協(xié)助開發(fā)人員重現(xiàn)定位。軟件測試方法和應(yīng)用》

1-35軟件測試工程師職業(yè)道德規(guī)范建議不斷充實專業(yè)知識,總結(jié)工作經(jīng)驗。在目前的IT界里,不跟進先進的專業(yè)知識是一種落后,不重復(fù)優(yōu)良的工程經(jīng)驗是一種浪費,這條規(guī)則對軟件測試工程師也不會例外。軟件測試方法和應(yīng)用》

1-36術(shù)語軟件測試中幾組易混淆的術(shù)語測試和調(diào)試(Testinganddebugging)驗證和確認(VerificationandValidation)動態(tài)測試和靜態(tài)測試(DynamictestingandStatictesting)功能測試和黑盒測試(FunctionalTestingandblack-boxTesting)結(jié)構(gòu)測試和白盒測試(StructuralTestingandWhite-BoxTesting)測試和質(zhì)量保證(TestingandQualityAssurance)軟件測試方法和應(yīng)用》

1-37測試和調(diào)試測試測試的目的是為了尋找缺陷調(diào)試調(diào)試是為了發(fā)現(xiàn)、定位和修改程序代碼中的錯誤調(diào)試的目的是為了排錯區(qū)別和聯(lián)系測試為了尋找缺陷,調(diào)試為了排除缺陷可能存在這樣的工作流程:測試發(fā)現(xiàn)缺陷調(diào)試定位缺陷和修改缺陷測試驗證缺陷是否修改正確軟件測試方法和應(yīng)用》

1-38驗證和確認驗證評估系統(tǒng)或組件的過程以確定在給定的開發(fā)階段是否

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論