軟件測試桌面系統(tǒng)測試自動化測試_第1頁
軟件測試桌面系統(tǒng)測試自動化測試_第2頁
軟件測試桌面系統(tǒng)測試自動化測試_第3頁
軟件測試桌面系統(tǒng)測試自動化測試_第4頁
軟件測試桌面系統(tǒng)測試自動化測試_第5頁
已閱讀5頁,還剩154頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件測試桌面系統(tǒng)測試自動化測試工具瀏覽器軟件工程摘要:作為軟件開發(fā)的重要環(huán)節(jié),軟件測試越來越受到人們的重視隨著軟件開發(fā)規(guī)模的增大、復(fù)雜程度的增加,以尋找軟件中的錯誤為目的的測試工作就更加困難為了盡可能多地找出程序中的錯誤,生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,加強對測試工作的研究尤為重要本課題以Sun中國工程院的Linux桌面系統(tǒng)工程——JavaDesktopSystem的測試工作為根底,結(jié)合現(xiàn)有測試?yán)碚搶贚inux的桌面系統(tǒng)的測試方法和測試技術(shù)進行了深入細致的分析研究并取得了多項創(chuàng)新性成果在理論方面提出了復(fù)合白盒測試法和缺陷圖表統(tǒng)計模型復(fù)合白盒測試法是一種綜合性的測試方法,它利用測試覆蓋技術(shù)和面向缺陷的測試方法使發(fā)現(xiàn)的缺陷數(shù)量最大化,利用域比較測試技術(shù)和Mutation法降低測試用例的執(zhí)行次數(shù)從而減輕工作量缺陷圖表統(tǒng)計模型是基于缺陷統(tǒng)計分析的桌面軟件質(zhì)量評價方法,其核心包括缺陷分布統(tǒng)計、缺陷齡期統(tǒng)計和缺陷趨勢統(tǒng)計這些理論方法已在JavaDesktopSystem的測試實踐中得到應(yīng)用,并取得很好的實際效果設(shè)計測試用例和測試工具是桌面系統(tǒng)軟件測試中的關(guān)鍵技術(shù)問題本文以JavaDesktopSystem的重要組件Mozilla瀏覽器為對象,闡述了測試用例DOM引擎和Javascript解釋器、輔助測試工具IECT和自動化性能測試工具Loadpage的實現(xiàn)方法,并詳細介紹了許多技術(shù)解決方案這些測試用例和測試工具在Mozilla瀏覽器的測試中正發(fā)揮著重要的作用

標(biāo)題:軟件測試桌面系統(tǒng)測試自動化測試工具瀏覽器軟件工程

專業(yè):軟件工程

學(xué)位:碩士

單位:湖南大學(xué)@

關(guān)鍵詞:軟件測試桌面系統(tǒng)測試自動化測試工具瀏覽器軟件工程論文簡介:軟件測試技術(shù)的自動化是軟件測試的開展趨勢,正確、合理地實施自動化測試,能夠快速、徹底地對軟件進行測試,從而提高軟件質(zhì)量,節(jié)省經(jīng)費,縮短產(chǎn)品發(fā)布周期。本文系統(tǒng)的論述了在自動化測試中所遇到的一些問題和誤解,包括測試方案、測試模型、測試流程、測試用例、測試腳本、缺陷管理、人員安排、測試工具使用,并在全國短波監(jiān)測網(wǎng)絡(luò)系統(tǒng)的測試中得到了實踐。在本文設(shè)計中,盡可能地應(yīng)用各模型中對工程有實用價值的方面,而不拘泥于某個具體的模型。在測試實踐中:以W模型作為參考框架,同時靈活運用H模型獨立測試的思想。在到達恰當(dāng)?shù)木途w點時就開展獨立的測試工作,同時將測試工作進行迭代。“盡早測試〞、“全面測試〞、“全過程測試〞和“獨立、迭代的測試〞是測試所遵循的四個原那么,這在實際測試工程中得到了應(yīng)用并得到了良好的效果。本文以整個短波系統(tǒng)開發(fā)生命周期為主線,相繼引入了測試工具。其中測試輔助工具CVS可以建立資源版本,建立每日構(gòu)建。TestDirector系統(tǒng)地控制整個測試過程,并創(chuàng)立整個測試工作流的框架和根底,使整個測試管理過程變得更為簡單和有組織。winRunner是對系統(tǒng)進行功能測試的,通過設(shè)計的腳本來自動復(fù)現(xiàn)手工操作。LoadRunner是對系統(tǒng)性能進行測試的,通過模擬上千萬用戶實施并發(fā)負(fù)載及實時性能監(jiān)測的方式來確認(rèn)和查找問題。以上工具交互配適宜用,在不斷的測試迭代中改善了短波系統(tǒng)開發(fā)過程,提高了系統(tǒng)的可靠性。軟件測試精華三分類:軟件測試2023-11-1721:05下面,談?wù)勡浖y試的其他方面的一些問題。一個被人忽略的軟件測試目的在談到測試時,許多作者都引用了GrenfordJ.Myers就軟件測試目的提出的以下觀點:1.測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;2.一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;3.一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。這是一種比較狹窄的觀點。作為一個清醒的、縱觀全局的軟件開發(fā)人員或管理者,我們應(yīng)當(dāng)從軟件過程的角度來看測試。一個被人忽略的軟件測試目的是:測試可以幫助發(fā)現(xiàn)當(dāng)前開發(fā)工作所采用的軟件過程〔也是一個“軟件〞〕的缺陷,以便進行改進?!苍谝韵碌挠懻撝?,“錯誤〞與“缺陷〞根本上認(rèn)為代表相同意義?!吃鯓永斫膺@種說法呢?首先,測試并不僅僅是為了要找出錯誤。分析錯誤產(chǎn)生的原因和錯誤在開發(fā)的哪一個階段產(chǎn)生,具有非常重要的意義。通過分析錯誤的原因,我們可以立即在開發(fā)行動中對其進行改正。同時,這種分析也能幫助我們推理出與所分析的錯誤有關(guān)聯(lián)的潛在錯誤,從而有針對性地設(shè)計出檢測的方法。通過分析錯誤產(chǎn)生于哪一個開發(fā)階段、而又在哪一個階段被發(fā)現(xiàn),我們可以判斷從錯誤的產(chǎn)生到錯誤的發(fā)現(xiàn),跨越了多少個開發(fā)階段。軟件開發(fā)的一條重要原那么是盡早發(fā)現(xiàn)與修正錯誤?!伯?dāng)然,更高的一條原那么是盡量預(yù)防錯誤的出現(xiàn)。〕一個錯誤能夠超越本開發(fā)階段而不被發(fā)現(xiàn),就指明了該開發(fā)階段的檢測手段有缺陷,從而也不難有針對性地制定出加強的措施與方法。這也就是軟件過程改進的一項重要內(nèi)容。如果能做到在同一開發(fā)階段發(fā)現(xiàn)及修正錯誤,該開發(fā)機構(gòu)就可以預(yù)期有一個高質(zhì)量的產(chǎn)品及一個低本錢、高效率的軟件過程。有些工程的主持人,認(rèn)為以盡快的速度把測試之前的所有開發(fā)階段完成〔實際并沒有完成〕,早日開始測試,以圖到達快速和高質(zhì)量〔因為似乎有更長的時間可用于測試〕。實際的效果將會是俗語所說的“欲速不達〞。從常識就可以知道,花開發(fā)時間去繼續(xù)擴大開展前面階段引入的錯誤,得出的只能是更大量的需要耗時修正的錯誤。因此,正確分析與利用測試的結(jié)果,我們可以非常有效地進行軟件過程改進。軟件開發(fā)全過程檢測,力爭本階段修正錯誤從上面的討論,我們很自然的就能領(lǐng)會到,軟件錯誤的發(fā)現(xiàn)絕不能等到測試才開始〔按常規(guī),最早的測試就是編碼后的單元測試〕。因此,筆者提出一個軟件工程的守那么:軟件開發(fā)全過程檢測,力爭本階段修正錯誤。單元測試是在軟件開發(fā)的“實現(xiàn)階段〞才開始的,在此之前的“可行性研究與方案階段〞,“需求分析階段〞,“概要設(shè)計階段〞,和“詳細設(shè)計階段〞,都必須有非常明確切實的手段與措施對開發(fā)結(jié)果進行檢驗,以保證階段的正確完成。怎樣判斷一個軟件過程的優(yōu)劣,怎樣進行軟件過程改進,都可以在這個守那么的指導(dǎo)下進行。這個守那么是簡單明確的,但因企業(yè)背景、條件的不同,開發(fā)環(huán)境條件的不同,工程產(chǎn)品的不同,實際的軟件過程的實現(xiàn)方法就會變化無窮??紤]實現(xiàn)這個原那么的方法的時候,可以盡量多參考各種理論及經(jīng)驗,但在選擇制定本企業(yè)開發(fā)實踐中使用的軟件過程時,就必須處處根據(jù)是否能給自身的工程帶來好處,以及自身的條件進行考慮。千萬不要僅僅為了滿足某個“標(biāo)準(zhǔn)〞的提法而做一些無實際意義的工作。要盡量防止煩瑣,爭取做到簡單、有條理和有最大的效果。軟件測試的自動化軟件測試的工作量很大〔據(jù)統(tǒng)計,會用到40%的開發(fā)時間;一些可靠性要求非常高的軟件,測試時間甚至占到總開發(fā)時間的60%〕,但測試卻是在整個軟件過程中極有可能應(yīng)用計算機進行自動化的工作,原因是測試的許多操作是重復(fù)性的、非智力創(chuàng)造性的、需求細致注意力的工作。計算機就最適合于代替人類去完成這些任務(wù)。企業(yè)在這方面的投資,會對整個開發(fā)工作的質(zhì)量、本錢、和周期帶來非常明顯的效果。一些適于考慮進行自動化的測試操作為:1.測試個案的生成〔包括測試輸入,標(biāo)準(zhǔn)輸出,測試操作指令等〕。2.測試的執(zhí)行寫控制〔包括單機與網(wǎng)絡(luò)多機分布運行;夜間及假日運行。測試個案調(diào)用控制;測試對象、范圍、版本控制等。〕。3.測試結(jié)果與標(biāo)準(zhǔn)輸出的比照。4.不吻合的測試結(jié)果的分析、記錄、分類、和通報。5.總測試狀況的統(tǒng)計,報表的產(chǎn)生。測試自動化與軟件配置管理是密不可分的。與測試有關(guān)的資源都應(yīng)在配置管理中進行統(tǒng)一的方案考慮。另外,測試工具的采用也是一個提高質(zhì)量的關(guān)鍵,有些專用的測試工具能幫助發(fā)現(xiàn)一些用任何測試個案都難以觸及的錯誤。

