軟件測(cè)試之捉蟲記-大容量Web應(yīng)用性能測(cè)試與LoadRunner實(shí)戰(zhàn)_第1頁(yè)
軟件測(cè)試之捉蟲記-大容量Web應(yīng)用性能測(cè)試與LoadRunner實(shí)戰(zhàn)_第2頁(yè)
軟件測(cè)試之捉蟲記-大容量Web應(yīng)用性能測(cè)試與LoadRunner實(shí)戰(zhàn)_第3頁(yè)
軟件測(cè)試之捉蟲記-大容量Web應(yīng)用性能測(cè)試與LoadRunner實(shí)戰(zhàn)_第4頁(yè)
軟件測(cè)試之捉蟲記-大容量Web應(yīng)用性能測(cè)試與LoadRunner實(shí)戰(zhàn)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 什么是軟件測(cè)試由安博測(cè)試空間技術(shù)中心在我國(guó)宋代,有一位叫宋慈的法醫(yī)學(xué)家寫了一本洗冤集錄。在書中,他講述了很多斷案的經(jīng)驗(yàn),其中有一個(gè)用銀針驗(yàn)毒的方法至今仍廣為流傳。比如在很多電視劇中,我們能經(jīng)??吹交实墼谶M(jìn)膳的時(shí)候,由于害怕被人暗害,總要讓可憐的太監(jiān)或者宮女先用銀筷子嘗上幾口飯菜,沒(méi)有出現(xiàn)問(wèn)題再正式用餐。這種用銀針進(jìn)行的試驗(yàn)就可以說(shuō)是一種測(cè)試的雛形吧,銀針充當(dāng)了測(cè)試工具,而太監(jiān)或者宮女就是古代的測(cè)試工程師。時(shí)光飛逝。隨著科技的發(fā)展,我們生活周圍有了越來(lái)越多的產(chǎn)品,它們?cè)诔鰪S銷售前都要進(jìn)行測(cè)試,不僅要保證功能完好,還要確保對(duì)使用者的傷害在允許范圍內(nèi)。因此在工廠里,逐漸出現(xiàn)了這樣一個(gè)部門,由

2、它來(lái)負(fù)責(zé)檢驗(yàn)產(chǎn)品,被稱之為質(zhì)量檢驗(yàn)或者質(zhì)量保 證部。上個(gè)世紀(jì)中后期,軟件出現(xiàn)了,它作為人們?nèi)粘I钪刑焯於紩?huì)使用的產(chǎn)品,同樣也需要質(zhì)量的保證。有一種誤解:軟件的質(zhì)量問(wèn)題并不那么重要,比如Windows等操作系 統(tǒng),各種桌面的應(yīng)用軟件,像IE瀏覽器,如果它出現(xiàn)了問(wèn)題,程序會(huì)失去響應(yīng)甚至嚴(yán)重的系統(tǒng)會(huì)藍(lán)屏,那么只需要在任務(wù)管理器中將它刪掉就可以了,最多重新啟動(dòng)電腦,一般都能夠繼續(xù)使用。這只是一方面,另一方面,有很多非常重要的軟件在我們看不見(jiàn)的地方默默地運(yùn)行著,如果它們出現(xiàn)了問(wèn)題,影響就很大了。為了說(shuō)明軟件質(zhì)量的重要性,這里舉一個(gè)比較著名的軟件質(zhì)量造成的事故。1962年,美國(guó)的航海家1號(hào)(Marine

3、r 1)火箭升空,由于控制火箭的軟件出現(xiàn)問(wèn)題,直接導(dǎo)致火箭升空后因偏離軌道而被迫引爆,造成當(dāng)時(shí)1800萬(wàn)美元的損失。事后查明,是程序員在編寫軟件代碼時(shí),誤寫了其中一個(gè)公式的上標(biāo)造成軌道計(jì)算失誤的。因此,軟件公司也需要質(zhì)量保證部門。我們把該部門的組成人員稱為QA工程師,QA即Quality Assurance質(zhì)量保證的簡(jiǎn)稱。軟件是否符合質(zhì)量是通過(guò)測(cè)試來(lái)驗(yàn)證的,因此他們也被稱為軟件測(cè)試工程師。在本書中您即將遇到的各種行為,絕大多數(shù)都將是軟件測(cè)試工程師在工作中所要實(shí)現(xiàn)和完成的。1.1 軟件開發(fā)的基本知識(shí)對(duì)于每一位進(jìn)入軟件測(cè)試行業(yè)的新人來(lái)講,公司的入職培訓(xùn)是一個(gè)很好的學(xué)習(xí)機(jī)會(huì)。1.1.1 軟件開發(fā)公司

4、技術(shù)部門的基本結(jié)構(gòu)可將軟件測(cè)試部門類比于工廠車間的質(zhì)量保證部門,那么顯而易見(jiàn),如果在工廠中要做好質(zhì)量控制的工作,必須熟悉本廠生產(chǎn)的產(chǎn)品和流程。換句話來(lái)說(shuō),作為軟件生產(chǎn)的參與者,了解被測(cè)試的軟件也是非常重要的一件事情。這也正是經(jīng)理要求小白在短期內(nèi)盡快熟悉的內(nèi)容?!臼裁词擒浖恐袊?guó)大百科全書中對(duì)軟件的定義是:軟件是計(jì)算機(jī)系統(tǒng)中的程序和相關(guān)文件或文檔的總稱。軟件是從英文Software翻譯過(guò)來(lái)的名詞,與硬件(Hardware)相對(duì)應(yīng)。因此,軟件開發(fā)公司就是制造這些程序和相關(guān)文件或文檔的商業(yè)機(jī)構(gòu)。一般來(lái)說(shuō),軟件開發(fā)公司的技術(shù)部門由幾個(gè)子部門或者角色組成:開發(fā)部門、測(cè)試部門、部門經(jīng)理或者項(xiàng)目經(jīng)理,另外有

5、的公司還有技術(shù)支持部門。對(duì)應(yīng)于傳統(tǒng)行業(yè),分別相當(dāng)于生產(chǎn)車間,質(zhì)量控制部門,部門經(jīng)理和售后服務(wù)部門。如表1-1列出了常見(jiàn)軟件開發(fā)公司技術(shù)部門的不同職責(zé)。表1-1 常見(jiàn)軟件開發(fā)公司技術(shù)部門的角色分類部 門職 責(zé)軟件開發(fā)部門開發(fā)軟件:確定軟件實(shí)現(xiàn)方法,編寫軟件程序代碼軟件測(cè)試部門測(cè)試軟件:確定測(cè)試方法,編寫自動(dòng)測(cè)試軟件的代碼,手工測(cè)試軟件,記錄并跟蹤軟件Bug技術(shù)總監(jiān)或項(xiàng)目經(jīng)理在所屬或其他部門之間溝通,協(xié)調(diào)項(xiàng)目或者開發(fā)測(cè)試進(jìn)度,為成員提供各種資源技術(shù)支持部門軟件開發(fā)完成后在客戶處部署產(chǎn)品,并解決與反饋使用中出現(xiàn)的問(wèn)題Web應(yīng)用是一種特殊的軟件。那么開發(fā)Web應(yīng)用的網(wǎng)站與一般的軟件開發(fā)公司有什么不同呢

