自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件測試入門指南:周期、模型和文檔化

譯文
開發(fā) 測試
在本文中,我們將通過向您介紹有關(guān)軟件測試的基本方面,以幫助您把控軟件質(zhì)量,并能交付出滿意的產(chǎn)品。

【51CTO.com快譯】世界上沒有任何軟件能夠保證是無缺的。但是這不應(yīng)當(dāng)成為軟件缺陷的托詞。為了提高產(chǎn)品的質(zhì)量,確保軟件應(yīng)用的有效性、以及應(yīng)用的平穩(wěn)運(yùn)行,我們需要進(jìn)行各種有計(jì)劃有步驟的軟件測試。在本文中,我們將通過向您介紹有關(guān)軟件測試的基本方面,以幫助您把控軟件質(zhì)量,并能交付出滿意的產(chǎn)品。

軟件測試簡介

從概念上說,軟件測試是一個(gè)評估已開發(fā)軟件的功能,審查應(yīng)用是否滿足既定的要求,識別程序中任何潛在的缺陷,進(jìn)而提高產(chǎn)品質(zhì)量的過程。它的輸出是發(fā)現(xiàn)目標(biāo)系統(tǒng)與實(shí)際需求之間的差距,以及自身存在的錯(cuò)誤與缺失。

[[259673]]

在業(yè)界,我們通常將軟件測試稱為驗(yàn)證和確證軟件產(chǎn)品的過程。因此,它關(guān)注軟件產(chǎn)品的如下三個(gè)方面:

  1. 是否滿足那些指導(dǎo)其設(shè)計(jì)和開發(fā)的業(yè)務(wù)和技術(shù)需求
  2. 是否能夠按需運(yùn)行并提供穩(wěn)定的服務(wù)
  3. 既定的服務(wù)功能是否能夠重復(fù)實(shí)現(xiàn)

軟件開發(fā)生命周期

首先,我們來了解一下軟件開發(fā)生命周期(Software Development Life Cycle,SDLC)的概念。它是整個(gè)軟件行業(yè)用于設(shè)計(jì)、開發(fā)和測試高質(zhì)量軟件的過程。SDLC旨在規(guī)定的時(shí)間和成本預(yù)算之內(nèi),生產(chǎn)出那些滿足甚至超出客戶期望的高質(zhì)量軟件。下圖概括性地描繪了SDLC所涉及的各個(gè)階段。

軟件測試入門指南

要求階段

需求的收集和分析是軟件開發(fā)生命周期中最重要的階段。業(yè)務(wù)分析師們會從客戶和用戶處收集他們的業(yè)務(wù)需求,并在既有的業(yè)務(wù)需求規(guī)范(具體文檔名稱會因組織的不同而有所差異)中記錄這些需求要點(diǎn)。

分析階段

在完成對需求的收集和分析后,下一步就是要定義并記錄產(chǎn)品的規(guī)范需求,進(jìn)而獲得客戶的確認(rèn)。我們一般需要通過軟件需求規(guī)范(Software Requirement Specification,SRS)文檔來實(shí)現(xiàn)。SRS一般包含了在項(xiàng)目生命周期中,那些與設(shè)計(jì)和開發(fā)相關(guān)的所有產(chǎn)品需求。

設(shè)計(jì)階段

此階段分為兩個(gè)步驟:

  1. 高級設(shè)計(jì)(High-Level Design,HLD):有時(shí)也稱概要設(shè)計(jì),它交付的是待開發(fā)軟件產(chǎn)品的體系結(jié)構(gòu),一般由架構(gòu)師和高級資深開發(fā)人員來完成。
  2. 低級設(shè)計(jì)(Low-Level Design,LLD):有時(shí)也稱詳細(xì)設(shè)計(jì),它描述的是產(chǎn)品的每一項(xiàng)功能、以及每一個(gè)組件應(yīng)該如何運(yùn)作。一般由高級資深開發(fā)人員來完成。

可見,此階段的輸出:高級文檔和低級文檔,將作為下一階段的輸入。

開發(fā)階段

所有級別的開發(fā)人員(從資深到初級)都參與到該階段當(dāng)中,著手編寫并構(gòu)建軟件的相關(guān)代碼。

測試階段

軟件在完成編碼之后,會被發(fā)送到測試部門,對可能出現(xiàn)的缺陷進(jìn)行全面的測試。他們既可以手動測試軟件,又可以通過自動化測試工具,以確保軟件的每個(gè)組件都能夠正常工作。軟件只有通過了測試,才能得到質(zhì)量保證,也才能進(jìn)入下面的實(shí)施階段。

部署和維護(hù)階段