14.安裝與卸載測試-我的學(xué)習(xí)總結(jié)前幾天發(fā)表了“如何進行卸載測試〞的貼子,得到很多回復(fù),這里表示感謝!

通過認(rèn)真地學(xué)習(xí)與總結(jié)前輩們的珍貴經(jīng)驗,現(xiàn)整理一局部如下,主要是加深自己對它們的理解,還有希望大家繼續(xù)補充與給出建議,謝謝!

軟件安裝與卸載測試是相輔相成,通過互相補充,會發(fā)現(xiàn)更多的測試角度,謝謝============卸載測試==============

文件----安裝目錄里的文件及文件夾〔如:程序安裝在幾處的)

非安裝目錄〔向系統(tǒng)其它地方添加的文件及文件夾〕

它們包括〔exe,dll,配置文件等)

快捷方式-〔桌面,菜單,任務(wù)欄,系統(tǒng)欄,控件面板,系統(tǒng)效勞列表等〕

復(fù)原方面-卸載后,系統(tǒng)能否恢復(fù)到軟件安裝前的狀態(tài)〔包含目錄結(jié)構(gòu)、動態(tài)庫,注冊表,系統(tǒng)配置文件,驅(qū)動程序,關(guān)聯(lián)情況等〕

卸載方式--程序自帶卸載程序/系統(tǒng)的控件面板卸載/其它自動卸載工具〔如:優(yōu)化大師)

卸載狀態(tài)--程序在運行/暫停/終止等狀態(tài)時的卸載

非正常卸載情況-卸載軟件過程中,取消卸載進程,然后,觀察軟件能否繼續(xù)正常使用

沖擊卸載--在卸載的過程中,中斷電源,然后,啟動計算機后,重新卸載軟件,如果軟件無法卸載,那么重新安裝軟件,安裝之后再重新卸載。

卸載環(huán)境--不同的(操作系統(tǒng),硬件環(huán)境,網(wǎng)絡(luò)環(huán)境等)下進行卸載

卸載后,該系統(tǒng)是否對其他的應(yīng)用程序造成不正常影響〔如操作系統(tǒng),應(yīng)用軟件等)

==========安裝測試============

一:根本目標(biāo)

1.安裝程序能正確運行

2.程序安裝正確

3.程序安裝后能正確運行

4.完善性安裝后程序能正確運行

二:一些方面

0、安裝手冊給的所有步驟得到驗證;

1、安裝過程中所有缺省選項得到驗證;

2、安裝過程中典型選項得到驗證;

3、測試各種不同的安裝組合,并驗證各種不同組合的正確性(包括參數(shù)組合,控件執(zhí)行順序組合,產(chǎn)品安裝組件組合,產(chǎn)品組件安裝順序組合(如b/s)等)

4、安裝過程中異常配置或狀態(tài)〔非法和不合理配置〕情況進行了測試(如:斷電;數(shù)據(jù)庫終止,網(wǎng)絡(luò)終止等)

5、安裝后是否能產(chǎn)生正確的目錄結(jié)構(gòu)和文件,文件屬性正確;

6、安裝后動態(tài)庫是否正確;

6、安裝后軟件能否正確運行;

7、安裝后沒有生成多余的目錄結(jié)構(gòu),文件,注冊表信息,快捷方式等;

9、安裝測試應(yīng)該在所有的運行環(huán)境上進行驗證(手冊上指定如:操作系統(tǒng),數(shù)據(jù)庫,硬件環(huán)境,網(wǎng)絡(luò)環(huán)境等);

10、自動安裝還是手工配置安裝

11、至少要在一臺筆記本上進行安裝/卸載測試,因為有很多產(chǎn)品在筆記本中會出現(xiàn)問題,尤其是系統(tǒng)級的產(chǎn)品

13、安裝,該系統(tǒng)是否對其他的應(yīng)用程序造成不正常影響〔如操作系統(tǒng),應(yīng)用軟件等)

15.微軟的測試題TestPaperforSoftwareDesignEngineer(Testtime:60minutes)Name:

Date:

Location:

Part1:TechnicalSkillsSet〔請將“●〞paste在您所掌握的技能程度表格內(nèi),并注明您的使用時間和相關(guān)的證書〕技能列表精通

熟練

掌握

了解

使用時間(月)所獲證書English(oral)English(written)OOPprogrammingskillsC/C++(pointer,memory)JavaC#NET算法&數(shù)據(jù)結(jié)構(gòu)WinAPIexperience–plus

Part2:TechnicalTest1.實現(xiàn)二分查找的遞歸算法的函數(shù)?!彩褂肅++,不建議用偽碼〕

2.請指出該程序的錯誤。#include<iostream.h>

int*p;

voidFunction();{intn;n=25;p=&n;}

voidmain(){Function();cout<<"valueof*p:"<<*p<<endl;}

3.英語寫作Question:Pleasedescribeyourcareerpathinthenexttwoyears.

16.多線程與多進程

線程的外殼是進程,進程管理線程;

線程不占用系統(tǒng)資源,而進程占用系統(tǒng)資源;

什么叫進程?進程同程序有什么區(qū)別?

答:進程是程序在計算機上的一次執(zhí)行活動。當(dāng)你運行一個程序,你就啟動了一個進程。顯然,程序是死的(靜態(tài)的),進程是活的(動態(tài)的)。進程可以分為系統(tǒng)進程和用戶進程。但凡用于完成操作系統(tǒng)的各種功能的進程就是系統(tǒng)進程,它們就是處于運行狀態(tài)下的操作系統(tǒng)本身;用戶進程就不必我多講了吧,所有由你啟動的進程都是用戶進程。進程是操作系統(tǒng)進行資源分配的單位。

在Windows下,進程又被細化為線程,也就是一個進程下有多個能獨立運行的更小的單位。

在同一個時間里,同一個計算機系統(tǒng)中如果允許兩個或兩個以上的進程處于運行狀態(tài),這便是多任務(wù)?,F(xiàn)代的操作系統(tǒng)幾乎都是多任務(wù)操作系統(tǒng),能夠同時管理多個進程的運行。多任務(wù)帶來的好處是明顯的,比方你可以邊聽mp3邊上網(wǎng),與此同時甚至可以將下載的文檔打印出來,而這些任務(wù)之間絲毫不會相互干擾。那么這里就涉及到并行的問題,俗話說,一心不能二用,這對計算機也一樣,原那么上一個CPU只能分配給一個進程,以便運行這個進程。我們通常使用的計算機中只有一個CPU,也就是說只有一顆心,要讓它一心多用,同時運行多個進程,就必須使用并發(fā)技術(shù)。實現(xiàn)并發(fā)技術(shù)相當(dāng)復(fù)雜,最容易理解的是“時間片輪轉(zhuǎn)進程調(diào)度算法〞,它的思想簡單介紹如下:在操作系統(tǒng)的管理下,所有正在運行的進程輪流使用CPU,每個進程允許占用CPU的時間非常短(比方10毫秒),這樣用戶根本感覺不出來CPU是在輪流為多個進程效勞,就好象所有的進程都在不間斷地運行一樣。但實際上在任何一個時間內(nèi)有且僅有一個進程占有CPU。

如果一臺計算機有多個CPU,情況就不同了,如果進程數(shù)小于CPU數(shù),那么不同的進程可以分配給不同的CPU來運行,這樣,多個進程就是真正同時運行的,這便是并行。但如果進程數(shù)大于CPU數(shù),那么仍然需要使用并發(fā)技術(shù)。

在Windows中,進行CPU分配是以線程為單位的,一個進程可能由多個線程組成,這時情況更加復(fù)雜,但簡單地說,有如下關(guān)系:總線程數(shù)<=CPU數(shù)量:并行運行總線程數(shù)>CPU數(shù)量:并發(fā)運行并行運行的效率顯然高于并發(fā)運行,所以在多CPU的計算機中,多任務(wù)的效率比較高。但是,如果在多CPU計算機中只運行一個進程(線程),就不能發(fā)揮多CPU的優(yōu)勢。這里涉及到多任務(wù)操作系統(tǒng)的問題,多任務(wù)操作系統(tǒng)(如Windows)的根本原理是:操作系統(tǒng)將CPU的時間片分配給多個線程,每個線程在操作系統(tǒng)指定的時間片內(nèi)完成(注意,這里的多個線程是分屬于不同進程的).操作系統(tǒng)不斷的從一個線程的執(zhí)行切換到另一個線程的執(zhí)行,如此往復(fù),宏觀上看來,就好似是多個線程在一起執(zhí)行.由于這多個線程分屬于不同的進程,因此在我們看來,就好似是多個進程在同時執(zhí)行,這樣就實現(xiàn)了多任務(wù).Whoops,真繞口.所以結(jié)合樓上的答復(fù),不知道樓主是否可以滿意!關(guān)于多線程,多進程的問題,樓主可以看看操作系統(tǒng)方面的書,可以得到更多的啟示!