6、?對(duì)于小白所處的商業(yè)網(wǎng)站來(lái)說(shuō),網(wǎng)站程序和相關(guān)文件或文檔也可以稱之為軟件,其技術(shù)部門的結(jié)構(gòu)也和軟件開發(fā)公司基本類似,但是各部門日常工作的方式則有所不同。q 商業(yè)網(wǎng)站每天都要有很多頁(yè)面的更新,每次更新后當(dāng)時(shí)瀏覽網(wǎng)站的人立即可以看到;而軟件開發(fā)公司一般一年或者幾年推出一個(gè)產(chǎn)品,在產(chǎn)品沒(méi)有上市的時(shí)間內(nèi),用戶只能使用舊的版本。也就是說(shuō)網(wǎng)站軟件的變化要比軟件開發(fā)公司頻繁,網(wǎng)站軟件的開發(fā)與用戶使用處于同一時(shí)間段內(nèi)。q 商業(yè)網(wǎng)站以服務(wù)器為核心,網(wǎng)站軟件主要運(yùn)行在服務(wù)器上;而軟件開發(fā)公司的產(chǎn)品主要運(yùn)行在用戶的電腦上?!狙莩獣?huì)與專輯】商業(yè)網(wǎng)站與軟件開發(fā)公司的運(yùn)作模式有點(diǎn)類似于歌手開演唱會(huì)和發(fā)專輯的區(qū)別。在演唱會(huì)上

7、,歌手與觀眾的互動(dòng)性更強(qiáng),每一個(gè)細(xì)節(jié)的變化也都能被觀眾捕捉到;而歌手專輯則相當(dāng)于軟件產(chǎn)品的某個(gè)版本,是提前制作完成之后再上市銷售的。1.1.2 軟件危機(jī)小白在熟悉了技術(shù)部門的大致結(jié)構(gòu),網(wǎng)站與軟件開發(fā)公司的區(qū)別之后,經(jīng)理開始介紹和軟件測(cè)試相關(guān)的背景知識(shí)。軟件危機(jī)就是產(chǎn)生軟件測(cè)試這一職業(yè)的重要推動(dòng)力之一。從20世紀(jì)50年代以來(lái),軟件的規(guī)模越來(lái)越大,復(fù)雜性也越來(lái)越高,另外,在20世紀(jì)80年代,伴隨著計(jì)算機(jī)的普及和應(yīng)用需求的飛速增長(zhǎng),互聯(lián)網(wǎng)開始蓬勃興起?,F(xiàn)在,現(xiàn)代人的生活已經(jīng)越來(lái)越依賴各種各樣的軟件,軟件不再是大學(xué)實(shí)驗(yàn)室里科學(xué)家的工具,而成為我們生活的一部分。從操作系統(tǒng),比如每一臺(tái)個(gè)人電腦所安裝的Wi

8、ndows XP或者Vista系統(tǒng),到小小的桌面程序一個(gè)簡(jiǎn)單的連連看小游戲,再到Google網(wǎng)站上可以編輯的在線文檔工具,軟件的開發(fā)、管理、維護(hù)的復(fù)雜性和高成本現(xiàn)象也日益突出,在某一段時(shí)期,暴露了很多問(wèn)題。因此在20世紀(jì),有人提出了“軟件危機(jī)”的說(shuō)法,來(lái)說(shuō)明這種現(xiàn)象?!拒浖?fù)雜性的類比】其實(shí)我們中國(guó)人是很容易理解軟件復(fù)雜性的。一些在人口少的國(guó)家不成為問(wèn)題的問(wèn)題,放在十幾億人口的環(huán)境中,就會(huì)產(chǎn)生不大不小的麻煩,比如每年的春運(yùn)需要火車票的人是如此之多,而火車的座位是固定數(shù)量的;需要回家的人的分布是如此之廣,而火車站的位置也是固定的。依此類比,當(dāng)軟件的代碼量越來(lái)越龐大,要滿足的需求越來(lái)越廣泛時(shí),出現(xiàn)

9、局部的危機(jī)是很容易理解的。1.1.3 軟件危機(jī)的幾個(gè)體現(xiàn)隨著軟件越來(lái)越復(fù)雜,質(zhì)量越來(lái)越難于控制,于是出現(xiàn)了所謂“軟件危機(jī)”。具體而言,軟件危機(jī)有以下幾個(gè)體現(xiàn)。q 軟件需求的增長(zhǎng)無(wú)法快速得到滿足。這一點(diǎn)在前文已經(jīng)有所講述。q 軟件生產(chǎn)成本變高,價(jià)格越來(lái)越昂貴。軟件的代碼量增加,所投入的人工成本,也就是軟件開發(fā)相關(guān)人員的成本也會(huì)增加,還要增加采用各種新技術(shù)的成本等。q 軟件生產(chǎn)進(jìn)度難于控制。q 軟件的用戶需求不容易定義。這一點(diǎn)也很重要:目前絕大多數(shù)的軟件已經(jīng)不止?jié)M足單一的需求,因此用戶真正所需要的不一定能夠完美地實(shí)現(xiàn)。q 軟件質(zhì)量不容易保證。這一點(diǎn)也是由軟件復(fù)雜度的增加而增加。還是舉春運(yùn)的例子,如

10、果火車上人人都有座位,那么每個(gè)人的心情都會(huì)很好;但如果到處擠滿了人,每位旅客回家的心情總會(huì)受到影響,從而影響對(duì)列車服務(wù)的評(píng)價(jià)。軟件質(zhì)量和用戶的評(píng)價(jià)同樣是相關(guān)的:經(jīng)常造成死機(jī)、異常退出或者按鈕單擊后沒(méi)有反應(yīng)的軟件,很難說(shuō)是質(zhì)量好的軟件。q 軟件可維護(hù)性變差。軟件同樣是需要維護(hù)的:一方面是對(duì)于用戶使用過(guò)程中的維護(hù),這一功能由客戶服務(wù)或者技術(shù)支持部門來(lái)完成;另一方面是對(duì)于軟件本身代碼和文件文檔的維護(hù),這一功能由開發(fā)部門或者測(cè)試部門來(lái)完成。隨著軟件的日益龐大,軟件本身經(jīng)歷的修改越來(lái)越多,管理維護(hù)軟件的各種版本變得日益困難。由于軟件危機(jī)有這么多的影響和危害,所以促使人們靜下心來(lái)研究軟件開發(fā)過(guò)程中的規(guī)律,

11、這就產(chǎn)生了軟件生命周期的概念。1.1.4 軟件生命周期軟件生命周期,英文為Software Lifecycle,就是軟件開發(fā)、使用和消亡的過(guò)程,具體而言,包含軟件需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)與測(cè)試和軟件發(fā)布、部署與維護(hù)這4個(gè) 過(guò)程。在商業(yè)軟件開發(fā)公司內(nèi)部,人們往往遵循一定的軟件生命周期模型,這樣和被開發(fā)軟件相關(guān)的所有人員都按照這個(gè)模型的標(biāo)準(zhǔn)或者步驟開展工作,統(tǒng)一行動(dòng),有助于提高生產(chǎn)效率,從而減少溝通和實(shí)施的成本,獲得更大的商業(yè)利益。而對(duì)于軟件生命周期的不同理解和劃分,就形成了不同的軟件生命周期模型。1.1.5 常見(jiàn)的軟件生命周期模型目前來(lái)講,主要的軟件生命周期模型有如下幾種。q Big-Ban

