軟件測試的方法根據軟件工程的組織和實現(xiàn)方式,有很大差別,有些是比較技術化的方法,有些則是工程方法,主要分為: 黑盒測試方法群:等價類劃分、邊界值、因果圖、基路徑法、專家測試法、smoking、場景測試等 白盒測試方法群:同行評審、需求審查、代碼審查、接口測試(調用測試和返回測試,需要結合等價類和因果圖方法)等。
當在單元層面黑盒而在集成層面白盒時,基本上兩類方法就會有結合了,就會出現(xiàn)習慣上說的灰盒測試(說實話,不做到純產品級開發(fā),基本上都是用的灰盒測試)。
11、確定輸入環(huán)境的類別、邊界值分析、錯誤類別。
12、準備測試計劃文件和對計劃進行必要的回顧。 13、準備白盒測試案例。
14、對測試案例進行必要的回顧/調查/計劃。 15、準備測試環(huán)境和測試用具,得到必需的用戶手冊/參考文件/結構指南/安裝指南,建立測試跟蹤過程,建立日志和檔案、建立或得到測試輸入數(shù)據。
16、得到并安裝軟件版本。 17、進行測試。
18、評估和報告結果。 19、跟蹤問題/錯誤,并解決它。
20、如果有必要,重新進行測試。 21、在整個生命周期里維護和修改測試計劃、測試案例、測試環(huán)境、和測試用具。
返回《軟件測試包含的內容》。
1. 概述
1.1 編寫目的
1.2 項目背景
1.3 項目質量目標
1.4 預期讀者
1.5 參考資料
2. 測試環(huán)境
2.1 系統(tǒng)架構
2.2 軟硬件環(huán)境要求
2.3 測試環(huán)境部署圖
3. 測試規(guī)劃
3.1 測試范圍
3.2 測試工具
3.3 人員、角色及職責
4. 測試策略
4.1 系統(tǒng)框測試
4.2 業(yè)務流程測試
4.3 功能點測試
4.4 UI界面測試
4.5 性能測試
4.6 兼容性測試
4.7 安全測試
5. 測試進度安排
6. 工作匯報
1)按照測試技術劃分
黑盒測試:功能測試,必須
白盒測試:邏輯結構測試,代碼的邏輯、算法、結構是否正確,要求必須懂得代碼,需要編寫測試用例,可選
灰盒測試:介于中間
注意:在單元測試時,白盒應用相對較多,在集成測試時,灰盒測試應用相對較多,在系統(tǒng)、驗收測試時一般就不會使用白盒測試和灰盒測試了。
2)按是否需要運行代碼劃分
靜態(tài)測試:界面測試,文檔測試,代碼測試【重點關注代碼的規(guī)范性,一般檢查變量的命名,注釋的頻率,編程的規(guī)范性,不需要寫測試用例,一般只需要有代碼審查單】
注意:一般經常把白盒測試和靜態(tài)測試的要素結合在一起,形成靜態(tài)白盒測試
動態(tài)測試:運行程序進行檢查,檢查實際輸出結果和預期結果是否相符
3)按軟件特性分類
功能測試
性能測試
軟件測試的工作內容主要包括“驗證”和“確認”,具體內容如下。
一、驗證:保證軟件正確地實現(xiàn)了一些特定功能的一系列活動, 即保證軟件以正確的方式來做了這個事件。
1、確定軟件生存周期中的一個給定階段的產品是否達到前階段確立的需求的過程。
2、程序正確性的形式證明,即采用形式理論證明程序符合設計規(guī)約規(guī)定的過程。
3、評審、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或文件等是否和規(guī)定的需求相一致進行判斷和提出報告。
二、確認:一系列的活動和過程,目的是想證實在一個給定的外部環(huán)境中軟件的邏輯正確性,即保證軟件做了用戶所期望的事情。
1、靜態(tài)確認,不在計算機上實際執(zhí)行程序,通過人工或程序分析來證明軟件的正確性。
2、動態(tài)確認,通過執(zhí)行程序做分析,測試程序的動態(tài)行為,以證實軟件是否存在問題。
擴展資料
一、軟件測試的原則
1、測試應該盡早進行,最好在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統(tǒng)不能滿足用戶的需求。
2、程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。
3、設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要制造極端狀態(tài)和意外狀態(tài),如網絡異常中斷、電源斷電等。
4、應該充分注意測試中的群集現(xiàn)象。
5、對錯誤結果要進行一個確認過程。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。
6、制定嚴格的測試計劃。一定要制定測試計劃,并且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內完成一個高水平的測試。
7、妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。
二、軟件測試的主要目標
1、發(fā)現(xiàn)一些可以通過測試避免的開發(fā)風險。
2、實施測試來降低所發(fā)現(xiàn)的風險。
3、確定測試何時可以結束。
4、在開發(fā)項目的過程中將測試看作是一個標準項目。
參考資料來源:搜狗百科——軟件測試
1、從是否關心內部結構來看 (1)白盒測試:又稱為結構測試或邏輯驅動測試,是一種按照程序內部邏輯結構和編碼結構,設計測試數(shù)據并完成測試的一種測試方法。
(2)黑盒測試:又稱為數(shù)據驅動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內部結構和處理過程的情況下,測試者僅依據程序功能的需求規(guī)范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟件或程序的角度,從輸入數(shù)據與輸出數(shù)據的對應關系出發(fā)進行的測試。(3)灰盒測試:是一種綜合測試法,它將“黑盒”測試與“白盒”測試結合在一起,是基于程序運行時的外部表現(xiàn)又結合內部邏輯結構來設計用例,執(zhí)行程序并采集路徑執(zhí)行信息和外部用戶接口結果的測試技術。
2、從是否執(zhí)行代碼看 (1)靜態(tài)測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。(2)動態(tài)測試:是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等性能指標。
3、從開發(fā)過程級別看 (1)單元測試:又稱模塊測試,是針對軟件設計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在于檢驗程序各模塊是否存在各種差錯,是否能正確地實現(xiàn)了其功能,滿足其性能和接口要求。
(2)集成測試:又叫組裝測試或聯(lián)合,是單元測試的多級擴展,是在單元測試的基礎上進行的一種有序測試。旨在檢驗軟件單元之間的接口關系,以期望通過測試發(fā)現(xiàn)各軟件單元接口之間存在的問題,最終把經過測試的單元組成符合設計要求的軟件。
(3)系統(tǒng)測試:是為判斷系統(tǒng)是否符合要求而對集成的軟、硬件系統(tǒng)進行的測試活動、它是將已經集成好的軟件系統(tǒng),作為基于整個計算機系統(tǒng)的一個元素,與計算機硬件、外設、某些支持軟件、人員、數(shù)據等其他系統(tǒng)元素結合在一起,在實際運行環(huán)境下,對計算機系統(tǒng)進行一系列的組裝測試和確認測試。在系統(tǒng)測試中,對于具體的測試類型有:(1)功能測試:對軟件需求規(guī)格說明書中的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(2)性能測試:對軟件需求規(guī)格說明書的功能需求逐項進行的測試,以驗證功能是否滿足要求。(3)接口測試:對軟件需求規(guī)格說明中的接口需求逐項進行的測試。
(4)人機交互界面測試:對所有人機交互界面提供的操作和顯示界面進行的測試,以檢驗是否滿足用戶的需求。(5)強度測試:強制軟件運行在異常乃至發(fā)生故障的情況下(設計的極限狀態(tài)到超出極限),驗證軟件可以運行到何種程序的測試。
(6)余量測試:對軟件是否達到規(guī)格說明中要求的余量的測試。(7)安全性測試:檢驗軟件中已存在的安全性、安全保密性措施是否有效的測試,(8)可靠性測試:在真實的或仿真的環(huán)境中,為做出軟件可靠性估計而對軟件進行的功能(其輸入覆蓋和環(huán)境覆蓋一般大于普通的功能測試) (9)恢復性測試:對有恢復或重置功能的軟件的每一類導致恢復或重置的情況,逐一進行的測試。
(10)邊界測試:對軟件處在邊界或端點情況下運行狀態(tài)的測試。(11)數(shù)據處理測試:對完成專門數(shù)據處理功能所進行的測試。
(12)安裝性測試:對安裝過程是否符合安裝規(guī)程的測試,以發(fā)現(xiàn)安裝過程中的錯誤。(13)容量測試:檢驗軟件的能力最高能達到什么程度的測試。
(14)互操作性測試:為驗證不同軟件之間的互操作能力而進行的測試。(15)敏感性測試:為發(fā)現(xiàn)在有效輸入類中可能引起某種不穩(wěn)定性或不正常處理的某些數(shù)據的組合而進行的測試。
(16)標準符合性測試:驗證軟件與相關國家標準或規(guī)范(如軍用標準、國家標準、行業(yè)標準及國際標準)一致性的測試。(17)兼容性測試:驗證軟件在規(guī)定條件下與若干個實體共同使用或實現(xiàn)數(shù)據格式轉換時能滿足有關要求能力的測試。
(18)中文本地化測試:驗證軟件在不降低原有能力的條件下,處理中文能力的測試。4、從執(zhí)行過程是否需要人工干預來看 (1)手工測試:就是測試人員按照事先為覆蓋被測軟件需求而編寫的測試用例,根據測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執(zhí)行,包括與被測軟件進行交互(如輸入測試數(shù)據、記錄測試結果等),然后觀察測試結果,看被測程序是否存在問題,或在執(zhí)行過程中是否會有一場發(fā)生,屬于比較原始但是必須執(zhí)行的一個步驟。
(2)自動化測試:實際上是將大量的重復性的測試工作交給計算機去完成,通常是使用自動化測試工具來模擬手動測試步驟,執(zhí)行用某種程序設計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預,由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)5、從測試實施組織看 (1)開發(fā)測試:開發(fā)人員進行的測試 (2)用戶測試:用戶方進行的測試 (3)第三方測試:有別于開發(fā)人員或用戶進行的測試,由專業(yè)的第三方承擔的測試,目的是為了保證測試工作的客觀性6、從測試所處的環(huán)境看 (1)阿爾法測試:是由一個用戶在開發(fā)環(huán)境下進行的測試,也可以是公司內部的用戶在模擬實際操作環(huán)境下進行的測試 (2)。
軟件測試的工作內容主要包括“驗證”和“確認”,具體內容如下。
一、驗證:保證軟件正確地實現(xiàn)了一些特定功能的一系列活動, 即保證軟件以正確的方式來做了這個事件。1、確定軟件生存周期中的一個給定階段的產品是否達到前階段確立的需求的過程。
2、程序正確性的形式證明,即采用形式理論證明程序符合設計規(guī)約規(guī)定的過程。3、評審、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或文件等是否和規(guī)定的需求相一致進行判斷和提出報告。
二、確認:一系列的活動和過程,目的是想證實在一個給定的外部環(huán)境中軟件的邏輯正確性,即保證軟件做了用戶所期望的事情。1、靜態(tài)確認,不在計算機上實際執(zhí)行程序,通過人工或程序分析來證明軟件的正確性。
2、動態(tài)確認,通過執(zhí)行程序做分析,測試程序的動態(tài)行為,以證實軟件是否存在問題。擴展資料一、軟件測試的原則1、測試應該盡早進行,最好在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統(tǒng)不能滿足用戶的需求。
2、程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。3、設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要制造極端狀態(tài)和意外狀態(tài),如網絡異常中斷、電源斷電等。
4、應該充分注意測試中的群集現(xiàn)象。5、對錯誤結果要進行一個確認過程。
嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。6、制定嚴格的測試計劃。
一定要制定測試計劃,并且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內完成一個高水平的測試。
7、妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。二、軟件測試的主要目標1、發(fā)現(xiàn)一些可以通過測試避免的開發(fā)風險。
2、實施測試來降低所發(fā)現(xiàn)的風險。3、確定測試何時可以結束。
4、在開發(fā)項目的過程中將測試看作是一個標準項目。參考資料來源:百度百科——軟件測試。
軟件測試要學什么哪些內容?
1. 測試專業(yè)知識
測試專業(yè)技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基礎測試技術,也包括單元測試、功能測試、集成測試、系統(tǒng)測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。
2. 編程語言方面
測試人員編寫的程序和開發(fā)人員編程是不太一樣的。測試人員的編程應著眼于運行正確,同時兼顧高效率,尤其體現(xiàn)在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的算法設計能力。依據其他測試人員分享的經驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發(fā)工具。
3. 網絡
在網絡方面,測試人員應該掌握基本的網絡協(xié)議以及網絡工作原理,尤其要掌握一些網絡環(huán)境的配置,這些都是測試工作中經常遇到的知識。
4. 操作系統(tǒng)
操作系統(tǒng)和中間件方面,測試人員應該掌握基本的使用以及安裝、配置等。例如很多應用系統(tǒng)都是基于Unix、linux來運行的,這就要求測試人員掌握基本的操作命令以及相關的工具軟件。而WebLogic、Websphere等中間件的安裝、配置很多時候也需要測試人員掌握一些。
5. 數(shù)據庫
數(shù)據庫知識則是測試人員更應該掌握的技能,因為現(xiàn)在的應用系統(tǒng)幾乎離不開數(shù)據庫。因此不但要掌握基本的安裝、配置,還要掌握SQL。測試人員至少應該掌握Mysql、MS Sqlserver、Oracle等常見數(shù)據庫的使用。
測試的有2種方法答:黑盒測試和白盒測試黑盒:這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。
黑盒測試又叫做功能測試或數(shù)據驅動測試。白盒:此方法把測試對象看做一個透明的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。
通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預期的狀態(tài)一致。因此白盒測試又稱為結構測試或邏輯驅動測試。
軟件測試按過程分為三個步驟答:單元測試:單元測試又稱模塊測試,是針對軟件設計的最小單位 ─ 程序模塊,進行正確性檢驗的測試工作。其目的在于發(fā)現(xiàn)各模塊內部可能存在的各種差錯。
單元測試需要從程序的內部結構出發(fā)設計測試用例。多個模塊可以平行地獨立進行單元測試。
集成測試:在運行(可能是不完整)的應用中保證軟件單元被結合后能正常操作的測試執(zhí)行的階段系統(tǒng)測試:當應用作為整體運行時的測試執(zhí)行階段軟件測試的步驟是什么?1) 測試過程按4個步驟進行,即單元測試(Unit Testing)、集成測試(Integrated Testing)、確認測試(Validation Testing)和系統(tǒng)測試(System Testing)及發(fā)版測試。2) 開始是單元測試,集中對用源代碼實現(xiàn)的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。
3) 集成測試把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結構的構造進行測試。4) 確認測試則是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。
應該考慮進行如何測試的測試方法黑盒測試 (Black box testing) ── 不考慮內部設計和代碼,根據需求和功能進行測試。白盒測試 (White box testing) ── 根據應用軟件的代碼的內部邏輯,按照代碼的語句、分支、路徑和條件進行測試。
功能測試(functional testing)——對一個應用軟件的功能模塊進行黑盒測試。這種測試應當由測試人員進行。
但這并不意味著程序員在推出軟件之前不進行代碼檢查。(這一原則適用于所有的測試階段。)
系統(tǒng)測試 ── 針對全部需求說明進行黑盒測試,包括系統(tǒng)中所有的部件?;貧w測試 (regression testing) ── 每當軟件經過了整理、修改、或者其環(huán)境發(fā)生變化,都重復進行測試。
很難說需要進行多少次回歸測試,特別是是到了開發(fā)周期的最后階段。進行此種測試,特別適于使用自動測試工具。
負荷試驗 (load testing) ── 在大負荷條件下對應用軟件進行測試。例如測試一個網站在不同負荷情況下的狀況,以確定在什么情況下系統(tǒng)響應速度下降或是出現(xiàn)故障。
壓力測試 (stress testing) ── 經??梢耘c“負荷測試”或“性能測試”相互代替。這種測試是用來檢查系統(tǒng)在下列條件下的情況:在非正常的巨大負荷下、某些動作和輸入大量重復、輸入大數(shù)、對數(shù)據庫進行非常復雜的查詢,等等。
性能測試 (performance testing) ── 經??梢耘c“壓力測試”或“負荷測試”相互代替。理想的“性能測試”(也包括其他任何類型的測試) 都應在質量保障和測試計劃的文檔終予以規(guī)定。
可用性測試 (usability testing) ── 是專為“對用戶友好”的特性進行測試。這是一種主觀的感覺,取決于最終用戶或顧客。
可以進行用戶會見、檢查、對用戶會議錄像、或者使用其他技術。程序員和測試人員通常不參加可用性測試。
安裝/卸載測試 (install/uninstall testing) ── 對安裝/卸載進行測試 (包括全部、部分、升級操作)。安全測試 (security testing) ── 測試系統(tǒng)在應付非授權的內部/外部訪問、故意的損壞時的防護情況。
這需要精密復雜的測試技術。兼容性測試 (compatability testing) ── 測試在特殊的硬件/軟件/操作系統(tǒng)/網絡環(huán)境下的軟件表現(xiàn)。
α 測試 (alpha testing) ── 在開發(fā)一個應用軟件即將完成時所進行的測試。此時還允許有較小的設計修改。
通常由最終用戶或其他人進行這種測試,而不是由程序員和測試人員來進行。β 測試 (beta testing) ── 當開發(fā)和測試已基本完成,需要在正式發(fā)行之前最后尋找毛病而進行的測試。
通常由最終用戶或其他人進行這種測試,而不是由程序員和測試人員來進行。
包括測試目標、測試環(huán)境、輸入數(shù)據、測試步驟、預期結果、測試腳本等。
測試用例是將軟件測試的行為活動做一個科學化的組織歸納,目的是能夠將軟件測試的行為轉化成可管理的模式;同時測試用例也是將測試具體量化的方法之一,不同類別的軟件,測試用例是不同的。
影響軟件測試的因素很多,例如軟件本身的復雜程度、開發(fā)人員(包括分析、設計、編程和測試的人員)的素質、測試方法和技術的運用等。
擴展資料:
1、白盒法
白盒法又稱結構化方法(結構測試)或邏輯覆蓋法,其基本思想是把程序看作是路徑的集合。這樣,對程序的測試便轉化為對程序中某些路徑的測試,要設法讓被測程序的“各處”均被執(zhí)行到,使?jié)摲诔绦蛎總€角落的錯誤均有機會暴露出來。因此,白盒法實際上是一種選擇通過指定路徑的輸入數(shù)據的分析方法。
2、黑盒法
黑盒法又稱為功能測試,是根據軟件需求說明書上羅列的各項功能、性能指標,來構造測試用例的輸入數(shù)據,實際執(zhí)行被測軟件,分析執(zhí)行過程的行為與執(zhí)行結果以便檢查出被測軟件的錯誤。在黑盒法測試中,測試者可以完全不關心程序的內部結構??梢?,白盒法是一種邏輯驅動方法,而黑盒法是一種功能驅動方法。黑盒法是最常用的測試方法。
參考資料來源:百度百科-測試用例

聲明:本網站尊重并保護知識產權,根據《信息網絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:2.778秒