如上,多線程和多任務(wù)是有很明顯的區(qū)別的.但是再想一下,在一個應(yīng)用程序內(nèi)實現(xiàn)多線程不也是靠CPU分配時間片嗎?既然原理是相同的,那么多線程也可以說是多任務(wù)的.17.回歸測試

回歸測試和驗證修復(fù)的bug不是等同的.回歸測試要求在新的版本中,重新遍歷測試用例,因為開發(fā)人員在解決問題時可能會影響到相關(guān)的模塊,只驗證修復(fù)的問題是否已經(jīng)解決不能叫做回歸測試.

我們最新采用的回歸測試的方法是:把所有的測試說明中的用例全部執(zhí)行一遍!〔很麻煩的說〕

然后對于初次測試出問題的地方及其邊緣重點測試!

1、關(guān)于Bug的狀態(tài)前面有帖子樓主可以看看,開發(fā)人員如果認(rèn)為Bug已修復(fù),應(yīng)把Bug的狀態(tài)改成Resolved,測試人員發(fā)現(xiàn)有Resolved的Bug就要進行回歸測試以驗證Bug是否真的解決,如驗證通過那么將Bug的狀態(tài)改成VerifiedPass,然后再由相關(guān)人員〔如測試負(fù)責(zé)人〕把Bug的裝體改成Closed;如驗證失敗那么將Bug的狀態(tài)改成VerifiedFail,讓開發(fā)人員再去解決。

2、關(guān)于樓主提到的“但是在測試用例很多的情況下,自己可能也不記得那些測試用例中有實際結(jié)果與期望結(jié)果不一致的用例〞說明Bug的提交和記錄存在問題,Bug所對應(yīng)的測試用例編號是肯定要包含在Bug報告中的,這樣回歸測試的時候就不會搞不清楚了。

3、現(xiàn)在開源的Bug管理工具也是有的,如bugzilla,最好還是去裝一個吧。Bug的狀態(tài)各個公司會不同,多少也不一樣,我原來在德公司就有30來種狀態(tài)。呵呵!

一般只要能夠區(qū)分下面幾種情況,并且不讓人誤解就好了

1,新提交的Bug

2,開發(fā)正在修改的Bug

3,已經(jīng)修改好并且等待測試人員驗證的Bug

4,驗證通過的Bug

5,驗證沒有通過的Bug〔這個要和新提交的Bug同樣處理,不過有的公司需要記住沒有改好的次數(shù),用來考評開發(fā)的績效〕

6,設(shè)計問題

7,測試人員報錯

8,暫時不修改的Bug

回歸測試的方法具體問題具體分析,可能有人說我這樣等于什么都沒說,可是每個工程不同,不同時期也不同,甚至可能測試的人員都換了,如果以一種固定的方法來做,未免顯得有點死板。個人認(rèn)為,在測試的時候,最好能夠邊測試,邊在測試用例上加上備注,說明實際結(jié)果。并且最好用顏色標(biāo)記,如果你夠仔細,能夠把有問題的測試用例再標(biāo)注上Bug的編號就更好了,這樣在復(fù)查bug時,就知道修改好的bug是由哪個用例引起的,可以執(zhí)行一下相關(guān)的用例,看是否真的改好并且沒有影響到其他局部,這樣就可以放心的Close了。如果有人覺得這樣太過麻煩或者中途有人員的變動,也可以只看Bug的描述,按照bug的說明進行驗證就夠了,但是要記住最好能夠?qū)ο嚓P(guān)的模塊進行一下測試,看看流程是否還能走通。不過這就要求Bug的描述要寫得比較清晰,明了。

18.測試大綱和測試方案測試大綱只是簡單的描述如何開展測試,而測試方案是針對測試中的每個環(huán)節(jié)的。單元測試、集成測試、系統(tǒng)測試等一般都寫測試方案,寫的重點不同。而大綱只是簡要的寫一下測試策略是什么,需要做哪些測試,測試過程如何組織,測試人員包括哪些??梢哉f管理人員寫測試大綱,而測試人員寫測試方案。19.測試版本大全-轉(zhuǎn)貼alpha內(nèi)部測試版

beta外部測試版

demo演示版

Enhance增強版或者加強版屬于正式版

Free自由版

Fullversion完全版屬于正式版

shareware共享版

Release發(fā)行版有時間限制

Upgrade升級版

Retail零售版

Cardware屬共享軟件的一種,只要給作者回復(fù)一封電郵或明信片即可?!灿械淖髡卟⒂纱颂峁┳源a等〕,目前這種形式已不多見。

Plus屬增強版,不過這種大局部是在程序界面及多媒體功能上增強。

Preview預(yù)覽版

Corporation&Enterprise企業(yè)版

Standard標(biāo)準(zhǔn)版

Mini迷你版也叫精簡版只有最根本的功能

Premium--貴價版

Professional--專業(yè)版

Express--特別版

Deluxe--豪華版

Regged--已注冊版

CN--簡體中文版

CHT--繁體中文版

EN--英文版

Multilanguage--多語言版

Rip是指從原版文件〔一般是指光盤或光盤鏡像文件〕直接將有用的內(nèi)容〔核心內(nèi)容〕別離出來,剔除無用的文檔,例如PDF說明文件啊,視頻演示啊之類的東西,也可以算做是精簡版吧…但主要內(nèi)容功能是一點也不能缺少的!另:DVDrip是指將視頻和音頻直接從DVD光盤里以文件方式別離出來。

trail試用版〔含有某些限制,如時間、功能,注冊后也有可能變?yōu)檎桨妗?/p>

RC版。是ReleaseCandidate的縮寫,意思是發(fā)布倒計時,該版本已經(jīng)完成全部功能并去除大局部的BUG。到了這個階段只會除BUG,不會對軟件做任何大的更改。

RTM版。這根本就是最終的版本,英文是ReleaseToManufactur,意思是發(fā)布到生產(chǎn)商。

OriginalEquipmentManufacturer(OEM)

YoumaylicenseproductsthroughanOriginalEquipmentManufacturer(OEM).Theseproducts,suchasWindowsoperatingsystems,comeinstalledwhenyoupurchaseanewcomputer.

OEM軟件是給電腦生產(chǎn)廠的版本,無需多說。

FullPackagedProduct(FPP)-Retail

Physical,shrink-wrappedboxesoflicensedproductthatcanbepurchasedinalocalretailstoreoranylocalsoftwareretailer.

FPP就是零售版〔盒裝軟件〕,這種產(chǎn)品的光盤的卷標(biāo)都帶有"FPP"字樣,比方英文WXPPro的FPP版本的光盤卷標(biāo)就是WXPFPP_EN,其中WX表示是WindowsXP,P是Professional〔H是Home〕,F(xiàn)PP說明是零售版本,EN是說明是英語。獲得途徑除了在商店購置之外,某些MSDN用戶也可以得到。

VolumeLicensingforOrganizations(VLO)

Youmayenjoypotentiallysignificantsavingsbyacquiringmultipleproductlicenses.Dependingonthesizeandtypeofyourorganization.

團體批量許可證〔大量采購授權(quán)合約〕,這是為團體購置而制定的一種優(yōu)惠方式。這種產(chǎn)品的光盤的卷標(biāo)都帶有"VOL"字樣,取"Volume"前3個字母,以說明是批量,比方英文WXPPro的VOL版本的光盤卷標(biāo)就是WXPVOL_EN,其中WX表示是WindowsXP,P是Professional〔VOL沒有Home版本〕,VOL說明是團體批量許可證版本,EN是說明是英語。獲得途徑主要是集團購置,某些MSDN用戶也可以得到。

這種版本根據(jù)購置數(shù)量等又細分為“開放式許可證〞、“選擇式許可證〞、“企業(yè)協(xié)議〞、“學(xué)術(shù)教育許可證〞等以下5種版本

OpenLicense

SelectLicense

EnterpriseAgreement

EnterpriseSubscriptionAgreement

AcademicVolumeLicensing

由此可見,平時說的什么select/corp是許可證授權(quán)方式,他的出現(xiàn)是為了用假設(shè)干種不同級別的優(yōu)惠政策賣同一種軟件,通過select/corp許可證授權(quán)方式得到的xxx的光盤都是VOL這一種、是并不是有很多種,只不過是相同的VOL光盤配以不同的許可證方式;而VolumeLicensing(Product)Keys,即VLK,它所指的只是一個Key〔密匙〕,僅僅是一個為證明產(chǎn)品合法化、以及安裝所使用的Key,因為根據(jù)VOL方案規(guī)定,VOL產(chǎn)品是不需要激活的!

或者說,VLK不是指一種版本,而是指這種版本在部署〔deploy〕過程中所需要的Key,而需要VLK這種Key的版本應(yīng)該叫做VOL!只不過在實際中,沒有必要強調(diào)這種叫法、稱呼的準(zhǔn)確性,加之很多人的VOL版本光盤是通過企業(yè)的選擇式許可證、企業(yè)協(xié)議等方式得到的等等原因,所以才會有很多人叫他為“選擇版〞等等。