12、g:大爆炸模型。q Waterfall:瀑布模型。q Spiral:螺旋模型。q Code and Fix:邊做邊改模型。由于本書并不是以軟件工程為探討內(nèi)容,因此在這里只通過(guò)人們過(guò)河的類比來(lái)簡(jiǎn)單介紹一下前述這幾種軟件生命周期模型的特點(diǎn)。小學(xué)課本里有個(gè)寓言叫做“小馬過(guò)河”,小馬在過(guò)河前遇到了不同的小動(dòng)物,它們對(duì)于河水深度的理解是不同的,會(huì)導(dǎo)致小馬過(guò)河時(shí)的不同選擇,參見(jiàn)圖1-1。假設(shè)把待開發(fā)的軟件產(chǎn)品比喻為小馬面前橫著的那條小河,那么開發(fā)軟件的過(guò)程也就是過(guò)河的過(guò)程,那么如何過(guò)河就會(huì)有不同的結(jié)果。圖1-1 小馬過(guò)河:對(duì)河深度的理解影響過(guò)河的方法1.1.6 直接沖過(guò)河去的大爆炸模型大爆炸這個(gè)名稱來(lái)自于

13、天體物理有關(guān)宇宙形成方式的一種理論:宇宙是在億萬(wàn)年前的大爆炸中誕生的。與此類似,軟件開發(fā)公司把金錢、辦公場(chǎng)地和人員全部投入到一個(gè)產(chǎn)品的開發(fā)當(dāng)中,經(jīng)過(guò)一段時(shí)間,產(chǎn)品出爐,這樣的形式就是大爆炸模型。大爆炸模型的優(yōu)點(diǎn)就是簡(jiǎn)單,沒(méi)有很多的軟件設(shè)計(jì),對(duì)項(xiàng)目的管理也很少,目前不少小公司由于各方面的限制不得已或者不自覺(jué)地采用了這樣的開發(fā)模型。但是它的優(yōu)點(diǎn)也造成了它的缺點(diǎn):開發(fā)出來(lái)的軟件質(zhì)量不可控制。在這樣的模型中,由于沒(méi)有周密的計(jì)劃,軟件測(cè)試往往是在產(chǎn)品即將上市的前夕才開始,在很多公司中甚至沒(méi)有專職的測(cè)試工程師,由開發(fā)人員或者其他人員代勞,因此測(cè)試人員面對(duì)的產(chǎn)品與客戶、使用者要面對(duì)的產(chǎn)品基本一致。從前文所述

14、可以得知,在這樣的階段發(fā)現(xiàn)Bug,返工修改代碼的代價(jià)是非常大的。回到過(guò)河的比喻中來(lái),大爆炸模型就相當(dāng)于小馬先退后幾步,集中精力和能量,然后快速?zèng)_過(guò)去。這樣的結(jié)果取決于河的寬度和深度。如果軟件非常復(fù)雜,很可能過(guò)河的小馬半途就淹死了,無(wú)法到達(dá)對(duì)岸。1.1.7 摸著石頭過(guò)河的邊做邊改模型邊做邊改模型比起大爆炸模型來(lái)說(shuō)進(jìn)了一步。在開發(fā)軟件產(chǎn)品的開始階段,先有一個(gè)大概的設(shè)計(jì),然后開始編碼,測(cè)試,發(fā)現(xiàn)Bug,修改Bug這樣的循環(huán),直到整個(gè)產(chǎn)品的輪廓日漸清晰,最終完成產(chǎn)品。用一句俗話來(lái)描述,就是“摸著石頭過(guò)河”的過(guò)程:先以河里的一些石頭為支點(diǎn),走入河道,再經(jīng)過(guò)不斷的試探和返回得到一條路線,最終到達(dá)目 的地。

15、由此可見(jiàn),邊做邊改模型中測(cè)試的參與要比大爆炸模型中要早得多,而且也重要得多。邊做邊改模型的優(yōu)點(diǎn)就是適用于某些中小型項(xiàng)目的快速開發(fā),軟件產(chǎn)品的成果也會(huì)在最早的階段顯現(xiàn)出來(lái):和在岸邊冥思苦想如何過(guò)河的人相比,先站在河道里的石頭上,總是讓人看到更多的希望。【邊做邊改模型被較多采用】這種開發(fā)模型被大多數(shù)公司所采用,是大多數(shù)測(cè)試工程師在實(shí)際工作中最常遇到的開發(fā)模型之一。而且,它和最近幾年很流行的敏捷開發(fā)也有一定的關(guān)系。1.1.8 制定周密過(guò)河計(jì)劃的瀑布模型從現(xiàn)在開始,下面的這兩個(gè)模型就不適合小馬了,只有人和外星人才有這樣的能力。如圖1-2介紹了軟件開發(fā)的瀑布模型,由于圖中的箭頭好像瀑布的水流,從上至下,

16、因此得名。圖1-2 瀑布模型示意圖回到過(guò)河的例子中來(lái),瀑布模型過(guò)河具備如下特點(diǎn):q 過(guò)河前,首先花費(fèi)大部分的時(shí)間對(duì)河進(jìn)行詳細(xì)的勘察,選擇合適的下水點(diǎn),選擇合適的過(guò)河工具,制定詳細(xì)的分步驟過(guò)河計(jì)劃。q 一旦過(guò)河計(jì)劃制定,將不會(huì)大更改,開始過(guò)河。在河中完全按照計(jì)劃進(jìn)行,無(wú)法返回起點(diǎn)。這也是為什么稱此模型為瀑布的原因,瀑布是飛流直下三千尺,想從下面返回瀑布的頂端,何其難。q 在每步驟即將完成時(shí),都會(huì)對(duì)這一步驟進(jìn)行總結(jié),如果進(jìn)行下一步驟的條件不具備,將停留在原地,等待條件具備。瀑布模型看起來(lái)給人很專業(yè)的感覺(jué),所以,對(duì)于軟件開發(fā)人員有比較高的要求。q 要對(duì)待開發(fā)的軟件(或者要過(guò)的河)有細(xì)致、全面、準(zhǔn)確的

17、了解。如果理解錯(cuò)誤,將導(dǎo)致計(jì)劃失敗,沒(méi)有返回重來(lái)的機(jī)會(huì)。q 職業(yè)素質(zhì)、職業(yè)紀(jì)律要比較高。軟件開發(fā)人員要具備堅(jiān)定執(zhí)行計(jì)劃的能力。這種要求也就產(chǎn)生了瀑布模型的缺點(diǎn),那就是無(wú)法完美適應(yīng)當(dāng)今要求快速開發(fā)產(chǎn)品,從而占領(lǐng)市場(chǎng)的軟件行業(yè)現(xiàn)狀。因?yàn)橹贫ㄔ敿?xì)的、理解完整的計(jì)劃很難,聚合很多專業(yè)的開發(fā)人員有時(shí)候也很難,而市場(chǎng)對(duì)于軟件更新?lián)Q代的要求期限越來(lái)越短。為了適應(yīng)變化,人們又提出了螺旋模型。1.1.9 計(jì)劃趕得上變化的螺旋模型前文提到,為了適應(yīng)計(jì)劃和變化兩方面的因素,螺旋模型被提出。螺旋模型的示意如圖1-3所示。可以看到,它的確很類似一個(gè)螺旋。圖1-3 螺旋模型示意圖與邊做邊改模型類似,螺旋模型也具有循序漸進(jìn)

