【個(gè)人向】軟件測(cè)試復(fù)習(xí)

軟件測(cè)試(普遍認(rèn)同):

  • 軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程痕貌;
  • 測(cè)試是為了證明程序有錯(cuò)谍肤,而不是證明程序無錯(cuò)誤胧砰;
  • 一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤唉匾;
  • 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試凄硼。

zero-bug vs. good-enough

防止過少和過量的測(cè)試铅协。

木桶原則

不能有短板。測(cè)試僅作為重要的一環(huán)帆喇,不能僅依賴測(cè)試來保證質(zhì)量警医;

80-20原則

能被發(fā)現(xiàn)的Bug僅占全部Bug的80%,還有20%只有在大范圍坯钦、長(zhǎng)時(shí)間使用下才能暴露预皇。

測(cè)試用例(Test Case)

是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果婉刀,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求吟温。

測(cè)試和調(diào)試

  • 調(diào)試:目的比較明確,是為了解決某一個(gè)特定問題突颊,調(diào)試可以看作測(cè)試的一部分鲁豪。
  • 測(cè)試:比較完整的檢查軟件是否滿足用戶需求的一種有計(jì)劃的行為。

軟件和硬件

  • 表現(xiàn)形式:硬件有形? 軟件無形律秃、軟件運(yùn)行時(shí)才能看出優(yōu)劣爬橡、管理困難;
  • 生產(chǎn)方式:軟件是邏輯產(chǎn)品棒动、通信的誤差糙申;
  • 質(zhì)量要求:精度?有的軟件是誤差零容忍;
  • 維護(hù):硬件更換?軟件升級(jí)船惨。

軟件缺陷/Defect/Bug

存在于軟件(文檔柜裸、數(shù)據(jù)缕陕、程序)中那些不希望、或不可接受的偏差疙挺,而導(dǎo)致軟件產(chǎn)生的質(zhì)量問題扛邑。

常見缺陷

  • 未實(shí)現(xiàn)要求功能;
  • 出現(xiàn)說明書中指明的不能出現(xiàn)的錯(cuò)誤铐然;
  • 實(shí)現(xiàn)未提到功能蔬崩;
  • 未實(shí)現(xiàn)說明書未提及但應(yīng)該實(shí)現(xiàn)的目標(biāo);
  • 軟件難以理解锦爵、不易使用舱殿、運(yùn)行緩慢。

缺陷分類

按表現(xiàn)形式

  • Function
  • Interface
  • Algorithm
  • Documentation
    ...

按嚴(yán)重程度

  • critical(關(guān)鍵的)
  • cosmetic
  • minor
  • major

按優(yōu)先級(jí)

  • high
  • middle
  • low

按在生命周期的出現(xiàn)階段

  • Requirement
  • Design
  • Architecture
  • Test
  • Code

按根源

  • 測(cè)試策略
  • 工具和方法
  • 團(tuán)隊(duì)和人
  • 缺乏通信
    ...

按缺陷的生命周期

  • new/unconfirmed
  • confirmed
  • fixed
  • closed
  • reopen

報(bào)告缺陷的原則

  • 早原則:初期的錯(cuò)誤vs.后期錯(cuò)誤
  • 有效原則:簡(jiǎn)短险掀、單一沪袭、術(shù)語、明確
  • 中立原則:缺陷不可避免樟氢、允許缺陷產(chǎn)生
  • 重現(xiàn)原則:確保錯(cuò)誤能重現(xiàn)冈绊。

缺陷管理工具

一個(gè)網(wǎng)絡(luò)應(yīng)用程序,提供多用戶操作埠啃、管理缺陷死宣,分析缺陷報(bào)告等功能。

舉例子:

  • Bugzilla:一款開源碴开、免費(fèi)毅该、全球許多組織喜愛的缺陷管理工具。Mozilla項(xiàng)目組開發(fā)和使用潦牛。
  • Mantis
  • Trac

