軟件設(shè)計師考試 | 第五章 軟件工程基礎(chǔ)知識 | 系統(tǒng)測試

(一)系統(tǒng)測試與調(diào)試

1.系統(tǒng)測試的意義纫普、目的及原則

意義: 為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程抛虏,成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。

目的: 希望能以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷束凑。

原則:

  • 應(yīng)盡早并不斷地進行測試
  • 測試工作應(yīng)該避免由原開發(fā)軟件的人或小組承擔(dān)
  • 在設(shè)計測試方案時贮喧,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預(yù)期輸出結(jié)果
  • 在設(shè)計測試用例時舔庶,不僅要設(shè)計有效抛蚁、合理的輸入條件,也要包含不合理惕橙、失效的輸入條件
  • 在測試程序時瞧甩,不僅要檢驗程序是否做了該做的事,還要檢驗程序是否做了不該做的事
  • 嚴格按照測試計劃來進行弥鹦,避免測試的隨意性
  • 妥善保存測試計劃肚逸、測試用例,作為軟件文檔的組成部分彬坏,為維護提供方便
  • 測試例子都是精心設(shè)計出來的朦促,可以為重新測試或追加測試提供方便

2.測試過程

過程:

  • 制定測試計劃(充分考慮整個項目的開發(fā)時間和開發(fā)進度及一些人為因素和客觀條件)
  • 編制測試大綱(規(guī)定了系統(tǒng)每項功能或特性所必須完成的基本測試項目和測試完成的標(biāo)準)
  • 根據(jù)測試大綱設(shè)計和生成測試用例,產(chǎn)生測試設(shè)計說明文檔(主要包括被測項目栓始、輸入數(shù)據(jù)思灰、測試過程、預(yù)期輸出結(jié)果等)
  • 實施測試(按照測試大綱和測試用例進行測試)
  • 生成測試報告(對測試進行概要說明混滔、列出測試的結(jié)論、指出缺陷和錯誤歹颓、給出整改建議)

(二)傳統(tǒng)軟件的測試策略

1.單元測試

也叫模塊測試坯屿,在模塊編寫完成且無編譯錯誤后就可以進行。
單元測試側(cè)重于模塊中的內(nèi)部處理邏輯和數(shù)據(jù)結(jié)構(gòu)巍扛。
測試內(nèi)容:

  • 模塊接口
    • 測試模塊的輸入?yún)?shù)和形式參數(shù)在個數(shù)领跛、屬性、單位上是否一致
    • 調(diào)用其他模塊時撤奸,所給出的實際參數(shù)和被調(diào)用模塊的形式參數(shù)在個數(shù)吠昭、屬性喊括、單位上是否一致
    • 調(diào)用標(biāo)準函數(shù)時,所用的參數(shù)在屬性矢棚、數(shù)目和順序上是否正確
    • 全局變量在各模塊中的定義和用法是否一致
    • 輸入是否僅改變了形式參數(shù)
    • 開/關(guān)的語句是否正確
    • 規(guī)定的I/O格式是否與輸入/輸出語句一致
    • 在使用文件之前是否已經(jīng)打開文件或使用文件之后是否已經(jīng)關(guān)閉文件
  • 局部數(shù)據(jù)結(jié)構(gòu)
    • 變量的說明是否合適
    • 是否使用了尚未賦值或尚未初始化的變量
    • 變量的初始值或默認值是否正確
    • 變量名是否有錯
  • 重要的執(zhí)行路徑
    • 計算方面的錯誤郑什,算術(shù)運算的優(yōu)先次序不正確或理解錯誤、精度不夠蒲肋、算法錯誤等
    • 比較和控制流的錯誤蘑拯,精度不相等、不同類型間進行比較兜粘、邏輯運算符錯誤等
  • 出錯處理
  • 邊界條件

單元測試過程:

  • 驅(qū)動模塊
  • 樁模塊(存根模塊)
單元測試環(huán)境

2.集成測試

集成測試就是把模塊按系統(tǒng)設(shè)計說明書的要求組合起來進行測試申窘。

集成測試的兩種方法:

  • 非增量集成(分別測試各個模塊,再把這些模塊組合起來進行整體測試)
  • 增量集成(以小增量的方式逐步進行構(gòu)造和測試)

增量集成策略:

  • 自頂向下集成測試
    從主控模塊(主程序)開始孔轴,沿著控制層逐步向下剃法,以深度優(yōu)先或廣度優(yōu)先的方式將從屬于主控模塊的模塊集成到結(jié)構(gòu)中。
  • 自底向上集成測試
    從原子模塊(程序機構(gòu)的最底層構(gòu)件)開始進行構(gòu)造和測試路鹰。
  • 回歸測試
    重新執(zhí)行已經(jīng)測試過的某些子集贷洲,以確保變更沒有傳播不期望的副作用。
  • 冒煙測試
    將已經(jīng)轉(zhuǎn)換為代碼的軟件構(gòu)件集成到構(gòu)建中悍引,設(shè)計一系列測試以暴露影響構(gòu)建正確的完成其功能的錯誤恩脂,每天將該構(gòu)建與其他構(gòu)建及整個軟件產(chǎn)品集成起來進行冒煙測試。

3.確認測試

確認測試始于集成測試的結(jié)束趣斤,那時已測試完單個構(gòu)件俩块,軟件已組裝成完整的軟件包,且接口錯誤已被發(fā)現(xiàn)和改正浓领。

  • 確認測試準則
  • 配置評審
  • α測試與β測試

4.系統(tǒng)測試

系統(tǒng)測試是將已經(jīng)確認的軟件玉凯、計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起联贩,進行信息系統(tǒng)的各種集成測試和確認測試漫仆,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方泪幌。

  • 恢復(fù)測試
  • 安全性測試
  • 壓力測試
  • 性能測試
  • 部署測試