18、的特點(diǎn),對(duì)軟件最終實(shí)現(xiàn)什么不一定有完全確定的理解,而是摸著石頭先下水。但是在選擇過(guò)河的每一個(gè)石頭前經(jīng)過(guò)了周密的計(jì)劃和考慮,從這一點(diǎn)看,又類似瀑布模型??梢?jiàn),螺旋模型實(shí)際上是邊做邊改模型和瀑布模型的有機(jī)結(jié)合。螺旋模型有如下4個(gè)步驟。(1)確定項(xiàng)目目標(biāo)、可用資源、各種實(shí)現(xiàn)的方法,項(xiàng)目的各個(gè)階段。 (2)在某個(gè)階段中,確認(rèn)、解決當(dāng)前階段項(xiàng)目進(jìn)展中出現(xiàn)的風(fēng)險(xiǎn)。(3)評(píng)估各種方法,開發(fā)、測(cè)試代碼,實(shí)現(xiàn)當(dāng)前階段的目標(biāo)。(4)總結(jié)當(dāng)前階段,計(jì)劃下階段的目標(biāo)和實(shí)現(xiàn)方法,重復(fù)第(2)步。在圖1-3中螺旋線被兩條直線劃分成4個(gè)部分,分別是上述的4個(gè)步驟。在每一步驟中由于被直線切割會(huì)有多段曲線,每一段曲線就代表了在

19、不同階段中所進(jìn)行的相同某個(gè) 步驟?!韭菪P偷膬?yōu)點(diǎn)】由此可見(jiàn),螺旋模型是多次計(jì)劃,邊做邊改,這樣既保證了軟件開發(fā)任務(wù)的清晰,也降低了開始一次計(jì)劃,因?yàn)槔斫獠煌暾蛘呤袌?chǎng)變化后導(dǎo)致項(xiàng)目失敗的可能性。1.1.10 4種模型的總結(jié)前文講述了4種軟件開發(fā)模型,那么在具體項(xiàng)目開發(fā)中采取哪一種最好呢?答案是它們各有利弊,需要靈活采用。這幾種開發(fā)流程的優(yōu)缺點(diǎn)比較如表1-2所示。表1-2 4種軟件開發(fā)流程的優(yōu)缺點(diǎn)開發(fā)流程分類優(yōu) 點(diǎn)缺 點(diǎn)大爆炸模型簡(jiǎn)單,不用學(xué)習(xí)就會(huì)拍腦門的想法,產(chǎn)品質(zhì)量無(wú)法保證。盡量避免使用邊做邊改模型快速得到可運(yùn)行的版本計(jì)劃有些缺乏,導(dǎo)致版本前后變化較大??蛇x擇的模型之一瀑布模型計(jì)劃周密,專

20、業(yè),按部就班實(shí)現(xiàn)相對(duì)難于做到快速開發(fā),以搶占市場(chǎng)??蛇x擇的模型之一螺旋模型計(jì)劃變化同時(shí)考慮可選擇的模型之一當(dāng)然,在幾十年的軟件開發(fā)過(guò)程中,人們還提出了很多其他的開發(fā)模型,不過(guò),作為測(cè)試工程師,我們對(duì)這幾種主流模型有所了解就可以了。進(jìn)一步深入的內(nèi)容并不是本書所講述的范疇,讀者可以參看軟件工程的相關(guān)書籍。1.1.11 軟件開發(fā)的幾個(gè)階段不管采用哪一種開發(fā)模型,按照時(shí)間順序,所有的軟件開發(fā)項(xiàng)目都要經(jīng)歷如下4個(gè) 階段。(1)項(xiàng)目啟動(dòng)階段:了解客戶需求、配置相關(guān)資源。(2)項(xiàng)目設(shè)計(jì)階段:明確客戶需求,確立軟件開發(fā)、測(cè)試的方法。(3)項(xiàng)目執(zhí)行階段:開發(fā)與測(cè)試階段。(4)項(xiàng)目竣工階段:軟件的上市、后期維護(hù)與

21、技術(shù)支持。這一分類很好理解,下面再結(jié)合小白的工作場(chǎng)景,進(jìn)行展開介紹。(1)項(xiàng)目啟動(dòng)階段。這一階段一般技術(shù)人員參與較少,主要是市場(chǎng)部門,銷售部門,技術(shù)總監(jiān)、項(xiàng)目經(jīng)理等角色的參與:項(xiàng)目成本是多大,開發(fā)人員有多少,測(cè)試人員有多少,完成時(shí)間在什么時(shí)候等。(2)項(xiàng)目設(shè)計(jì)階段。這一階段主要參與者就是需求分析人員、開發(fā)人員、項(xiàng)目經(jīng)理和小白這樣的測(cè)試人員了。主要目的是確定軟件該如何做,做什么:開發(fā)人員利用何種技術(shù)開發(fā),測(cè)試工程師該如何測(cè)試該軟件,客戶如何使用該軟件等。這些問(wèn)題都要確定,形成各自的開發(fā)文檔、測(cè)試文檔和需求文檔等。(3)項(xiàng)目執(zhí)行階段。開發(fā)、測(cè)試以及對(duì)其的管理就是執(zhí)行,這一階段的參與者是開發(fā)人員、測(cè)

22、試人員和項(xiàng)目經(jīng)理。開發(fā)人員編寫程序代碼,進(jìn)行單元測(cè)試;測(cè)試人員編寫測(cè)試代碼、測(cè)試用例,進(jìn)行功能測(cè)試等多種測(cè)試。項(xiàng)目經(jīng)理控制進(jìn)度,協(xié)調(diào)各種資源,與設(shè)計(jì)人員溝通等。(4)項(xiàng)目竣工階段。當(dāng)項(xiàng)目執(zhí)行完畢的時(shí)候,依然要進(jìn)行部署、軟件光盤生產(chǎn)、客戶支持、升級(jí)補(bǔ)丁包開發(fā)和測(cè)試等多項(xiàng)工作。這階段主要的參與者是項(xiàng)目經(jīng)理,少量的開發(fā)人員和測(cè)試人員,售后技術(shù)支持人員、客戶服務(wù)人員等。1.1.12 軟件發(fā)布的方式按照目前的軟件發(fā)布方式,一般有RTM(Ready To Market,市場(chǎng)發(fā)布)、RTW(Ready To Web,在網(wǎng)絡(luò)上發(fā)布)、RTO(Ready To Operation,可以運(yùn)營(yíng))等多種方式。q RT

23、M方式需要在工廠進(jìn)行光盤的復(fù)制生產(chǎn),用戶購(gòu)買光盤后安裝。大部分的操作系統(tǒng)和應(yīng)用軟件采用這種方式的比較多。q RTW方式需要在網(wǎng)絡(luò)上提供下載鏈接,一般的軟件升級(jí)包或者游戲軟件采用這種方式的比較多。q RTO方式則很簡(jiǎn)單,在服務(wù)器上部署軟件產(chǎn)品,用戶購(gòu)買其中的某項(xiàng)或者多項(xiàng)服務(wù)即可,這是大部分網(wǎng)站或者在線游戲采用的方式。1.1.13 項(xiàng)目管理與甘特圖前面提到軟件項(xiàng)目的流程很重要,那么這種流程的控制一般是由項(xiàng)目經(jīng)理來(lái)完成的,他或者她所從事的這個(gè)工作叫做項(xiàng)目管理。小白所在的技術(shù)部門一般一周都要開一個(gè)例會(huì),在會(huì)上,開發(fā)部門、測(cè)試部門和項(xiàng)目經(jīng)理都要對(duì)上一周各自所做的工作進(jìn)行一番總結(jié),安排下周將要做的工作。在