最終,軟件產(chǎn)品需要交付和部署,以供客戶使用。此階段通常是由部署與實(shí)施工程師來完成。而在客戶使用系統(tǒng)與服務(wù)的過程中,他們所碰到的任何實(shí)際問題,都需要在維護(hù)階段,得到持續(xù)并及時(shí)地解決。

如果您想深入了解上述軟件開發(fā)生命周期中有關(guān)測試環(huán)境的具體內(nèi)容,請參閱軟件測試生命周期一文(https://www.edureka.co/blog/software-testing-life-cycle/)。下面我們來討論一下所謂的V模型。

驗(yàn)證和確證模型

V模型是目前使用最為廣泛的軟件開發(fā)過程之一。實(shí)際上,V模型將測試環(huán)節(jié)貫穿到了從需求階段到開始實(shí)施的整個(gè)過程之中。在業(yè)界,V模型也稱為驗(yàn)證和確證模型(verification and validation model)。那么到底什么是軟件測試中的驗(yàn)證和確證呢?

  1. 驗(yàn)證:是一種靜態(tài)分析的技術(shù)。它是在不執(zhí)行代碼的情況下,執(zhí)行諸如:回顧、檢查、以及逐行審驗(yàn)之類的測試。
  2. 確證:是一種動態(tài)分析的技術(shù),它是對代碼執(zhí)行功能性和非功能性的測試。

在V模型中,測試并不是作為一個(gè)單獨(dú)離散的階段,而是跟隨著需求階段一起開始,與軟件開發(fā)的整個(gè)進(jìn)程同步推進(jìn),分不同的步驟對產(chǎn)品開展驗(yàn)證和確證活動。該模型的階段名稱如下圖所示:

由上圖可見,在V模型的左側(cè)是一系列開發(fā)活動,其中包括:用戶需求、軟件定義、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、以及軟件編碼;而右側(cè)則是一系列對應(yīng)的測試活動,其中包括:單元測試、集成測試、系統(tǒng)測試、以及驗(yàn)收測試。因此,左右不同階段的聯(lián)系可以簡述為:單元測試著眼于開發(fā)出的代碼是否符合詳細(xì)設(shè)計(jì)的要求;集成測試檢查的是各組成組件能否協(xié)同工作;系統(tǒng)測試關(guān)注的是集成到一起的產(chǎn)品是否符合規(guī)格說明的要求;而驗(yàn)收測試則注重的是產(chǎn)品能否讓最終用戶滿意。

軟件測試方法

通常而言,我們會采取如下三種方法開展軟件的相關(guān)測試,它們是:

  1. 黑盒測試:測試人員并不知曉被測項(xiàng)目的內(nèi)部結(jié)構(gòu)、設(shè)計(jì)、以及實(shí)現(xiàn)原理。
  2. 白盒測試:測試人員完全知曉被測項(xiàng)目的內(nèi)部結(jié)構(gòu)、設(shè)計(jì)、以及實(shí)現(xiàn)原理。
  3. 灰盒測試:測試人員僅僅知曉被測項(xiàng)目有限的內(nèi)部功能信息。

軟件測試階段

我們運(yùn)用軟件測試的不同階段,來對目標(biāo)軟件系統(tǒng)的每個(gè)單元或組件進(jìn)行審驗(yàn)。由于系統(tǒng)測試的主要目標(biāo)就是評估其是否符合既定的開發(fā)需求。因此,這些不同的測試階段不但有助于檢查軟件的行為和性能,也能夠識別出其中的缺陷(bug),以及在整個(gè)開發(fā)的生命周期中起到一定的協(xié)調(diào)作用。具體說來,軟件測試分為如下四個(gè)階段:

  1. 單元測試:通過設(shè)定目標(biāo)軟件的最小測試單位,盡快地找出各個(gè)模塊或組件中的明顯錯(cuò)誤,以提高單塊程序代碼的質(zhì)量、并減少后期返工的成本。
  2. 集成測試:通過測試整個(gè)系統(tǒng)能否編譯和構(gòu)建成功,以發(fā)現(xiàn)系統(tǒng)架構(gòu)和模塊之間、模塊與模塊之間是否存在接口問題,并記錄下測試結(jié)果。
  3. 系統(tǒng)測試:通過運(yùn)行整個(gè)系統(tǒng),來根據(jù)系統(tǒng)測試用例執(zhí)行全面測試,驗(yàn)證并確證系統(tǒng)的功能與性能是否符合需求規(guī)格說明中的要求。
  4. 驗(yàn)收測試:在系統(tǒng)安裝部署完成之后,通過邀請客戶參與進(jìn)來,進(jìn)而確認(rèn)軟件系統(tǒng)能否按照既定的要求平穩(wěn)運(yùn)行。

軟件測試文檔化

將各項(xiàng)測試用例進(jìn)行文檔化,將有助于我們評估測試的工作量,以及跟蹤測試的覆蓋率。那么,常用的軟件測試相關(guān)文檔包括如下四種:

    1.測試計(jì)劃:為目標(biāo)應(yīng)用程序提供測試大綱與策略。其中包括:測試的范圍、方法、資源和進(jìn)度等。具體還會涉及到各階段的測試任務(wù)、時(shí)間進(jìn)度安排、測試執(zhí)行團(tuán)隊(duì)、以及風(fēng)險(xiǎn)揭示等。

    2.測試場景:描述目標(biāo)的特性、測試的方法、環(huán)境的要求、工具的選擇、以及測試的范圍。具體還會涉及到各階段的啟動、停止、完成標(biāo)準(zhǔn)等條件。

    3.測試用例:它是由一組條件或變量所組成,測試人員籍此確定被測系統(tǒng)是否滿足要求,以及能否正常工作。開發(fā)測試用例的過程,也有助于發(fā)現(xiàn)應(yīng)用程序在代碼與設(shè)計(jì)中的問題。因此,在具體測試期間,我們可以設(shè)計(jì)出許多類型的測試用例。例如:

  • 功能性測試用例
  • 負(fù)面錯(cuò)誤測試用例
  • 邏輯測試用例
  • 物理測試用例
  • 用戶接口測試用例

     4. 追溯矩陣:也稱為需求追蹤矩陣(Requirement Traceability Matrix,RTM),它是一張被用于在創(chuàng)建產(chǎn)品的SDLC模型時(shí),草擬各種需求的表格。在實(shí)際應(yīng)用中,我們既可以采取從設(shè)計(jì)到編碼的前向跟蹤方式,也可以采用相反的向后跟蹤方式。

缺陷管理流程

眾所周知,軟件開發(fā)是一個(gè)非常復(fù)雜的過程。它往往要求團(tuán)隊(duì)成員在嚴(yán)格的時(shí)間期限內(nèi),每天都必須完成大量的代碼編寫工作,因此他們通常沒有太多的時(shí)間去考慮如何避免出現(xiàn)錯(cuò)誤。因此,對于每個(gè)軟件開發(fā)項(xiàng)目來說,我們都需要有一個(gè)能夠檢測錯(cuò)誤與缺陷,進(jìn)而及時(shí)修復(fù)的缺陷管理過程。

缺陷管理,或稱錯(cuò)誤跟蹤,通常是在產(chǎn)品的測試階段進(jìn)行的。我們可以通過兩種不同的方式實(shí)現(xiàn)缺陷管理,即:開發(fā)人員自行測試他們的產(chǎn)品;或邀請用戶參與測試。雖然最終用戶能夠提供不同的視角來識別缺陷,但是他們的識別途徑往往不夠全面。

因此,缺陷管理通常會涉及到如下四個(gè)步驟:

  1. 檢測與識別缺陷
  2. 分析與定位缺陷,進(jìn)而填寫并提交缺陷報(bào)告
  3. 提請整改并修復(fù)缺陷
  4. 驗(yàn)證修改并記錄缺陷列表

缺陷生命周期

一般而言,缺陷的生命周期是從bug被發(fā)現(xiàn)開始,直至它被最終修復(fù),并能確保不再復(fù)發(fā)為止。不過有時(shí)候,根據(jù)組織的策略,使用到的軟件開發(fā)模型(如敏捷或迭代),項(xiàng)目的時(shí)間表,以及團(tuán)隊(duì)的結(jié)構(gòu)等因素的不同,缺陷的生命周期也可能有所差異??偟恼f來,它所要經(jīng)歷的步驟與過程,如下圖所示:

  1. 新建:當(dāng)缺陷被初次遞交時(shí),它處于“新建”狀態(tài)。不過,該缺陷可能需要得到進(jìn)一步的確認(rèn)。
  2. 分配:經(jīng)由測試人員創(chuàng)建之后,其主管負(fù)責(zé)人會審核該缺陷的真實(shí)性,一旦確認(rèn),則會分配給相應(yīng)的開發(fā)人員或團(tuán)隊(duì)接手處理。
  3. 打開:開發(fā)人員受理該缺陷,著手分析并研發(fā)缺陷的修復(fù)程序。
  4. 修復(fù):當(dāng)開發(fā)人員完成了必要的代碼更改,并驗(yàn)證了其修復(fù)效果之后,他會將缺陷狀態(tài)設(shè)置為“已修復(fù)”,并將缺陷的相關(guān)信息回傳給測試團(tuán)隊(duì)。
  5. 測試:在此階段,測試人員對開發(fā)人員傳回的已更改代碼進(jìn)行測試,以檢驗(yàn)缺陷是否已被修復(fù)。
  6. 驗(yàn)證:測試人員針對該缺陷展開新一輪的測試。如測試通過,他會將該缺陷的狀態(tài)變更為“已驗(yàn)證”。
  7. 重新打開:相反,如果測試未能通過,則測試人員將狀態(tài)更改為“重新打開”。該缺陷將再次經(jīng)歷上述周期。
  8. 關(guān)閉:如果測試人員最終認(rèn)為目標(biāo)軟件中不再存在此類缺陷,他會將錯(cuò)誤狀態(tài)更改為“已關(guān)閉”。
  9. 重復(fù):如果同一個(gè)缺陷被重復(fù)提交、或者兩個(gè)缺陷屬于同一種錯(cuò)誤,那么這個(gè)缺陷狀態(tài)會被設(shè)置為“重復(fù)提交”。
  10. 拒絕:如果開發(fā)人員不認(rèn)為這是一個(gè)缺陷,他會拒絕,然后將錯(cuò)誤的狀態(tài)更改為“已拒絕”。
  11. 延期:如果缺陷的狀態(tài)被置為“延期”,則意味著該缺陷將會在下一個(gè)版本中被修復(fù)。當(dāng)然,將缺陷置為“延期”原因有許多,例如:該缺陷的優(yōu)先級不高,或是時(shí)間緊迫,又或是對于軟件不會造成太大的影響。

手動測試與自動化測試

如果選擇手動測試,則意味著我們需要QA測試人員,對目標(biāo)軟件的每一個(gè)測試用例,都采取手動執(zhí)行的方式,人工提供不同的數(shù)據(jù)集,并且仔細(xì)地記錄下每一個(gè)環(huán)節(jié)的成功與失敗率。

由于需要人工進(jìn)行測試結(jié)果的驗(yàn)證和輸出的判斷,因此不但費(fèi)時(shí)費(fèi)力,而且難免會產(chǎn)生人為的疏忽。

不言而喻,自動化測試意味著更高的效率,更少的人力,更低的出錯(cuò)幾率,以及適用于回歸和功能性測試環(huán)節(jié)的、更頻繁的執(zhí)行次數(shù)。

例如:對于某個(gè)登錄頁面而言,如果我們需要驗(yàn)證所有登錄嘗試的可能性及其結(jié)果,那么我們只需要通過編寫一段測試代碼,就能自行輸入所有可能的數(shù)據(jù),執(zhí)行各種類型的登錄方法,進(jìn)而判斷并記錄所有登錄嘗試的成敗結(jié)果。

[[259674]]

此外,您也可以在不同系統(tǒng)環(huán)境,以及不同的瀏覽器中進(jìn)行模擬測試。而且,您還可以指定在一天中的某個(gè)特定時(shí)間段,自動生成結(jié)果文件及報(bào)告。如今,市面上已有許多自動化的測試工具,例如:Selenium等。如果您有興趣,可以通過鏈接https://www.edureka.co/blog/selenium-tutorial,來進(jìn)一步了解。

以上就是我想向您介紹的有關(guān)軟件測試的一些入門知識,希望能夠幫助您建立起相關(guān)的知識概念,并能指導(dǎo)您后繼的學(xué)習(xí)以及測試工作。

原文標(biāo)題:Software Testing Life Cycle,作者:Sayantini Deb

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2023-04-02 13:48:24

軟件測試NLP自動化測試

2021-04-26 10:01:25

JavaJava基礎(chǔ)Runtime

2022-01-18 08:00:00

軟件測試工具開發(fā)

2011-04-18 16:17:52

軟件測試

2024-09-14 15:19:11

2014-06-26 14:53:48

開源開源軟件

2010-06-13 15:26:42

2021-12-09 09:00:00

軟件測試負(fù)面測試指南

2024-01-19 16:56:04

軟件測試

2022-01-18 07:40:27

滲透測試黑客

2020-02-03 09:29:06

Denodo數(shù)據(jù)中心工具

2012-10-24 14:59:59

IBMdw

2022-06-17 09:30:00

參數(shù)化測試TestNG測試

2022-11-24 09:01:26

HTTPHertz架構(gòu)

2022-05-20 10:41:22

SDLC開發(fā)模型

2024-02-06 14:01:38

2011-05-30 17:11:08

測試策略

2021-12-06 09:00:00

開發(fā)WebDjango

2021-06-15 21:00:24

架構(gòu)測試代碼化

2011-05-18 15:15:44

MySQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號