官方網(wǎng)站有一個表格,上面有一句話:“DifferentproductsrequiredifferentVolumeLicensingKeys(VLKs).RefertothetablebelowtomakesureyouhavethecorrectVLKforyourMicrosoftproduct.〞,我想這就很好的說明了VLK指的是Key而不是產(chǎn)品了。很明顯的,F(xiàn)PP需要激活,VOL不需要激活。

20.黑、白盒測試白盒測試和黑盒測試不是決然分開的,單獨做黑盒測試或白盒測試都是做了測試的一個方面,很難保證發(fā)現(xiàn)了軟件中大局部缺陷。在測試過程中往往把兩者結(jié)合起來進行測試,從代碼邏輯結(jié)構(gòu)上保證正確,再從功能和非功能特性上保證正確,經(jīng)過這兩方面的測試,才能最大可能的保證軟件質(zhì)量。在測試過程中,采用這兩種測試技術(shù)的時間有所不同。單元測試、集成測試、系統(tǒng)測試是按照測試的階段來進行劃分的,而白盒測試、黑盒測試是從測試技術(shù)的角度來劃分的。一般來說,單元測試階段進行的測試根本上以白盒測試技術(shù)為主,系統(tǒng)測試階段進行的測試根本上以黑盒測試技術(shù)為主,而集成測試所采用的技術(shù)是介于白盒和黑盒之間的,有的技術(shù)文獻也稱之為灰盒技術(shù)軟件測試是一個過程,一個完整的軟件測試過程又分為三個階段,分別是單元集成和系統(tǒng)〔當(dāng)然還有寫別的測試過程〕,而黑盒和白盒只是在這些過程中所采用的測試方法罷了。個人意見

1.黑盒測試

黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能翻開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息〔如數(shù)據(jù)庫或文件〕的完整性。

黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認(rèn)測試?!昂诤楔暦ㄖ塾诔绦蛲獠拷Y(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進行測試?!昂诤楔暦ㄊ歉F舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。

2.白盒測試

白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。

“白盒〞法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。“白盒〞法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計標(biāo)準(zhǔn),即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。

3.灰盒測試

灰盒測試,確實是介于二者之間的,可以這樣理解,灰盒測試關(guān)注輸出對于輸入的正確性,同時也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不象白盒那樣詳細、完整,只是通過一些表征性的現(xiàn)象、事件、標(biāo)志來判斷內(nèi)部的運行狀態(tài),有時候輸出是正確的,但內(nèi)部其實已經(jīng)錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。

灰盒測試結(jié)合了白盒測試盒黑盒測試的要素.它考慮了用戶端、特定的系統(tǒng)知識和操作環(huán)境。它在系統(tǒng)組件的協(xié)同性環(huán)境中評價應(yīng)用軟件的設(shè)計。

灰盒測試由方法和工具組成,這些方法和工具取材于應(yīng)用程序的內(nèi)部知識盒與之交互的環(huán)境,能夠用于黑盒測試以增強測試效率、錯誤發(fā)現(xiàn)和錯誤分析的效率。

灰盒測試涉及輸入和輸出,但使用關(guān)于代碼和程序操作等通常在測試人員視野之外的信息設(shè)計測試。

21.SoftwareTesting10Rules

1.Testearlyandtestoften.

盡早測試,經(jīng)常測試

2.Integratetheapplicationdevelopmentandtestinglifecycles.You'llgetbetterresultsandyouwon'thavetomediatebetweentwoarmedcampsinyourITshop.(這后半句怎么理解?)

整合應(yīng)用程序開發(fā)和軟件測試生命周期,你將得到更好的結(jié)果,并且不必要在程序開發(fā)和軟件測試兩者之間左右為難。

3.Formalizeatestingmethodology;you'lltesteverythingthesamewayandyou'llgetuniformresults.

形成一套完整的測試方法;你將用同樣的方法開展測試工作,并且可以得到始終如一的結(jié)果

4.Developacomprehensivetestplan;itformsthebasisforthetestingmethodology.

開發(fā)一套完整、全面的的測試方案;作為軟件測試方法論的根底局部

5.Usebothstaticanddynamictesting.

采用靜態(tài)測試和動態(tài)測試相結(jié)合的方法〔可以采用靜態(tài)代碼檢查工具作靜態(tài)測試〕

6.Defineyourexpectedresults.

定義測試預(yù)期結(jié)果〔在測試用例中,這是比不可少的工程)

7.Understandthebusinessreasonbehindtheapplication.You'llwriteabetterapplicationandbettertestingscripts.

理解應(yīng)用背后的商業(yè)動機,找出真正的需求根源,你將寫出更好的應(yīng)用程序和測試腳本。

8.Usemultiplelevelsandtypesoftesting(regression,systems,integration,stressandload).

采用多層面和多類型的軟件測試〔回歸測試、系統(tǒng)測試、集成測試、壓力測試和負(fù)載測試〕

9.Reviewandinspectthework,itwilllowercosts.

多工作評審和檢視,可以降低本錢〔檢視和評審可以提早發(fā)現(xiàn)問題,躲避問題,防止造成不必要的損失,因此,可以降低本錢〕

10.Don'tletyourprogrammerschecktheirownwork;they'llmisstheirownerrors.

不要讓程序員檢查自己的工作產(chǎn)品,程序員會忽略自己犯的錯誤。

?博客園首頁關(guān)于軟件測試的一些根本知識作者:小寒

來源:博客園

發(fā)布時間:2023-06-0215:35

閱讀:2780次

原文鏈接

[收藏]

軟件測試方法:分為兩類

〔1〕靜態(tài)測試:不要求在計算機上實際執(zhí)行所測程序,主要以一些人工的模擬技術(shù)對軟件進行分析和測試

〔2〕動態(tài)測試:通過輸入一組預(yù)先按照一定的測試準(zhǔn)那么構(gòu)造的實例數(shù)據(jù)動態(tài)運行程序,而到達發(fā)現(xiàn)程序錯誤的過程,特點如下:

l必須生成測試數(shù)據(jù)來運行被測試程序,取得程序運行的真實情況、動態(tài)情況,進而進行分析

l測試質(zhì)量依賴于測試數(shù)據(jù)

l生成測試數(shù)據(jù),分析測試結(jié)果的工作量大,使開展測試工作費時、費力、費人

l動態(tài)測試中涉及多方面工作,人員多,設(shè)備多,數(shù)據(jù)多,要求有較好的管理和工作規(guī)程一.概述

1.定義

也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,按照程序內(nèi)部的結(jié)構(gòu)對程序進行測試,通過測試來檢查產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢查程序中的每條通路是否能按照預(yù)定要求正確工作

2.測試內(nèi)容

把測試對象看成是一個翻開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計或選擇測試用例,對程序的所有邏輯路徑進行測試,通過不同點檢查程序的狀態(tài),確定實際的狀態(tài)與預(yù)期的狀態(tài)一致

3.測試根本技術(shù)

〔1〕詞法分析與語法分析

〔2〕靜態(tài)錯誤分析

〔3〕程序插樁技術(shù)

4.測試方法

〔1〕代碼檢查法

〔2〕靜態(tài)結(jié)構(gòu)分析法

〔3〕靜態(tài)質(zhì)量度量法

〔4〕邏輯覆蓋法

〔5〕根本路徑測試法

〔6〕域測試

〔7〕符號測試

〔8〕Z路徑覆蓋

〔8〕程序變異

5.黑盒測試與白盒測試

黑盒測試白盒測試

不涉及程序結(jié)構(gòu)考查程序邏輯結(jié)構(gòu)

用軟件規(guī)格說明書生成測試用例用程序結(jié)構(gòu)信息生成測試用例

可適用于從單元測試到系統(tǒng)聯(lián)調(diào)適用于單元測試和集成測試

某些代碼段得不到測試對所有邏輯路徑進行測試二.白盒測試根本技術(shù)

1.詞法和語法分析

〔1〕獲取信息

l可以獲取軟件組成的重要根本因數(shù),如變量標(biāo)識符、過程標(biāo)識符、常量等

l組合獲取的根本因數(shù),可以得到軟件的根本信息,如:

v標(biāo)號交叉引用表:列出各模塊中出現(xiàn)的全部標(biāo)號及標(biāo)號的屬性,模塊以外的全局、計算標(biāo)號

v變量交叉引用表:列出變量定義及引用信息,變量的屬性,變量類型〔全局、局部〕

v子程序、宏和函數(shù)表:列出各個子程序、宏及函數(shù)的屬性,輸入、輸出參數(shù)信息

v等價表:列出在等價語句和等值語句中出現(xiàn)的全部變量和標(biāo)號

v常數(shù)表:列出全部數(shù)字常數(shù)和字符常數(shù)

〔2〕作用

l直接從表中查出說明/使用錯誤,如標(biāo)號交叉引用表、變量交叉引用表

l為用戶提供輔助信息,如子程序、宏和函數(shù)表、等價表、常數(shù)表

l用來做錯誤預(yù)測和程序復(fù)雜度計算,如操作符和操作數(shù)的統(tǒng)計表

2.靜態(tài)錯誤分析

用于確定在源程序中是否有某類錯誤或‘危險’結(jié)構(gòu),包括以下幾種:

〔1〕類型和單位分析

對源程序的類型進行檢查,為了強化檢查效果,擴充一些新的數(shù)據(jù)類型,進行靜態(tài)預(yù)處理程序,分析程序中的類型錯誤

〔2〕引用分析

l對程序中變量的引用進行檢查,發(fā)現(xiàn)引用異常錯誤〔如變量在定義前被引用,變量定義后未被引用〕。