24、這樣的例會(huì)上,同事們經(jīng)常會(huì)查看項(xiàng)目的進(jìn)度圖來(lái)進(jìn)行講解,他們把這樣的進(jìn)度圖稱為甘特圖(Gantt Chart)。如圖1-4顯示的是軟件開發(fā)過(guò)程中常用的項(xiàng)目管理工具M(jìn)icrosoft Office Project軟件(在這里是2003版本,最新為2007版本)運(yùn)行的界面,在其中我們可以清楚地看到軟件生命周期中的各個(gè)子任務(wù)的時(shí)間分配,負(fù)責(zé)人員和項(xiàng)目進(jìn)度的甘特圖。圖1-4 Project 2003中的甘特圖【甘特圖的來(lái)歷】甘特圖的名稱由發(fā)明者亨利·勞倫斯·甘特(Henry Laurence Gantt,18611919)而來(lái)。甘特早年從事的是電氣工程師的職業(yè),后來(lái)轉(zhuǎn)而從事管理業(yè)界的

25、咨詢。甘特圖是他在晚年發(fā)明的一種用于顯示項(xiàng)目計(jì)劃和進(jìn)度的圖表。在誕生的初期,甘特圖就被譽(yù)為20世紀(jì)20年代的最重要發(fā)明之一,廣泛應(yīng)用于一系列的大工程之中。比如1931年前后修建的美國(guó)胡佛水壩(如果你看過(guò)2007年的熱門電影變形金剛,那么對(duì)關(guān)押威震天的那個(gè)水壩應(yīng)該有印象,它就是胡佛水壩)。在軟件開發(fā)領(lǐng)域,很多公司也應(yīng)用甘特圖這一工具來(lái)進(jìn)行項(xiàng)目管理,比如著名的微軟公司。1.2 關(guān)于蟲子的故事在熟悉了公司的結(jié)構(gòu)、開發(fā)流程,參與了部門例會(huì)之后,小白要開始從事具體的軟件測(cè)試工作了,對(duì)于他來(lái)說(shuō),這一領(lǐng)域陌生而令人興奮。在剛上班的一周內(nèi),小白不斷地聽到周圍的測(cè)試工程師高興得喊道:“又發(fā)現(xiàn)Bug了!”,看著他

26、們那興奮的樣子,小白也有點(diǎn)躍躍欲試,想趕緊在捉蟲的戰(zhàn)場(chǎng)上大展身手。那么,什么是Bug呢,它為什么這么重要,發(fā)現(xiàn)Bug為什么這樣興奮?1.2.1 蟲子的來(lái)世今生在本章的序幕部分,我們已經(jīng)了解了很多由于軟件代碼的問(wèn)題使得事情失敗的案例了。它們有的后果真的很嚴(yán)重,甚至能夠造成對(duì)生命的威脅。這肯定不是軟件設(shè)計(jì)者和開發(fā)者想要達(dá)到的目標(biāo),因此,出現(xiàn)這樣的情況可以說(shuō)是軟件的錯(cuò)誤。細(xì)細(xì)的分起來(lái),軟件的錯(cuò)誤有如下幾個(gè)詞語(yǔ)來(lái)描述:缺陷、偏差、錯(cuò)誤、問(wèn)題、事故、異常。在這一堆詞語(yǔ)當(dāng)中,除了偏差之外,其他的詞語(yǔ)所造成的后果給人的感覺(jué)都相當(dāng)嚴(yán)重。所謂偏差,就是軟件在使用過(guò)程中,和軟件設(shè)計(jì)說(shuō)明(product speci

27、fication)所不一致的行為。那么為什么將這樣的軟件問(wèn)題稱為Bug呢?這里面還有一個(gè)故事?!臼飞系谝粋€(gè)軟件Bug】該詞的原意是“臭蟲”或“蟲子”。1947年9月9日,正值計(jì)算機(jī)剛剛被發(fā)明的時(shí)候,哈佛大學(xué)的某個(gè)計(jì)算機(jī)實(shí)驗(yàn)室正在做實(shí)驗(yàn)。由于當(dāng)時(shí)的原始計(jì)算機(jī)由很多龐大且昂貴的真空管組成,運(yùn)行時(shí)會(huì)產(chǎn)生光和熱,在下午15點(diǎn)45分的時(shí)候,一個(gè)飛蛾(英文是Moth)鉆入了真空管內(nèi),導(dǎo)致整個(gè)計(jì)算機(jī)無(wú)法工作。當(dāng)把這只小蟲子從真空管中取出后,計(jì)算機(jī)又恢復(fù)正常。后來(lái),蟲子的泛稱Bug這個(gè)名詞就沿用下來(lái),而那個(gè)被拍死的飛蛾也成為了歷史上發(fā)現(xiàn)的第一個(gè)Bug?!綛ug滲透到日常生活中】一般來(lái)說(shuō),擁有一定知識(shí)產(chǎn)權(quán)的產(chǎn)品

28、的錯(cuò)誤都能稱之為Bug。這方面有一個(gè)我們比較熟悉的例子就是電影。影迷們經(jīng)常議論某熱門電影中出現(xiàn)了所謂的“穿幫”鏡頭,比如在描述古代武俠的影片中天空掠過(guò)一架飛機(jī),主角剛才是右臉有傷痕,過(guò)一會(huì)變成左臉等。這樣的鏡頭也可以說(shuō)是Bug,甚至還有專門的網(wǎng)站來(lái)記錄這些影迷的細(xì)心發(fā)現(xiàn),比如。1.2.2 軟件Bug的5個(gè)要素前文籠統(tǒng)解釋了軟件Bug是軟件的錯(cuò)誤或者偏差。那么在具體的工作中,小白如何判斷軟件的行為是Bug呢?說(shuō)來(lái)簡(jiǎn)單,根據(jù)軟件設(shè)計(jì)階段形成的功能說(shuō)明書,英文為Specification Document,一般簡(jiǎn)稱Spec。對(duì)于具體的判斷標(biāo)準(zhǔn),經(jīng)理介紹了如下5個(gè)要素:q 軟件沒(méi)有實(shí)現(xiàn)說(shuō)明書中所列出的