(三)測試面向?qū)ο筌浖?/h2>

1.單元測試

面向?qū)ο筌浖械膯卧母拍畎l(fā)生了變化盲厌,封裝導(dǎo)出了類的定義。
每個類和類的實例(對象)有屬性(數(shù)據(jù))和處理這些數(shù)據(jù)的操作(函數(shù)或方法)祸泪。
封裝的類常是單元測試的重點吗浩,然而,類中包含的操作是最小的可測試單元没隘。
面向?qū)ο筌浖念悳y試是由封裝在該類中的操作和類的狀態(tài)行為驅(qū)動的懂扼。

2.集成測試

面向?qū)ο蟓h(huán)境中的集成測試有兩種策略:

  • 基于線程的測試,對響應(yīng)系統(tǒng)的一個輸入或事件所需的一組類進行集成,每個線程單獨地集成和測試阀湿,并應(yīng)用回歸測試以確保沒有產(chǎn)生副作用
  • 基于使用的測試赶熟,通過測試很少使用服務(wù)類的那些類開始系統(tǒng)測試的構(gòu)建

(四)測試Web應(yīng)用

1.質(zhì)量維度

需要檢查的項目:

  • 內(nèi)容
  • 功能
  • 結(jié)構(gòu)
  • 可用性
  • 導(dǎo)航性
  • 性能
  • 兼容性
  • 安全性

2.WebApp測試策略

  • WebApp的內(nèi)容模型進行評審奴烙,已發(fā)現(xiàn)錯誤
  • 對接口模型進行評審杯巨,保證適合所有的用例
  • 評審WebApp的設(shè)計模型,發(fā)現(xiàn)導(dǎo)航錯誤
  • 測試用戶界面窍霞,發(fā)現(xiàn)表現(xiàn)機制和導(dǎo)航機制中的錯誤
  • 對功能構(gòu)件進行單元測試
  • 對貫穿體系結(jié)構(gòu)的導(dǎo)航進行測試
  • 在各種不同的環(huán)境配置下實現(xiàn)WebApp罩旋,并測試WebApp對于每一種配置的兼容性
  • 進行安全性測試啊央,試圖攻擊WebApp或其所處環(huán)境的弱點
  • 進行性能ces- 通過可控制的最終用戶群對WebApp進行測試,對他們與系統(tǒng)的交互結(jié)果進行以下方面的評估涨醋,包括內(nèi)容和導(dǎo)航錯誤瓜饥、可用性、兼容性及WebApp的安全性浴骂、可靠性及性能等方面的評估

(五)測試方法

軟件測試方法分為:

  • 靜態(tài)測試
    • 人工檢測
    • 計算機輔助靜態(tài)分析
  • 動態(tài)測試
    • 黑盒測試(功能測試)乓土,在不考慮軟件內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性溯警。
      • 等價類劃分
      • 邊界值分析
      • 錯誤推測
      • 因果圖
    • 白盒測試(結(jié)構(gòu)測試)趣苏,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯來設(shè)計測試用例,對程序的路徑和過程進行測試梯轻,檢測是否滿足設(shè)計的需要食磕。
      • 邏輯覆蓋
      • 循環(huán)覆蓋
      • 基本路徑測試

(六)調(diào)試

調(diào)試發(fā)生在測試之后,其任務(wù)是根據(jù)測試時所發(fā)現(xiàn)的錯誤找出原因和具體的位置喳挑,進行改正彬伦。
主要由程序開發(fā)人員進行,誰開發(fā)誰調(diào)試伊诵。

1.調(diào)試過程

調(diào)試過程通常得到以下兩種結(jié)果:

  • 發(fā)現(xiàn)問題的原因并將其改正
  • 未能找到原因单绑,調(diào)試人員可以假設(shè)一個原因,設(shè)計一個或多個測試用例來幫助驗證這個假設(shè)曹宴,重復(fù)此過程直到改正錯誤搂橙。

2.調(diào)試方法

  • 試探法
  • 回溯法
  • 對分查找法
  • 歸納法
  • 演繹法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市笛坦,隨后出現(xiàn)的幾起案子区转,更是在濱河造成了極大的恐慌,老刑警劉巖版扩,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜗帜,死亡現(xiàn)場離奇詭異,居然都是意外死亡资厉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門蔬顾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宴偿,“玉大人湘捎,你說我怎么就攤上這事≌酰” “怎么了窥妇?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娩践。 經(jīng)常有香客問我活翩,道長,這世上最難降的妖魔是什么翻伺? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任材泄,我火速辦了婚禮,結(jié)果婚禮上吨岭,老公的妹妹穿的比我還像新娘拉宗。我一直安慰自己,他們只是感情好辣辫,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布旦事。 她就那樣靜靜地躺著,像睡著了一般急灭。 火紅的嫁衣襯著肌膚如雪姐浮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天葬馋,我揣著相機與錄音卖鲤,去河邊找鬼。 笑死点楼,一個胖子當(dāng)著我的面吹牛扫尖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掠廓,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼换怖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蟀瞧?” 一聲冷哼從身側(cè)響起沉颂,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悦污,沒想到半個月后铸屉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡切端,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年彻坛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡昌屉,死狀恐怖钙蒙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情间驮,我是刑警寧澤躬厌,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站竞帽,受9級特大地震影響扛施,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屹篓,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一疙渣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抱虐,春花似錦昌阿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谣沸,卻和暖如春刷钢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乳附。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工内地, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赋除。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓阱缓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親举农。 傳聞我的和親對象是個殘疾皇子荆针,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

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