l采用深度優(yōu)選的方法遍歷程序流圖的每一條路徑

l建立引用異常的探測工具,包括變量定義表和變量引用表

〔3〕表達式分析

對表達式進行分析,以發(fā)現(xiàn)和糾正在表達式出現(xiàn)的錯誤,如:

l在表達式中不正確的使用了括號造成錯誤

l數(shù)組下標(biāo)越界錯誤

l除數(shù)為零

l浮點數(shù)計算的誤差〔最復(fù)雜〕

〔4〕接口分析

接口一致性是程序的靜態(tài)錯誤分析和設(shè)計分析共同研究的題目,接口分析主要對下內(nèi)容時進行一致性的分析:

l各模塊之間接口一致性

l模塊與外部數(shù)據(jù)庫的接口一致性

l形參與實參在類型,數(shù)量,順序,維數(shù),使用上的一致性

l全局變量和公共數(shù)據(jù)區(qū)在使用上的一致性

3.程序插樁技術(shù)

〔1〕概述

在動態(tài)測試中,是一種根本的測試手段,有廣泛的應(yīng)用

主要借助向程序中插入操作,來實現(xiàn)測試目的的方法〔即向源程序中添加一些語句〔也稱探測器〕,實現(xiàn)對程序語句的執(zhí)行、變量的變化等情況進行檢查〕

〔2〕設(shè)計時考慮的問題

l明確要探測哪些信息

l在程序的什么部位設(shè)置探測點

l需要設(shè)計多少個探測點

〔3〕探測點設(shè)置位置〔以Fortran為例〕

l程序塊的第一個可執(zhí)行語句之前

lentry語句的前后

l有標(biāo)號的可執(zhí)行語句處

l循環(huán)語句之后

l條件語句之后

llogicalif語句之后

lcall語句之后

lgoto語句之后

〔4〕斷言語句

在程序中的特定部位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實,從而使程序的運行特性得到證實,我們把這些插入的語句稱為斷言語句。

三.白盒測試方法-靜態(tài)測試

1.代碼檢查法

〔1〕目的

通過桌面檢查,代碼審查和走查方式,對以下內(nèi)容進行檢查

l檢查代碼和設(shè)計的一致性

l代碼對標(biāo)準(zhǔn)的遵循、可讀性

l代碼邏輯表達的正確性

l代碼結(jié)構(gòu)的合理性

l程序編寫與編寫標(biāo)準(zhǔn)的符合性

l程序中不平安、不明確和模糊的局部

l編程風(fēng)格問題等

〔2〕代碼檢查方式

方式名稱執(zhí)行人員檢查內(nèi)容檢查過程

桌面檢查程序員對源程序代碼進行分析、檢驗,并補充相關(guān)的文檔,發(fā)現(xiàn)程序中的錯誤

代碼審查程序員和測試員組成的審查小組通過閱讀、討論和爭議,以程序進行靜態(tài)分析的過程第一步:小組成員提前閱讀設(shè)計規(guī)格書、程序文本等相關(guān)文檔第二步:召開程序?qū)彶闀?,開發(fā)人員讀程序,審查小組討論、發(fā)現(xiàn)、解決問題

走查程序員和測試員組成的審查小組通過邏輯運行程序,發(fā)現(xiàn)問題第一步:小組成員提前閱讀設(shè)計規(guī)格書、程序文本等相關(guān)文檔第二步:利用測試用例,使程序邏輯運行,記錄程序的蹤跡,發(fā)現(xiàn)、討論、解決問題〔3〕代碼檢查工程〔采用分析技術(shù)〕

l檢查變量的交叉引用表:檢查未說明的變量和違反了類型規(guī)定的變量,變量的引用和使用情況

l檢查標(biāo)號的交叉引用表:驗證所有標(biāo)號的正確性

l檢查子程序、宏、函數(shù):驗證每次調(diào)用與所調(diào)用位置是否正確,調(diào)用的子程序、宏、函數(shù)是否存在,參數(shù)是否一致

l等價性檢查:檢查全部等價變量的類型的一致性

l常量檢查:確認(rèn)常量的取值和數(shù)制、數(shù)據(jù)類型

l標(biāo)準(zhǔn)檢:檢查程序中是否違反標(biāo)準(zhǔn)的問題

l風(fēng)格檢查:檢查程序的設(shè)計風(fēng)格

l比較控制流:比較設(shè)計控制流圖和實際程序生成的控制流圖的差異

l選擇、激活路徑:在設(shè)計控制流圖中選擇某條路徑,到實際的程序中激活這條路徑,如果不能激活,那么程序可能有錯

l對照程序的規(guī)格說明,詳細閱讀源代碼,比較實際的代碼,從差異中發(fā)現(xiàn)程序的問題和錯誤

l補充文檔

根據(jù)以上檢查工程,可以編制代碼規(guī)那么,標(biāo)準(zhǔn)和檢查表等作為測試用例

〔4〕編碼標(biāo)準(zhǔn)

程序編寫過程中必須遵守的規(guī)那么,規(guī)定代碼的語法格式、語法規(guī)那么,如排版、注釋、標(biāo)識符命名、可讀性、變量、函數(shù)、過程、可測性、程序效率、質(zhì)量保證、代碼編輯、編譯、審查、代碼測試、維護、宏等各方面的編碼要求

〔5〕代碼檢查規(guī)那么

對程序邏輯結(jié)構(gòu)檢查時,所規(guī)定的規(guī)那么,形成

〔6〕缺陷檢查表

主要包括一些容易出錯的地方和在以往工作中遇到的典型錯誤,形成表格形式

重要性審查項結(jié)論

文件結(jié)構(gòu)重要頭文件和定義文件的名稱是否合理

2.靜態(tài)結(jié)構(gòu)分析法

在靜態(tài)結(jié)構(gòu)分析中,測試者通過使用測試工具分析程序源代碼的系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)接口、內(nèi)部控制邏輯等內(nèi)部結(jié)構(gòu),生成函數(shù)調(diào)用關(guān)系圖、模塊控制流圖、內(nèi)部文件調(diào)用關(guān)系圖等各種圖形圖表,清晰地標(biāo)識整個軟件的組成結(jié)構(gòu),便于理解,通過分析這些圖表,檢查軟件有沒有存在缺陷或錯誤;包括控制流分析、數(shù)據(jù)據(jù)流分析、接口分析、表達式分析

〔1〕函數(shù)調(diào)用關(guān)系圖:通過應(yīng)用程序各函數(shù)之間的調(diào)用關(guān)系展示了系統(tǒng)的結(jié)構(gòu)。列出所有函數(shù),用連線表示調(diào)用關(guān)系,作用:

l可以檢查函數(shù)的調(diào)用關(guān)系是否正確

l是否存在孤立的函數(shù)而沒有被調(diào)用

l明確函數(shù)被調(diào)用的頻繁度,對調(diào)用頻繁的函數(shù)可以重點檢查

〔2〕模塊控制流圖:由許多結(jié)點和連接結(jié)點的邊組成的圖形,其中每個結(jié)點代表一條或多條語句,邊表示控制流向,可以直觀地反映出一個函數(shù)的內(nèi)部結(jié)構(gòu)。

*例子1-GIS軟件:存在無法執(zhí)行的死代碼;有多個出口,可能沒有在所有出口進行內(nèi)存釋放與回收,有內(nèi)存泄露的可能

*例子2-MIS軟件:有多個出口,存在內(nèi)存泄露的可能;有10邏輯判斷結(jié)點,易出現(xiàn)邏輯錯誤,降低可靠性,可能會破壞對CPU操作進行優(yōu)化的處理,影響其運行性能

3.靜態(tài)質(zhì)量度量法

〔1〕軟件質(zhì)量:根據(jù)ISO/IEC9126國際標(biāo)準(zhǔn),包括以下六個方面:

l功能性〔functionality〕

l可靠性〔reliability〕

l可用性〔usability〕

l有效性〔efficiency〕

l可維護性〔maintainability〕

l輕便性〔portability〕

〔2〕質(zhì)量度量模型〔從上到下〕

l質(zhì)量因素〔Factors〕:與分類標(biāo)準(zhǔn)的計算方式相似,依據(jù)各分類標(biāo)準(zhǔn)取值組合權(quán)重方法來計算,依據(jù)結(jié)果將軟件質(zhì)量分為四個等級,與分類標(biāo)準(zhǔn)等級內(nèi)容相同

l分類標(biāo)準(zhǔn)〔criteria〕:對某一軟件質(zhì)量分為不同的分類標(biāo)準(zhǔn),每個分類標(biāo)準(zhǔn)由一系列度量規(guī)那么組成,每個規(guī)那么分配一個權(quán)重,每個分類標(biāo)準(zhǔn)的取值由規(guī)那么的取值與權(quán)重值計算得出,依據(jù)結(jié)果將軟件質(zhì)量分為四個等級:

v優(yōu)秀〔excellent〕:符合本模型框加中的所有規(guī)那么〔可以接受〕

v良好〔good〕:未大量偏離模型框架中的規(guī)那么〔可以接受〕

v一般〔fair〕:違背了模型框架中的大量規(guī)那么〔可以接受〕

v較差〔poor〕:無法保障正常的軟件可維護性〔不可以接受〕

l度量規(guī)那么〔Metrics〕:使用代碼行數(shù)、注釋頻度等參數(shù)度量軟件各種行為屬性

四.白盒測試方法-動態(tài)測試〔即設(shè)計測試用例的方法〕

1.白盒測試的動態(tài)測試原那么-根據(jù)程序的控制結(jié)構(gòu)設(shè)計測試用例