29、功能。q 軟件出現(xiàn)了說(shuō)明書中提到不應(yīng)出現(xiàn)的事情。q 軟件實(shí)現(xiàn)了說(shuō)明書中沒(méi)有提到的功能。q 軟件沒(méi)有實(shí)現(xiàn)說(shuō)明書中沒(méi)有提到但應(yīng)該實(shí)現(xiàn)的功能。q 軟件非常難于學(xué)習(xí)、使用,運(yùn)轉(zhuǎn)速度很慢,用戶認(rèn)為無(wú)法達(dá)到預(yù)期。為了充分理解上述5個(gè)要素,小白自己打開了Windows系統(tǒng)中最簡(jiǎn)單的一款軟件Notepad,也就是我們平時(shí)“不屑于”用到的記事本程序,開始了自己的思考。1軟件沒(méi)有實(shí)現(xiàn)說(shuō)明書中所列出的功能對(duì)于“軟件沒(méi)有實(shí)現(xiàn)說(shuō)明書中所列出的功能是Bug”這一點(diǎn)是比較好理解的。如果打開記事本軟件,卻無(wú)法在其中輸入漢字,或者輸入了文本,無(wú)法保存成文件,那么肯定是一個(gè)很重要的Bug。2軟件出現(xiàn)了說(shuō)明書中提到不應(yīng)出現(xiàn)的事情對(duì)

30、于第2點(diǎn),“軟件出現(xiàn)了說(shuō)明書中提到不應(yīng)出現(xiàn)的事情也是Bug”,這一點(diǎn)和小白的性能測(cè)試工作有相對(duì)更緊密的關(guān)系。小白要測(cè)試的是公司的網(wǎng)站,它要求用戶在瀏覽網(wǎng)站時(shí)顯示頁(yè)面盡可能地快,如果超出5秒鐘則認(rèn)為是不可接受的。這個(gè)“超出5秒鐘”就是說(shuō)明書中提到不應(yīng)該出現(xiàn)的事情,實(shí)際出現(xiàn)后肯定是一個(gè)Bug,需要開發(fā)人員找出哪里耗費(fèi)了頁(yè)面顯示時(shí)間。在記事本程序中,如果程序保存文件時(shí)出現(xiàn)了程序崩潰(Crash)現(xiàn)象,即屬于此類。3軟件實(shí)現(xiàn)了說(shuō)明書中沒(méi)有提到的功能軟件實(shí)現(xiàn)了說(shuō)明書中沒(méi)有提到的功能也是Bug這一點(diǎn)可能有點(diǎn)難于理解。一個(gè)軟件,功能難道不是越多越強(qiáng)大嗎?其實(shí)不盡然,實(shí)現(xiàn)額外的功能有如下幾個(gè)缺點(diǎn),如表1-3

31、所示。表1-3 軟件實(shí)現(xiàn)說(shuō)明書中未提到功能所帶來(lái)的問(wèn)題缺 點(diǎn)說(shuō) 明代碼量增大由于代碼可能相互影響,因此這部分額外的功能可能對(duì)其他功能的實(shí)現(xiàn)造成影響,帶入新的Bug增加額外的開發(fā)、測(cè)試時(shí)間在軟件項(xiàng)目時(shí)間固定的情況下,導(dǎo)致投入到其他必備功能的開發(fā)測(cè)試時(shí)間減少,可能影響它們的完成質(zhì)量增加了成本,與軟件的宣傳不完全符合雖然用戶對(duì)于增加功能一般不會(huì)有意見(jiàn),但可能影響了公司的銷售策略和市場(chǎng)定位4軟件沒(méi)有實(shí)現(xiàn)說(shuō)明書中沒(méi)有提到但應(yīng)該實(shí)現(xiàn)的功能小白一般是將網(wǎng)上找到的有用文檔保存在隨身攜帶的U盤中。這一次,他在測(cè)試記事本程序的時(shí)候,同樣打算將文件保存在U盤上,可是由于連日來(lái)的文檔太多了,優(yōu)盤已經(jīng)沒(méi)有空間,記事本提

32、示無(wú)法保存,同時(shí)系統(tǒng)托盤有提示說(shuō)磁盤空間已滿。在這種情況下記事本的行為,就屬于實(shí)現(xiàn)了說(shuō)明書中沒(méi)有提到卻應(yīng)該實(shí)現(xiàn)的功能(在磁盤滿的情況下,給用戶以提示)。如果沒(méi)有提示,不符合絕大部分用戶的使用習(xí)慣,也是一個(gè)Bug。5軟件難于使用、性能差軟件是拿來(lái)用的,再好的界面使用不方便也不會(huì)產(chǎn)生多大效果。一個(gè)網(wǎng)站如果半天都打不開,很難想象還會(huì)有多少用戶會(huì)訪問(wèn)它。因此這樣的問(wèn)題也是Bug,而且對(duì)于性能測(cè)試來(lái)說(shuō),這一個(gè)規(guī)則很重要。1.2.3 發(fā)現(xiàn)蟲子的危害既然軟件Bug對(duì)產(chǎn)品造成了這么多的影響,那么發(fā)現(xiàn)它就顯得非常重要了。業(yè)內(nèi)人士都認(rèn)為,在軟件生命周期內(nèi)的不同階段發(fā)現(xiàn)Bug,所節(jié)省的成本是不同的,如圖1-5所示。

33、圖1-5 軟件生命周期內(nèi)各階段發(fā)現(xiàn)與改正Bug所需成本示意圖從圖中可以看出,在產(chǎn)品設(shè)計(jì)階段發(fā)現(xiàn)Bug要比在產(chǎn)品維護(hù)階段發(fā)現(xiàn)好得多,這是很好理解的。q 在需求分析階段,對(duì)于用戶需求的理解停留在需求文檔中,對(duì)其中理解不正確的部分只需要修改文檔即可以,基本不會(huì)產(chǎn)生什么成本。q 在軟件設(shè)計(jì)階段,發(fā)現(xiàn)的Bug很多都是設(shè)計(jì)思想的缺陷。由于尚未開始編碼,這樣的Bug一般需要進(jìn)行深入的討論最終獲得一種正確的結(jié)論,因此改正成本也 不高。q 在軟件編碼階段和測(cè)試階段,代碼通過(guò)開發(fā)人員和測(cè)試人員的努力在進(jìn)行不斷的完善,有關(guān)Bug的成本主要花費(fèi)在項(xiàng)目?jī)?nèi)部的溝通與時(shí)間成本方面。q 但是一旦產(chǎn)品發(fā)布,在軟件維護(hù)階段發(fā)現(xiàn)的

34、Bug,其修改成本會(huì)非常高昂:一是因?yàn)檐浖蔀榱讼到y(tǒng),與開發(fā)階段重點(diǎn)檢查各模塊功能相比更為復(fù)雜,尋找代碼上的產(chǎn)生Bug根源更加困難。特別是,如果前期工作沒(méi)有做好的話,甚至軟件產(chǎn)品的結(jié)構(gòu)都需要進(jìn)行大修改;二是因?yàn)闋砍兜牟块T明顯增加,比如客戶服務(wù)部門、產(chǎn)品部署部門、銷售部門等都要參與,導(dǎo)致公司內(nèi)部、公司與客戶之間的溝通成本急劇增加;第三點(diǎn)則是影響產(chǎn)品質(zhì)量與公司的信譽(yù)、未來(lái)產(chǎn)品的銷售?!厩晗x的問(wèn)題】在前幾年,有一個(gè)著名的蟲子把業(yè)內(nèi)攪得不可開交,那就是千年蟲問(wèn)題,也叫做2000年問(wèn)題。它是指在某些使用了計(jì)算機(jī)程序的智能系統(tǒng)(比如一般的計(jì)算機(jī)系統(tǒng)以及自動(dòng)控制芯片等)中,由于其中的年份沿用早期的設(shè)計(jì),只