使用的兩種模式

  • 服務(wù)端模式:組件服務(wù)器眶掌,為其他用戶提供缺陷管理平臺(tái)。一般需安裝:數(shù)據(jù)庫巴碗、網(wǎng)頁服務(wù)器朴爬、工具軟件。
  • 客戶端模式:訪問已有服務(wù)器橡淆。所需軟件:瀏覽器或者客戶端軟件召噩。

軟件質(zhì)量

ISO關(guān)于質(zhì)量的定義:一個(gè)實(shí)體的所有特性,基于這些特性可以滿足明顯的或隱含的需求逸爵。而質(zhì)量就是實(shí)體基于這些特性滿足需求的程度具滴。

質(zhì)量層次

  • 符合需求規(guī)格:符合開發(fā)者明確定義的目標(biāo)。
  • 符合用戶顯式需求:符合用戶所明確說明的目標(biāo)师倔。
  • 符合用戶實(shí)際需求:包括用戶明確說明的和隱含的需求构韵。

影響軟件質(zhì)量的因素

  • 流程
  • 技術(shù)
  • 組織

動(dòng)態(tài)測(cè)試工作分類

組織內(nèi)部進(jìn)行:

  • 單元測(cè)試
  • 集成測(cè)試
  • 系統(tǒng)測(cè)試

用戶參與進(jìn)行:

  • 驗(yàn)收測(cè)試
  • α(ALPHA)測(cè)試
  • β(BETA)測(cè)試

單元測(cè)試

針對(duì):軟件基本組成單元(設(shè)計(jì)的最小單位)
目的:與《詳細(xì)設(shè)計(jì)說明書》的符合程度
測(cè)試方法:白盒測(cè)試
評(píng)估基準(zhǔn):邏輯覆蓋率

集成測(cè)試

基礎(chǔ):在單元測(cè)試基礎(chǔ)上,將所有模塊按照概要設(shè)計(jì)要求組裝成為子系統(tǒng)或系統(tǒng)。
針對(duì):組裝后功能以及模塊間接口
目的:與《概要設(shè)計(jì)說明書》的符合程度
測(cè)試方法:灰盒測(cè)試
評(píng)估基準(zhǔn):接口覆蓋率

系統(tǒng)測(cè)試

針對(duì):已集成好的軟件系統(tǒng)贞绳,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件致稀、外設(shè)冈闭、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起
目的:與《需求規(guī)格說明書》的符合程度
測(cè)試方法:黑盒測(cè)試
評(píng)估基準(zhǔn):測(cè)試用例對(duì)需求規(guī)格的覆蓋率

穿插:回歸測(cè)試(Regression Testing)

目的:驗(yàn)證缺陷得到了正確的修復(fù)抖单,同時(shí)對(duì)系統(tǒng)的變更沒有影響以前的功能萎攒。
發(fā)生階段:任何階段,包括單元測(cè)試矛绘、集成測(cè)試和系統(tǒng)測(cè)試

【拓展】捕捉回放工具
對(duì)系統(tǒng)測(cè)試功能比較簡(jiǎn)單耍休、測(cè)試界面相對(duì)穩(wěn)定并且測(cè)試用例良好組織的測(cè)試來說,采用捕捉回放工具是比較合適的:

  • QTP
  • Robot
  • SilkTest

回歸測(cè)試分類

完全重復(fù)測(cè)試

重新執(zhí)行所有在前期測(cè)試階段建立的測(cè)試用例货矮。

選擇性重復(fù)測(cè)試

選擇地重新執(zhí)行部分在前期測(cè)試階段建立的測(cè)試用例

它又可以分為:

  • 覆蓋修改法:針對(duì)被修改的部分羊精,驗(yàn)證沒有錯(cuò)誤發(fā)生。
  • 周邊影響法:要包含覆蓋修改法確定的用例囚玫,還需要分析修改的擴(kuò)散影響喧锦。
  • 指標(biāo)達(dá)成方法:類似于單元測(cè)試的方法。在重新執(zhí)行測(cè)試前抓督,先確定一個(gè)要達(dá)成的指標(biāo)燃少,基于這種要求選擇一個(gè)最小的測(cè)試用例集合。