〔1〕保證每個模塊的所有獨立路徑至少被使用一次

〔2〕對所有的邏輯值均測試true和false

〔3〕上下邊界及可操作范圍內(nèi)運行所有循環(huán)

〔4〕檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性

2.邏輯覆蓋法

〔1〕概述

邏輯覆蓋是通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋

〔2〕分類-依據(jù)覆蓋源程序語句的詳盡程度

l語句覆蓋SC〔StatementCoverage〕

l判定覆蓋DC〔Decisioncoverage〕

l條件覆蓋CC〔ConditionCoverage〕

l條件判定組合覆蓋CDC〔Condition/DecisionCoverage〕

l多條件覆蓋MCC〔MultipleConditionCoverage〕

l修改條件判定覆蓋MCDC〔MultipleConditionDecisionCoverage〕

〔3〕語句覆蓋

l選擇足夠多的測試數(shù)據(jù),使被測程序中每條語句至少執(zhí)行一次

l缺點:對程序執(zhí)行邏輯的覆蓋很低

〔4〕判定覆蓋

l設(shè)計足夠多的測試用例,使得程序中的每一個判定至少獲得一次‘真’值和‘假’值,或者使得程序中的每一個取‘真’分支或取‘假’分支至少經(jīng)歷一次,因此又稱分支覆蓋

l可以滿足語句覆蓋

l缺點:主要對整個表達式最終取值進行度量,忽略了表達式內(nèi)部取值

〔5〕條件覆蓋

l設(shè)計足夠多的測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次

l不能夠滿足判定覆蓋

〔6〕條件判定組合覆蓋

l設(shè)計足夠多的測試用例,使得判定中的每個條件的所有可能〔真/假〕至少出現(xiàn)一次,并且每個判定本身的判定結(jié)果也至少出現(xiàn)一次

l缺點:沒有考慮單個判定對整體結(jié)果的影響,無法發(fā)現(xiàn)邏輯錯誤

〔7〕多條件覆蓋

l也稱條件組合覆蓋,設(shè)計足夠多的測試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次〔以數(shù)軸形式劃分區(qū)域,提取交集,建立最少的測試用例〕

l滿足條件覆蓋一定滿足判定覆蓋、條件覆蓋、條件判定組合覆蓋

l缺點:判定語句較多時,條件組合值比較多

〔8〕修正條件判定覆蓋

l每一個程序模塊的入口和出口點都要考慮至少要被調(diào)用一次,每個程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次

l程序的判定被分解為通過邏輯操作符〔and,or〕連接的bool條件,每個條件對于判定的結(jié)果值是獨立的練習(xí)1:采用多條件覆蓋方法,對下程序進行白盒測試用例設(shè)計

if((a>1)&&(b==0))

{

x=x/a;

}

if((a==2)||(x>1))

{

x=x+1;

}3.根本路徑覆蓋

〔1〕概述

l在程序控制流圖的根底上,通過分析程序控制流圖的環(huán)路復(fù)雜性,導(dǎo)出根本可執(zhí)行路徑的集合,然后據(jù)此設(shè)計測試用例

l設(shè)計出的測試用例要保證在測試中程序的每一條可執(zhí)行語句至少執(zhí)行一次

〔2〕程序控制流圖

l控制流圖是描述程序控制流的一種方式

l圖形符號:圓圈代表一個結(jié)點表示一個或多個無分支的語句或源程序語句

l邊和點圈定的局部叫做區(qū)域。當(dāng)對區(qū)域計數(shù)時,圖形外的一個局部也應(yīng)記為一個區(qū)域

l判斷語句中的條件為復(fù)合條件時,即條件表達式由一個或多個邏輯運算符連接的邏輯表達式〔aandb〕,那么需要改變復(fù)合條件的判斷為一系列只有單個條件的嵌套的判斷

圖形符號圖所示

〔3〕程序環(huán)路復(fù)雜性

l程序的環(huán)路復(fù)雜性即McCabe復(fù)雜性度量,簡單的定義為控制流圖的區(qū)域數(shù)

l從程序的環(huán)路復(fù)雜性可導(dǎo)出程序根本路徑集合中的獨立路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界

l獨立路徑:包括一組以前沒有處理的語句或條件的一條路徑

l通常環(huán)路復(fù)雜性可用以下三種方法求得:

v將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。

v設(shè)E為控制流圖的邊數(shù),N為圖的結(jié)點數(shù),那么定義環(huán)路復(fù)雜性為V(G)=E-N+2。

v假設(shè)設(shè)P為控制流圖中的判定結(jié)點數(shù),那么有V(G)=P+1。

〔4〕根本路徑測試步驟

l以詳細設(shè)計或源代碼為根底,導(dǎo)出程序的控制流圖

l計算得到控制流圖G的環(huán)路復(fù)雜性v(g)

l確定線性無關(guān)的路徑的根本集

l生成測試用例,確保根本路徑集中每條路徑的執(zhí)行五.其他白盒測試方法

1.域測試

〔1〕概述

是一種基于程序結(jié)構(gòu)的測試方法,基于對程序輸入空間〔域〕的分析,選擇適的測試點進行測試

〔2〕Howden錯誤分類-相對于程序路徑分類

l域錯誤:程序的控制流存在錯誤,對于某一特定的輸入可能執(zhí)行的是一條錯誤路徑,這種錯誤稱為路徑錯誤,也叫做域錯誤

l計算型錯誤:對于特定輸入執(zhí)行的路徑正確,但賦值語句的錯誤導(dǎo)致輸出結(jié)果錯誤,稱為計算型錯誤

l喪失路徑錯誤:由于程序中的某處少了一個判定謂詞而引起的

〔3〕測試?yán)硐虢Y(jié)果:檢驗輸入空間的每一個輸入元素是否都產(chǎn)生正確的結(jié)果

〔4〕缺點

l為進行域測試對程序提出的限制過多

l當(dāng)程序存在很多路徑時,所需的測試點很多

2.符號測試

〔1〕概述

l根本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號值,符號值可以是根本的符號變量值,也可以是符號變量值的表達式。

l符號測試執(zhí)行的是代數(shù)運算,可以作為普通測試的一個擴充

l符號測試可以看作是程序測試和程序驗證的一個折衷方法

〔2〕測試?yán)硐肭闆r:程序中僅有有限的幾條執(zhí)行路徑,如果都完成了符號測試,就可把握確實認(rèn)程序的正確性了

〔3〕缺點

l分支問題

l二義性問題

l大程序問題

3.Z路徑覆蓋

〔1〕概述

對循環(huán)機制進行簡化,減少路徑的數(shù)量,使得覆蓋所有路徑成為可能,簡化循環(huán)意義下的路徑覆蓋稱為Z路徑覆蓋

〔2〕循環(huán)簡化:限制循環(huán)次數(shù),只考慮循環(huán)一次或零次情況

4.程序變異

〔1〕概述

是一種錯誤驅(qū)動測試

錯誤驅(qū)動測試:指該方法是針對某類特定程序錯誤的,即專門測試某類錯誤是否存在

錯誤驅(qū)動測試分類:程序強變異和程序弱變異

〔2〕優(yōu)點:便于集中目標(biāo)對軟件危害最大的可能錯誤,提高測試效率,降低本錢

六.白盒測試綜合策略

1.白盒測試中測試方法的選擇策略

〔1〕在測試中,首先盡量使用測試工作進行靜結(jié)構(gòu)分析

〔2〕采用先靜態(tài)后動態(tài)的組合方式,先進行靜態(tài)結(jié)構(gòu)分析,代碼檢查和靜態(tài)質(zhì)量度量,然后現(xiàn)進行覆蓋測試

〔3〕利用靜態(tài)結(jié)構(gòu)分析的結(jié)果,通過代碼檢查和動態(tài)測試的方法對結(jié)果進一步確認(rèn),使測試工作更為有效

〔4〕覆蓋率測試是白盒測試的重點,使用根本路徑測試到達語句覆蓋標(biāo)準(zhǔn);對于重點模塊,應(yīng)使用多種覆蓋標(biāo)準(zhǔn)衡量代碼的覆蓋率

〔5〕不同測試階段,側(cè)重點不同

l單元測試:以代碼檢查、邏輯覆蓋

l集成測試:增加靜構(gòu)結(jié)構(gòu)分析、靜態(tài)質(zhì)量度量

l系統(tǒng)測試:根據(jù)黑盒測試結(jié)果,采用白盒測試

2.最少測試用例數(shù)計算

l將構(gòu)成循環(huán)操作的重復(fù)型結(jié)構(gòu)用選擇結(jié)構(gòu)代替,因此在N-S圖中只存在順序和分支操作

lN-S圖按分支結(jié)構(gòu)分層,整個程序的最少測試用例數(shù)為每個分層中最少測試用例數(shù)的乘積

3.測試覆蓋標(biāo)準(zhǔn)

lFoster的ESTCA覆蓋標(biāo)準(zhǔn)

lWoodward等人的層次LCSAJ覆蓋標(biāo)準(zhǔn)2:21

|\o"單擊為此項添加評論。"添加評論

|\o"單擊以顯示此項的固定鏈接。"固定鏈接

|\o"單擊以顯示此項的引用通告。"引用通告(0)

|\o"在您的共享空間中記錄關(guān)于此項的日志。"記錄它

|\o"單擊以顯示此類別的所有項。"計算機與Internet黑盒測試一.黑盒測試概述1.定義

l也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用

l把程序看成一個黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性,著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu)

l在程序接口進行測試,只檢查程序功能是否按照需求說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息