35、使用2位十進(jìn)制數(shù)來(lái)表示,比如用80代表1980年,因此當(dāng)系統(tǒng)進(jìn)行(或者涉及到)跨世紀(jì)的日期處理運(yùn)算(比如計(jì)算1980年到2080年之間的日期)時(shí),就會(huì)出現(xiàn)錯(cuò)誤的結(jié)果,從而引發(fā)各種各樣的系統(tǒng)功能紊亂甚至系統(tǒng)崩潰。從千年蟲的實(shí)際例子中也可以看出,不考慮硬件上的限制,如果當(dāng)初在設(shè)計(jì)日期表示格式的時(shí)候能夠想得更長(zhǎng)遠(yuǎn)一些,就完全可以避免這個(gè)蟲子的發(fā)作,從而節(jié)省一大筆修改更新軟件等的費(fèi)用(據(jù)未經(jīng)證實(shí)的來(lái)自美國(guó)國(guó)際資料公司調(diào)查報(bào)告表明,光是1995年到1998年,全球捉“千年蟲”的開銷就已經(jīng)達(dá)到驚人的1840億美元)。1.3 軟件測(cè)試的定義與分類前文花費(fèi)了不少文字來(lái)講述Bug的定義、危害和判斷原則,本節(jié)將在

36、更廣的范圍內(nèi)介紹軟件測(cè)試的定義與分類。1.3.1 軟件測(cè)試的定義軟件測(cè)試就是利用一定的方法對(duì)軟件的質(zhì)量或者使用性進(jìn)行判斷和評(píng)估的過(guò)程。這一定義獲得了較廣泛的認(rèn)同。1.3.2 軟件測(cè)試工程師的工作內(nèi)容軟件測(cè)試是由軟件測(cè)試工程師來(lái)完成的,他們的主要工作內(nèi)容則是:q 尋找軟件中的Bug,并且是越早發(fā)現(xiàn)越好(原因見(jiàn)1.2節(jié))。q 確認(rèn)Bug的可重復(fù)性(Repro)以及Bug產(chǎn)生的步驟。q 確認(rèn)Bug是否被解決(Fixed)。q 測(cè)試方法、測(cè)試計(jì)劃、測(cè)試平臺(tái)、測(cè)試代碼、測(cè)試用例、測(cè)試文檔、測(cè)試報(bào)告的確定、編寫和執(zhí)行。對(duì)于小白這樣剛?cè)肼毜男氯藖?lái)說(shuō),主要工作就是前3項(xiàng)以及測(cè)試用例的編寫了。在1.4節(jié)將講述測(cè)

37、試用例的知識(shí)。1.3.3 軟件測(cè)試的分類軟件測(cè)試可以有很多種分類,常見(jiàn)的有如下一些:q 黑盒測(cè)試(Black box testing);q 白盒測(cè)試(White box testing);q 功能性測(cè)試(Functional testing);q 兼容性測(cè)試(Compatibility testing);q 性能測(cè)試(Performance testing);q 安全測(cè)試(Security testing);q 壓力測(cè)試(Stress testing)。雖然看起來(lái)很多很復(fù)雜,但是目前,小白所要做的工作就是先熟悉這些名詞,這樣在閱讀眾多的技術(shù)文檔時(shí),了解這些名詞屬于軟件測(cè)試的范疇就可以了。對(duì)于軟

38、件測(cè)試的兩個(gè)核心,則有必要在第1章詳細(xì)的介紹。這兩個(gè)核心分別是測(cè)試用例和測(cè)試工程師,分別代表了軟件測(cè)試的兩個(gè)方面:工具和人。1.4 軟件測(cè)試的核心I:測(cè)試用例前文提到,測(cè)試用例代表了軟件測(cè)試的工具方面,是它的核心之一。那么什么是測(cè)試用例,它又有哪些要點(diǎn)需要我們?nèi)フ莆眨?.4.1 什么是測(cè)試用例軟件測(cè)試的核心行為就是針對(duì)要測(cè)試的軟件設(shè)置測(cè)試用例。所謂測(cè)試用例,英文名為Test Case,是一個(gè)與程序部分行為以及輸入、輸出相關(guān)的描述或者標(biāo)識(shí)?!緶y(cè)試用例的IEEE定義】美國(guó)電氣與電子工程師協(xié)會(huì)(IEEE,The Institute of Electrical and Electronics Engi

39、neers),它出臺(tái)了一個(gè)標(biāo)準(zhǔn)的測(cè)試用例定義,即“測(cè)試用例是描述輸入實(shí)際值和預(yù)期輸出行為或者結(jié)果的文檔,它同時(shí)也標(biāo)識(shí)了測(cè)試過(guò)程結(jié)果與約束。”在實(shí)際工作中,花費(fèi)測(cè)試工程師大部分時(shí)間的,都是與測(cè)試用例相關(guān)的。1.4.2 測(cè)試用例的幾大要素一般來(lái)說(shuō),測(cè)試用例應(yīng)該清楚地描述出對(duì)被測(cè)試軟件發(fā)出什么數(shù)據(jù)或者條件,以及該輸入所期望的結(jié)果。在小白這樣的商業(yè)網(wǎng)站,測(cè)試部門規(guī)定測(cè)試用例應(yīng)該具備如下幾個(gè) 要素。1標(biāo)識(shí)符這一點(diǎn)雖然和測(cè)試用例的內(nèi)容沒(méi)有關(guān)系,但卻是測(cè)試過(guò)程中不可缺少的。比如,小白所在的部門每周都要開一次例會(huì),向經(jīng)理或者開發(fā)部門的同事說(shuō)明當(dāng)前整個(gè)產(chǎn)品的測(cè)試狀態(tài),有時(shí)候需要特別指出某個(gè)測(cè)試用例的內(nèi)容,那么用

40、一個(gè)簡(jiǎn)單的代號(hào)來(lái)代表這一測(cè)試用例是非常適合的,這個(gè)代號(hào)一般情況下都是一個(gè)正整數(shù),比如1、88、437等這樣。在小白所在的公司,測(cè)試用例是存放在一個(gè)數(shù)據(jù)庫(kù)中的,代號(hào)也就自然地采用了數(shù)據(jù)庫(kù)系統(tǒng)中的標(biāo)識(shí)符字段類型。如果采用其他的方式存儲(chǔ)測(cè)試用例,可以人工指定,只要保證標(biāo)識(shí)符不重復(fù)就可以了。如圖1-6顯示了應(yīng)用于真實(shí)測(cè)試場(chǎng)景的某測(cè)試用例文檔,它實(shí)際上是一個(gè)Office Word文件,測(cè)試工程師(即編寫者)在文件內(nèi)容中手工指定了各個(gè)測(cè)試用例的標(biāo)識(shí)符。圖1-6 測(cè)試用例的標(biāo)識(shí)符2測(cè)試的內(nèi)容測(cè)試內(nèi)容可以說(shuō)是測(cè)試用例最重要的部分,它一般指明了當(dāng)前測(cè)試用例的運(yùn)行目的,比如測(cè)試網(wǎng)頁(yè)是否可以打開、單擊按鈕后是否能夠