驗(yàn)收測(cè)試

基礎(chǔ):通過內(nèi)部系統(tǒng)測(cè)試及軟件配置審查之后
組成:項(xiàng)目組成員铃在、用戶代表等組成
基準(zhǔn):驗(yàn)收測(cè)試根據(jù)合同阵具、《需求規(guī)格說明書》/《驗(yàn)收測(cè)試計(jì)劃》

α測(cè)試

組成:用戶、開發(fā)者
過程: 軟件在一個(gè)自然設(shè)置狀態(tài)下使用定铜。開發(fā)者坐在用戶旁阳液,隨時(shí)記下錯(cuò)誤情況和使用中的問題
目的:評(píng)價(jià)軟件產(chǎn)品的FLURPS(即功能、局域化宿稀、可用性趁舀、可靠性、性能和技術(shù)支持

β測(cè)試

組成:用戶
過程:由軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試
過程:開發(fā)者通常不在測(cè)試現(xiàn)場(chǎng)祝沸,情況不可控矮烹。

測(cè)試過程

階段劃分

  • 計(jì)劃 – 測(cè)試計(jì)劃
  • 設(shè)計(jì) – 測(cè)試方案
  • 實(shí)現(xiàn) – 測(cè)試用例、測(cè)試規(guī)程
  • 執(zhí)行 – 測(cè)試報(bào)告

常見過程模型

  • 瀑布模型
  • H模型
  • V&V模型

驗(yàn)證(Verification)

  • 保證軟件正確地實(shí)現(xiàn)特定功能的一系列活動(dòng)
  • 檢測(cè)每一階段形成的工作產(chǎn)品是否與前一階段定義的規(guī)格相一致

確認(rèn)(Validation)

  • 保證所生產(chǎn)的軟件可追溯到用戶需求的一系列活動(dòng)
  • 檢測(cè)每一階段的工作產(chǎn)品是否與最初定義的軟件需求罩锐、規(guī)格相一致

軟件靜態(tài)測(cè)試

在不運(yùn)行程序的情況下奉狈,對(duì)程序進(jìn)行檢查和審核

主要包括:

  • 各階段評(píng)審
  • 代碼檢查
  • 程序結(jié)構(gòu)分析
  • 代碼質(zhì)量度量

軟件復(fù)雜性

Halstead復(fù)雜度

根據(jù)可執(zhí)行代碼的操作符和操作數(shù)的數(shù)量來計(jì)算程序的復(fù)雜性。
程序的實(shí)際長(zhǎng)度與其預(yù)測(cè)長(zhǎng)度非常接近:

  • 實(shí)際長(zhǎng)度= N1 + N2涩惑;
  • 預(yù)測(cè)長(zhǎng)度= n1?log(2?n1)+n2?log(2?n2)

其中各個(gè)變量的意思:

  • n1 =不同運(yùn)算符的個(gè)數(shù)仁期;
  • n2 =不同操作數(shù)的個(gè)數(shù);
  • N1 =實(shí)際運(yùn)算符的個(gè)數(shù);
  • N2 =實(shí)際操作數(shù)的個(gè)數(shù)跛蛋。

靜態(tài)測(cè)試工具

FindBugs:一個(gè)免費(fèi)的Java靜態(tài)分析工具熬的,可以直接加載到Eclipse中運(yùn)行。
配置Eclipse中的FindBugs赊级;
使用FindBugs對(duì)Sudoku進(jìn)行靜態(tài)測(cè)試押框;
查看FindBugs查出的錯(cuò)誤,并進(jìn)行相應(yīng)修改理逊。

白盒測(cè)試

插樁法

在被測(cè)程序中插入操作(探測(cè)器)橡伞,實(shí)現(xiàn)探查和監(jiān)控的功能。
通過運(yùn)行被測(cè)試程序晋被,檢查運(yùn)行結(jié)果兑徘,分析其性能。
組成部分羡洛;
構(gòu)造測(cè)試用例挂脑;
運(yùn)行程序;
分析結(jié)果翘县。

覆蓋

  • 判斷覆蓋
  • 條件覆蓋
  • 條件組合覆蓋
  • 路徑覆蓋
  • 語句覆蓋
    判斷覆蓋關(guān)心判定表達(dá)式的結(jié)果最域,而條件覆蓋關(guān)心每個(gè)表達(dá)式的取值,不關(guān)心整個(gè)判定表達(dá)式的最終值锈麸。

路徑測(cè)試

基于路徑覆蓋的思想镀脂,考慮各分支的覆蓋情況,壓縮串行部分忘伞。
McCabe圈復(fù)雜度V (G)
V (G) = m ? n + 2薄翅,其中
m:弧數(shù)
n:節(jié)點(diǎn)數(shù)

覆蓋測(cè)試工具EclEmma

  • 綠色表示該行代碼被完整的執(zhí)行;
  • 紅色表示該行代碼根本沒有被執(zhí)行氓奈;
  • 黃色表示該行代碼部分被執(zhí)行翘魄。

黑盒測(cè)試

邊界值

導(dǎo)致程序失效極少是有兩個(gè)或多個(gè)缺陷同時(shí)作用引起的,而大部分是由單個(gè)變量在邊界值附近取值引起的舀奶。

  • 基本邊界值分析
    當(dāng)考慮一個(gè)變量的邊界值附近取值時(shí)暑竟,其他變量取正常值。
    因此邊界值分析中:
    對(duì)于 n 變量的被測(cè)程序育勺,需要測(cè)試用例為多少個(gè)但荤?
    4n + 1個(gè)

  • 健壯性邊界值分析
    簡(jiǎn)單擴(kuò)展,增加 max+ 和 min- 兩個(gè)非正常值
    含非正常值的測(cè)試用例關(guān)心的不是輸入本身涧至,而是程序的輸出腹躁。

等價(jià)劃分

每一類中的代表數(shù)據(jù)與其他數(shù)據(jù)對(duì)揭示程序的缺陷有相等的作用,一損俱損南蓬,一榮俱榮纺非;

  • 強(qiáng)一般等價(jià)類測(cè)試:基于“多缺陷”假設(shè)哑了,變量的有效等價(jià)類的任意組合。
  • 弱健壯等價(jià)類測(cè)試:在弱一般等價(jià)類基礎(chǔ)上增加無效等價(jià)類的情形烧颖。
  • 強(qiáng)健壯等價(jià)類測(cè)試:在強(qiáng)一般等價(jià)類基礎(chǔ)上增加無效等價(jià)類的情形弱左。

因果圖

直觀的表達(dá)輸入條件和輸出動(dòng)作之間的關(guān)系,幫助測(cè)試人員把注意力集中到與程序功能有關(guān)的輸入組合上炕淮。

決策表

比因果圖法更加嚴(yán)謹(jǐn)科贬,需考慮各種條件的組合情況。
一般因果圖和決策表的設(shè)計(jì)過程比較麻煩鳖悠,僅在復(fù)雜的核心算法中才考慮采用。

正交試驗(yàn)法

研究和處理多因素實(shí)驗(yàn)的一種科學(xué)方法
幫助選擇最佳的或滿意的實(shí)驗(yàn)條件
構(gòu)造正交表优妙,相當(dāng)于前面的方法設(shè)計(jì)的用例乘综,但實(shí)驗(yàn)點(diǎn)更加均勻,又能減少實(shí)驗(yàn)次數(shù)套硼。

正交表:
每一列各種數(shù)字出現(xiàn)的次數(shù)一樣多卡辰;
任何兩列所構(gòu)成的有序數(shù)對(duì)出現(xiàn)的次數(shù)一樣多。

正交表記為L(zhǎng)4(2^3 )
其中
3 表示因子的數(shù)量邪意;
2 表示每個(gè)因子可以取得值(稱為水平九妈,等價(jià)類);
4 為【查表的】正交表的行數(shù)(即測(cè)試用例個(gè)數(shù))雾鬼。

最少實(shí)驗(yàn)次數(shù) = 求和(水平數(shù)-1)+1

Use case 場(chǎng)景法

基于以事件觸發(fā)來控制流程的一種方法萌朱,測(cè)試用例就是描述事件觸發(fā)時(shí)的事件流。

  • 基本流: 按一定事件正確實(shí)現(xiàn)軟件功能的基本流程策菜;
  • 備選流: 其他出現(xiàn)故障或缺陷晶疼、例外的流程。

狀態(tài)遷移圖法

許多需求用狀態(tài)機(jī)的方式來描述又憨,狀態(tài)機(jī)的測(cè)試主要關(guān)注在測(cè)試狀態(tài)轉(zhuǎn)移的正確性上面翠霍。

  • 畫出有限狀態(tài)自動(dòng)機(jī)
  • 從自動(dòng)機(jī)推導(dǎo)出測(cè)試路徑
  • 根據(jù)測(cè)試路徑編寫合法測(cè)試用例
  • 編寫非法測(cè)試用例

JUnit

引入JUnit架包;
自動(dòng)生成測(cè)試框架蠢莺;
組織 AAA 設(shè)計(jì)測(cè)試用例寒匙;
用@Before標(biāo)記初始化函數(shù);
用@After標(biāo)記結(jié)束清理函數(shù)躏将。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锄弱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子耸携,更是在濱河造成了極大的恐慌棵癣,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夺衍,死亡現(xiàn)場(chǎng)離奇詭異狈谊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門河劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壁榕,“玉大人,你說我怎么就攤上這事赎瞎∨评铮” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵务甥,是天一觀的道長(zhǎng)牡辽。 經(jīng)常有香客問我,道長(zhǎng)敞临,這世上最難降的妖魔是什么态辛? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮挺尿,結(jié)果婚禮上奏黑,老公的妹妹穿的比我還像新娘。我一直安慰自己编矾,他們只是感情好熟史,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窄俏,像睡著了一般蹂匹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凹蜈,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天怒详,我揣著相機(jī)與錄音,去河邊找鬼踪区。 笑死昆烁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缎岗。 我是一名探鬼主播静尼,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼传泊!你這毒婦竟也來了鼠渺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤眷细,失蹤者是張志新(化名)和其女友劉穎拦盹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溪椎,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡普舆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年恬口,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沼侣。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祖能,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛾洛,到底是詐尸還是另有隱情养铸,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布轧膘,位于F島的核電站钞螟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏谎碍。R本人自食惡果不足惜筛圆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椿浓。 院中可真熱鬧,春花似錦闽晦、人聲如沸扳碍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋敞。三九已至,卻和暖如春荠瘪,著一層夾襖步出監(jiān)牢的瞬間夯巷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工哀墓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趁餐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓篮绰,卻偏偏與公主長(zhǎng)得像后雷,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吠各,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,193評(píng)論 2 126
  • 一臀突、 軟件測(cè)試基本概念 1 bug的概念 bug類型:defect、fault贾漏、problem候学、error… pr...
    三口一個(gè)瓜閱讀 3,698評(píng)論 0 12
  • 1****、問:你在測(cè)試中發(fā)現(xiàn)了一個(gè)bug****纵散,但是開發(fā)經(jīng)理認(rèn)為這不是一個(gè)bug****梳码,你應(yīng)該怎樣解決隐圾? 首...
    蛋炒飯_By閱讀 5,295評(píng)論 1 94
  • 1.測(cè)試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架边翁。軟件項(xiàng)目的開發(fā)包括:需求翎承、設(shè)...
    宇文臭臭閱讀 6,729評(píng)論 5 100
  • 五行是指金木水火土五種物質(zhì)。 但是五種物質(zhì)又會(huì)有不同的特性符匾。水曰潤下叨咖,火曰炎上,木曰曲直啊胶,金曰從革甸各,土爰...
    微笑面對(duì)生活_78cd閱讀 1,114評(píng)論 0 0