l主要針對軟件界面和軟件功能進行測試

2.試圖發(fā)現(xiàn)的錯誤類型

l功能不正確或遺漏

l界面錯誤〔輸入能否正確的接受?能否輸出正確的結(jié)果〕

l數(shù)據(jù)庫訪問錯誤〔如數(shù)據(jù)結(jié)構(gòu)定義錯誤或外部信息〔如數(shù)據(jù)文件〕訪問錯誤〕

l性能錯誤

l初始化和終止錯誤

3.黑盒測試用例設(shè)計方法

〔1〕等價類劃分法:把程序的輸入域劃分成假設(shè)干局部,然后從每個局部中選取少數(shù)代表性數(shù)據(jù)作為測試用例。每一類的代表性數(shù)據(jù)在測試中的作用等價于這一類的其他值

〔2〕邊界值分析法:通過選擇等價類邊界的測試用例。不僅重視輸入條件邊界,而且也必須考慮輸出域邊界

〔3〕錯誤推測法:基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設(shè)計測試用例的方法

〔4〕因果圖法:從用自然語言書寫的程序規(guī)格說明的描述中找出因〔輸入條件〕和果〔輸入或程序狀態(tài)的改變〕,可以通過因果圖轉(zhuǎn)換成判定表

〔5〕判定表驅(qū)動法:利用判定表進行測試用例的設(shè)計

〔6〕正交試驗設(shè)計法:使用已設(shè)計好的正交表格來安排試驗,并進行數(shù)據(jù)分析的一種方法,目的是用最少的測試用例到達最高的測試覆蓋率

〔7〕功能圖法:用功能圖形象地表示程序的功能說明,并機械地生成功能圖的測試用例。功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成

二.黑盒測試用例設(shè)計方法

1.等價類劃分法

〔1〕劃分根底:需求規(guī)格說明書中輸入、輸出要求

〔2〕等價類:某個輸入域的子集合;分為有效等價類和無效等價類

l有效等價類:指對于程序規(guī)格說明書來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可以檢驗程序是否實現(xiàn)了規(guī)格說明書中的功能和性能

l無效等價類:與有效等價的定義恰巧相反

〔3〕劃分等價類原那么〔6條〕

序號輸入條件〔數(shù)據(jù)〕劃分等價類

1規(guī)定了取值范圍值的個數(shù)一個有效等價類兩個無效等價類

2規(guī)定了輸入值的集合規(guī)定了“必須如何〞的條件一個有效等價類一個無效等價類

3是一個布爾量一個有效等價類一個無效等價類

4輸入數(shù)據(jù)的一組值〔n個〕,并且程序?qū)γ恳粋€輸入值分別進行處理n個有效等價類一個無效等價類

5規(guī)定必須遵守的規(guī)那么一個有效等價類〔符合規(guī)那么〕假設(shè)干個無效等價類

6在確知已劃分的等價類中,各元素在程序處理中的方式不同的情況下,那么應(yīng)再將該等價類進一步地劃分為更小的等價類

〔4〕列出等價類表

在確定了等價類之后,建立等價類表,列出所有劃分出的等價類

輸入條件有效等價類無效等類

………………〔5〕確定測試用例步驟

l第一步:為每個等價類規(guī)定一個惟一的編號

l第二步:設(shè)計一個新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類。重復(fù)這一步驟,最后使得所有有效等價類均被測試用例所覆蓋

l第三步:設(shè)計一個新的測試用例,使其只覆蓋一個無效等價類。重復(fù)這一步驟,最后使得所有有效等價類均被測試用例所覆蓋

小結(jié):采用等價類劃分方法設(shè)計測試用例,按照劃分等價類、列出等價列表、確定測試用例三個步驟完成,目標(biāo)是把可能的測試用例組合縮減到仍然足以滿足軟件測試需求為止。2.邊界值分析法

〔1〕邊界類型

l邊界條件:可以在產(chǎn)品說明書中有定義或者在使用軟件過程中確定

l次邊界條件:在軟件內(nèi)部,也稱為內(nèi)部邊界條件

l其他邊界條件:如輸入信息為空〔對于此類問題應(yīng)建立單獨的等價類空間〕、非法、錯誤、不正確和垃圾數(shù)據(jù)

〔2〕邊界值的選擇方法〔遵循原那么〕

序號輸入條件〔數(shù)據(jù)〕輸入邊界值數(shù)據(jù)

1規(guī)定了取值范圍剛剛到達這個范圍剛剛超越這個范圍

2規(guī)定值的個數(shù)最大個數(shù)、比最大個數(shù)大1最小個數(shù)、比最小個數(shù)少1

3根據(jù)規(guī)格說明書的每個輸出條件,使用原那么1、2

4輸入或輸出是個有序集合集合的第一個、最后一個元素

5程序中使用一個內(nèi)部數(shù)據(jù)結(jié)構(gòu)內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界上的值

6分析規(guī)格說明,找出其他可能的邊界〔3〕例子:

l允許文本輸入1~255個字符:測試用例-1、255、254、0、256

l程序讀寫軟盤:測試用例-文件很小、等于軟盤容量限制之內(nèi)、空、超過

l程序允許在一張紙上打印多個頁面:測試用例-只打印一頁,規(guī)定最大頁,0頁,大于允許最大頁數(shù)3.錯誤推測法

根本思想:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例4.因果圖法

側(cè)重于輸入條件的各種組合,各個輸入情況之間的相互制約關(guān)系

〔1〕因果圖設(shè)計方法

從用自然語言書寫的程序規(guī)格說明的描述中找出因果,通過因果圖轉(zhuǎn)換成判定表

〔2〕因果圖導(dǎo)出測試用例步驟

l第一步:分析程序規(guī)格說明的描述中,哪些是原因,哪些是結(jié)果。原在因常常是輸入條件或是輸入條件的等價類,結(jié)果是輸出條件

l第二步:分析程序規(guī)格說明的描述中語義的內(nèi)容,并將其表示成連接各個原因與各個結(jié)果的‘因果圖’

l第三步:標(biāo)明約束條件

l第四步:把因果圖轉(zhuǎn)換成判定表

l第五步:為判定表中每一列表示的情況設(shè)計測試用例

〔3〕因果圖根本圖形符號

通常在因果圖中,用Ci表示原因,Ei表示結(jié)果,各結(jié)點表示狀態(tài),可取值0〔狀態(tài)不出現(xiàn)〕或1〔某狀態(tài)出現(xiàn)〕

l恒等:假設(shè)原因出現(xiàn),那么結(jié)果出現(xiàn);假設(shè)原因不出現(xiàn),那么結(jié)果不出現(xiàn)

l非〔~〕:假設(shè)原因出現(xiàn),那么結(jié)果不出現(xiàn);假設(shè)原因不出現(xiàn),那么結(jié)果出現(xiàn)

l或〔V〕:假設(shè)幾個原因中有一個出現(xiàn),那么結(jié)果出現(xiàn);假設(shè)幾個原因都不出現(xiàn),那么結(jié)果不出現(xiàn);

l與〔∧〕:假設(shè)幾個原因都出現(xiàn),結(jié)果才出現(xiàn);假設(shè)其中有一個原因不出現(xiàn),那么結(jié)果不出現(xiàn)

〔4〕因果圖的約束符號

從輸入〔原因〕考慮四種約束

lE〔互斥〕:表示兩個原因不會同時成立,兩個中最多有一個可能成立

lI〔包含〕:表示三個原因中至少有一個必須成立

lO〔惟一〕:表示兩個原因中必須有一個,且僅有一個成立

lR〔要求〕:表示兩個原因,a出現(xiàn)時,b也必須出現(xiàn),a出現(xiàn)時,b不可能不出現(xiàn)

從輸出〔結(jié)果〕考慮一種約束

lM〔屏蔽〕:兩個結(jié)果,a為1時,b必須是0,當(dāng)a為0時,b值不定

2023-4-19

5.判定表驅(qū)動法

〔1〕判定表:是分析和表達多邏輯條件下執(zhí)行不同操作的情況的工具

〔2〕判定表組成

l條件樁:列出了問題的所有條件

l動作樁:列出了問題規(guī)定可能采取的操作

l條件項:列出針對它所列條件的取值,在所有可能情況下的真假值

l動作項:列出在條件項的各種取值情況下應(yīng)該采取的動作

l規(guī)那么:任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作

注:判定表中貫穿條件項和動作項的一列就是一條規(guī)那么;

〔3〕判定表的建立〔步驟〕

l第一步:確定規(guī)那么的個數(shù)。假設(shè)有n個條件,每個條件有兩個取值〔0,1〕,故有2n種規(guī)那么

l第二步:列出所有的條件樁和動作樁

l第三步:填入條件項

l第四步:填入動作項。制定初始判定表

l第五步:簡化。合并相似規(guī)那么或者相同動作

〔4〕適合使用判定表設(shè)計測試用例的條件

l規(guī)格說明以判定表的形式給出,或很容易轉(zhuǎn)換成判定表

l條件的排列順序不影響執(zhí)行哪些操作

l規(guī)那么的排列順序不影響執(zhí)行哪些操作

l當(dāng)某一規(guī)那么的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)那么

l如果某一規(guī)那么要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要

2023-4-20

6.正交試驗法

〔1〕概述

l從大量的試驗數(shù)據(jù)中挑選適量的、有代表性的點,從而合理地安排測試的一種科學(xué)的試驗設(shè)計方法

l使用已造好的表格“-〞正交表來安排試驗并進行數(shù)據(jù)分析的一種方法

l因子:影響實現(xiàn)指標(biāo)的條件