41、顯示正確的計(jì)算結(jié)果等。在很多情況下,測(cè)試內(nèi)容與下個(gè)要點(diǎn):輸入的條件區(qū)別并不是很清楚。3輸入的條件輸入條件可以是操作步驟,也可以是輸入的數(shù)據(jù),還可以是系統(tǒng)運(yùn)行環(huán)境的需求(比如處于某種特別的操作系統(tǒng)環(huán)境內(nèi)這一條件)。圖1-6中的各個(gè)測(cè)試用例,都詳細(xì)地寫明了每一步驟的具體操作?!緩?fù)現(xiàn)步驟】對(duì)于被測(cè)試軟件而言,不同的輸入條件會(huì)導(dǎo)致不同的輸出預(yù)期,因而可能出現(xiàn)的Bug表現(xiàn)并不一定相同。如果重復(fù)某些輸入條件,總會(huì)導(dǎo)致某個(gè)Bug的出現(xiàn),那么就把這些輸入條件稱為Bug的復(fù)現(xiàn)步驟(Repro Step)。4輸出的預(yù)期該項(xiàng)信息描述了在當(dāng)前的輸入條件下,預(yù)期的輸出。比如計(jì)算器程序中十進(jìn)制數(shù)字的2+3的輸出應(yīng)該等于5

42、。若輸出預(yù)期與實(shí)際結(jié)果不同,則應(yīng)該考慮為Bug的可能性(有的時(shí)候,輸出預(yù)期也會(huì)隨項(xiàng)目的進(jìn)度而變化,因此預(yù)期與實(shí)際不同并不意味著100%是Bug,此時(shí)需要與項(xiàng)目經(jīng)理等相關(guān)人員進(jìn)行協(xié)商)。5測(cè)試環(huán)境信息這一部分的內(nèi)容描述了該測(cè)試用例所適用的環(huán)境,比如操作系統(tǒng)的版本,所依賴硬件軟件的版本、語(yǔ)言等。測(cè)試環(huán)境信息有時(shí)候也可以成為輸入條件或者復(fù)現(xiàn)步驟的一部分,比如某個(gè)按鈕只有在IE瀏覽器中才會(huì)出現(xiàn)、某個(gè)Bug只在IE瀏覽器中才會(huì)產(chǎn)生,那么IE既是測(cè)試環(huán)境信息,也是輸入條件和復(fù)現(xiàn)步驟。6與其他測(cè)試用例的依賴關(guān)系在測(cè)試某些軟件的時(shí)候,比如MSN,如果登錄這個(gè)測(cè)試用例都無(wú)法通過(guò),那么剩下的發(fā)消息,發(fā)文件等測(cè)試用

43、例也肯定繼續(xù)進(jìn)行(除去直接調(diào)用接口的那些測(cè)試之外),這就是一種測(cè)試用例之間的依賴關(guān)系。合理地應(yīng)用測(cè)試用例之間的依賴關(guān)系,能夠提高測(cè)試效率,減少無(wú)謂的測(cè)試時(shí)間浪費(fèi)。7測(cè)試用例需要被開發(fā)、審閱、使用、維護(hù)和保存這也是測(cè)試工作很重要的一部分。軟件的說(shuō)明書Spec可能會(huì)變化,因此測(cè)試用例需要變化,這就要求對(duì)測(cè)試用例進(jìn)行增加、修改和刪除。測(cè)試用例是文檔,需要有固定的場(chǎng)所進(jìn)行保存,一般是數(shù)據(jù)庫(kù)或者文件。測(cè)試用例需要審閱,以達(dá)到預(yù)期的效果和更高的工作效率(重復(fù)的測(cè)試用例肯定會(huì)浪費(fèi)測(cè)試工程師的時(shí)間)。1.5 軟件測(cè)試的核心II:測(cè)試工程師除了測(cè)試用例之外,軟件測(cè)試的另一個(gè)核心,同時(shí)也更為關(guān)鍵,就是測(cè)試工程師了

44、。這是因?yàn)?,測(cè)試用例也是由測(cè)試工程師來(lái)編寫的,受人的因素影響很大??梢哉f(shuō),人是決定軟件成敗的主要因素。本節(jié)將介紹測(cè)試工程師所必備的一些素質(zhì)。1.5.1 測(cè)試工程師與軟件質(zhì)量保障有的時(shí)候我們?cè)谡衅笍V告上能夠發(fā)現(xiàn)有些公司招聘測(cè)試人員的時(shí)候,列出的職位名稱是軟件質(zhì)量保障工程師(QA,quality assurance),那么這兩種稱呼是否是代表同一種工作內(nèi)容呢?回答是基本一樣,但有細(xì)微不同。軟件測(cè)試工程師的主要職責(zé)在于發(fā)現(xiàn)并確認(rèn)Bug的解決與否,而軟件質(zhì)量保障工程師則更進(jìn)一步,在測(cè)試工程師的職責(zé)之外,還包括創(chuàng)建、維護(hù)為保障軟件質(zhì)量而確立的規(guī)范、規(guī)則與流程,比如軟件配置管理(Software Conf

45、iguration Management,又稱SCM工程師)等?!咀置嬉饬x的理解】從字面意義上來(lái)看,測(cè)試工程師主要針對(duì)軟件的已有Bug,類似體檢部門;而軟件質(zhì)量保障工程師則不光針對(duì)已有Bug,還對(duì)預(yù)防Bug的產(chǎn)生提出建議,類似健康顧問(wèn)。當(dāng)然,在實(shí)際工作中,兩者的區(qū)別并不是那么清晰的,在很多公司內(nèi)部,他們所從事的工作內(nèi)容是完全一致的。1.5.2 測(cè)試工程師應(yīng)該具備的素質(zhì)一個(gè)合格的測(cè)試工程師,應(yīng)該具備如下專業(yè)素質(zhì):q 具備基本的數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)等專業(yè)知識(shí)。這一點(diǎn)對(duì)于從事性能測(cè)試的人員來(lái)說(shuō)更為重要。q 具備一定的程序開發(fā)經(jīng)驗(yàn)。掌握一到兩門語(yǔ)言對(duì)于進(jìn)行自動(dòng)測(cè)試是大有益處的,另外,具有程序開發(fā)經(jīng)驗(yàn),也

46、更容易理解軟件Bug的來(lái)龍去脈。這一到兩門語(yǔ)言可以是某些高級(jí)語(yǔ)言,比如C#和VB.net,以及一種腳本語(yǔ)言,比如JavaScript、VBScript或者Python等的組合。q 軟件使用經(jīng)驗(yàn)豐富,對(duì)于軟件的不正常行為敏感。這一點(diǎn)對(duì)于發(fā)現(xiàn)Bug是很有幫助的。同時(shí),測(cè)試工程師還應(yīng)該具備如下的性格特征。q 有好奇心,樂(lè)于探索軟件功能,樂(lè)于嘗試新的軟件產(chǎn)品。q 樂(lè)于探索謎題,追根溯源。對(duì)于一個(gè)Bug,必須有追根溯源的精神,才能夠發(fā)現(xiàn)它的特點(diǎn),這個(gè)性格特征在判斷Bug的產(chǎn)生原因,以及是否與其他Bug重復(fù)等日常的工作內(nèi)容中都會(huì)展現(xiàn)。q 有耐心,不輕言放棄。測(cè)試工程師在工作中經(jīng)常會(huì)試圖復(fù)現(xiàn)一個(gè)軟件中的Bug,這需要細(xì)心、耐心和堅(jiān)持。q 必須具備一定的創(chuàng)造性。測(cè)試

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論