l因子的狀態(tài):影響實現(xiàn)因子的條件

〔2〕優(yōu)點

l節(jié)省測試工時

l可控制生成的測試用例的數(shù)量

l測試用例具有一定的覆蓋率

〔3〕設(shè)計步驟

l提取功能說明,構(gòu)造因子‘-’狀態(tài)表。

l加權(quán)篩選,生成因素分析表;

l利用正交表構(gòu)造測試數(shù)據(jù)集,正交表的推導(dǎo)依據(jù)Galois理論

L:代表正交表,L8〔27〕代表7為因子數(shù),2為因子的水平數(shù),8為此表行的數(shù)目〔試驗次數(shù)〕

行數(shù)為mn型的正交表中,試驗次數(shù)〔行數(shù)〕=∑〔每列水平數(shù)-1〕+1

例:5個3水平因子及一個2水平因子,表示為35*21,試驗次數(shù)=5*(3-1)+1*(2-1)+1=12,

即L12〔35*2〕

7.功能圖法

〔1〕程序功能說明的組成

l動態(tài)說明:描述輸入數(shù)據(jù)的次序或轉(zhuǎn)移次序

l靜態(tài)說明:描述輸入條件和輸出條件之間的對應(yīng)關(guān)系

〔2〕功能圖:由狀態(tài)遷移圖和布爾函數(shù)組成,狀態(tài)遷移圖用狀態(tài)和遷移來表示。一個狀態(tài)指出數(shù)據(jù)輸入的位置〔或時間〕,一個遷移指明狀態(tài)的改變,同時要依靠判定表或因果圖表示的邏輯功能

〔3〕功能圖法概述

l用功能圖形象地表示程序的功能說明,并機械地生成功能圖的測試用例

l功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成

v狀態(tài)遷移圖:用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù);由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)

v邏輯功能模型:用于表示在狀態(tài)中輸入條件和輸出條件的對應(yīng)關(guān)系。由輸入數(shù)據(jù)決定輸出數(shù)據(jù)。此模型只適用于描述靜態(tài)說明

l功能圖測試用例由測試中經(jīng)過的一系列狀態(tài)和在每個狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿中的一對條件組成

〔4〕測試用例生成方法

從狀態(tài)遷移圖中選取測試用例,用節(jié)點代替狀態(tài),用弧線代替遷移,狀態(tài)圖就可轉(zhuǎn)化成一個程序的控制流程圖形式

〔5〕測試用例生成規(guī)那么

為了把狀態(tài)遷移〔測試路徑〕的測試用例與邏輯模型〔局部測試用例〕的測試用例組合起來,從功能圖生成實用的測試用例,在一個結(jié)構(gòu)化的狀態(tài)遷移〔SST〕中,定義3種形式的循環(huán):順序,選擇和重復(fù)

〔6〕功能圖生成測試用例步驟

l生成局部測試用例:在每個狀態(tài)中,從因果圖生成局部測試用例。局部測試用例由原因值〔輸入數(shù)據(jù)〕組合與對應(yīng)的結(jié)果值〔輸出數(shù)據(jù)或狀態(tài)〕構(gòu)成

l測試路徑生成:利用上面的規(guī)那么生成從初始狀態(tài)到最后狀態(tài)的測試路徑

l測試用例合成:合成測試路徑與功能圖中每個狀態(tài)的局部測試用例。結(jié)果是初始狀態(tài)到最后狀態(tài)的一個狀態(tài)序列,以及每個狀態(tài)中輸入數(shù)據(jù)與對應(yīng)輸出數(shù)據(jù)的組合。

l測試用例的合成算法:采用條件構(gòu)造樹8.場景法

〔1〕根本流和備選流

采用此方法進行設(shè)計時,需要進行場景的設(shè)計,在場景中采用根本流和備選流表示經(jīng)過用例的每條路徑

l根本流:采用直黑線表示,是經(jīng)過用例的最簡單的路徑〔無任何過失,程序從開始直接執(zhí)行到結(jié)束〕

l備選流:采用不同顏色表示,一個備選流可能從根本流開始,在某個特定條件下執(zhí)行,然后重新參加根本流中,也可以起源于另一個備選流,或終止用例,不在參加到根本流中;〔各種錯誤情況〕

〔2〕設(shè)計步驟

l根據(jù)說明,描述出程序的根本流及各項備選流

l根據(jù)根本流和各項備選流生成不同的場景

l對每一個場景生成相應(yīng)的測試用例

l對生成的所有測試用例重新復(fù)審,去掉多余的測試用例,測試用例確定后,對每一個測試用例確定測試數(shù)據(jù)值

三.黑盒測試用例設(shè)計方法的選擇策略

1.首先進行等價類劃分,包括輸入條件和輸出條件的等價類劃分,將無限測試變成有限測試,這是減少測試量和提高測試效率的最有效方法

2.在任何情況下都必須使用邊界值分析方法。此方法設(shè)計的測試用例發(fā)現(xiàn)程序錯誤的能力最強

3.可以用錯誤和推測法追加一些測試用例

4.對照程序的邏輯,檢查已設(shè)計的測試用例的邏輯覆蓋度,如果沒有到達要求,應(yīng)在補充

5.如果程序的功能說明中含有輸入條件的組合情況,一開始就可以使用因果圖法和判定表驅(qū)動法

6.對于參數(shù)配置類的軟件,要用正交試驗法選擇較少的組合方式到達最正確效果

7.功能圖法也是很好的測試用例設(shè)計方法,我們可以通過不同時期條件的有效性設(shè)計不同的數(shù)據(jù)

8.對于業(yè)務(wù)流清晰的系統(tǒng),可以利用場景法貫空整個測試案例過程,在案例中綜合使用各種方法

四.測試用例的編寫

1.測試用例概述

〔1〕定義

l將測試行為具體量化的方法之一

l設(shè)計一種情況,軟件程序在這種情況下,必須能夠正常運行并且到達程序所設(shè)計的執(zhí)行結(jié)果

l為到達最正確的測試效果或高效的揭露隱藏的錯誤而精心設(shè)計的少量測試數(shù)據(jù),

l一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤

〔2〕優(yōu)點:

l在開始實施測試之前設(shè)計好測試用例,可以防止盲目測試并提高測試效率

l測試用例的使用令軟件測試的實施重點突出、目的明確

l在軟件版本更新后只需修正少局部的測試用例便可展開測試工作,降低工作強度,縮短工程周期

l功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而測試用例的通用化和復(fù)用化使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷攀升

2.方案測試用例的目的

〔3〕方案測試用例,是達成測試目標(biāo)的必由之路

〔4〕組織性:使測試用例具有組織性,便于全體測試員和其他工程小組人員有效地審查和使用

〔5〕重復(fù)性和跟蹤,可以明確測試過程中測試用例的執(zhí)行情況,保證測試的全面性

〔6〕方案測試用例,可以防止發(fā)布忽略某些測試用例的軟件

〔7〕測試證實,正確的測試用例方案和跟蹤提供了一種證實測試的手段

3.測試設(shè)計說明

〔1〕定義:在測試方案中提煉測試方法,要明確指出設(shè)計包含的特性以及相關(guān)的測試用例和測試程序,并指定判斷通過/失敗的規(guī)那么

〔2〕目的;組織和描述針對具體特性需要進行的測試,注:不給出具體的測試用例或執(zhí)行測試的步驟

〔3〕包含的局部內(nèi)容〔來自ANSI/IEEE829

ANSI美國國家標(biāo)準(zhǔn)化組織〕

l標(biāo)識符:用于引用和定位測試設(shè)計說明的惟一標(biāo)識符

l要測試的特性:對測試設(shè)計說明所包含的軟件特性的描述。還將明確出要間接測試的特性

l方法:描述測試的通用方法。如果方法在測試方案中描述,在測試設(shè)計說明中要詳細描述要使用的技術(shù),并給出如何驗證測試結(jié)果的方法

l測試用例信息:用于描述所引用的測試用例的相關(guān)信息。如測試用例編號

l通過/失敗規(guī)那么:描述用什么規(guī)那么來判定某項特性的測試結(jié)果是通過還是失敗。

4.測試用例說明

〔1〕定義〔ANSI/IEEE829〕:編寫用于輸入的實際數(shù)據(jù)和預(yù)期結(jié)果,并明確指出使用具體測試用例產(chǎn)生的測試程序的任何限制

〔2〕包含的內(nèi)容

l標(biāo)識符:由測試設(shè)計過程說明和測試程序說明引用的唯一標(biāo)識符

l測試項:描述被測試的詳細特性、代碼模塊等

l輸入說明:列舉執(zhí)行測試用例的所有輸入內(nèi)容或者條件

l輸出說明:描述進行測試用例預(yù)期的結(jié)果

l環(huán)境要求:執(zhí)行測試用例的軟件、硬件、測試工具及人員等要求

l特殊要求:描述執(zhí)行測試用例的特殊要求

l用例之間的依賴性:注明與其分用例的依賴關(guān)系或受其他用例的影響

5.測試程序說明

〔1〕定義:明確指出為實現(xiàn)相關(guān)測試設(shè)計而執(zhí)行具體測試用例和操作軟件系統(tǒng)的全部步驟,有時也稱為‘測試腳本說明’,即詳細定義了執(zhí)行測試用例的每一步操作

〔2〕包含的內(nèi)容

l標(biāo)識符:把測試程序與相關(guān)測試用例和測試設(shè)計相聯(lián)系的惟一標(biāo)識

l目的:本程序描述的目的以及將要執(zhí)行的測試用例的引用信息

l特殊要求:執(zhí)行測試

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論