軟體測試基礎經典測試面試題答案

2021-03-03 22:46:07 字數 4812 閱讀 3281

軟體測試基礎教程

測試的基本概念

測試是軟體生存週期中十分重要的乙個過程,是產品發布、提交給終端使用者前的穩定化階段。

1、 測試的分類:

從測試方法的角度可以分為手工測試和自動化測試。

手工測試:不使用任何測試工具,根據事先設計好的測試用例來執行系統,測試各功能模組。

自動化測試:利用測試工具,通過編寫測試指令碼和輸入測試資料,自動執行測試程式。目前最常用的自動化測試工具是基於gui的自動化測試工具,基本原理都是錄製、回放技術。

從整體的角度可以分為單元測試、整合測試、系統測試、確認測試。

單元測試:是針對軟體設計的最小單位—程式模組,進行正確性檢驗的測試工作。一般包括邏輯檢查、結構檢查、介面檢查、出錯處理、**注釋、輸入校驗、邊界值檢查。

單元測試的依據是系統的詳細設計;一般由專案組開發人員自己完成。

整合測試:在單元測試的基礎上,將所有模組按照設計要求組裝進行測試。一般包括邏輯關係檢查、資料關係檢查、業務關係檢查、模組間介面檢查、外部介面檢查。

系統測試:系統測試是在所有單元、整合測試後,對系統的功能及效能的總體測試。

確認測試:模擬使用者執行的業務環境,運用黑盒測試方法,驗證軟體系統是否滿足使用者需求或軟體需求說明書中指明的軟體特性(功能、非功能)上的。

從測試原理上分為:白盒測試、黑盒測試和灰盒測試。

白盒測試:是通過程式的源**進行測試而不使用使用者介面。這種型別的測試需要從**句法發現內部**在演算法,溢位,路徑,條件等等中的缺點或者錯誤,進而加以修正。

黑盒測試:是通過使用整個軟體或某種軟體功能來嚴格地測試, 而並沒有通過檢查程式的源**或者很清楚地了解該軟體的源**程式具體是怎樣設計的。測試人員通過輸入他們的資料然後看輸出的結果從而了解軟體怎樣工作。

在測試時,把程式看作乙個不能開啟的黑盆子,

在完全不考慮程式內部結構和內部

特性的情況下,測試者在程式介面進行測試,它只檢查程式功能是否按照需求

規格說明書的規定正常使用,程式是否能適當地接收和正確的輸出。黑盒測試

方法主要有等價類劃分、邊界值分析、因—果圖、錯誤推測法。

等價類劃分:

是把所有可能的輸入資料,即程式的輸入域劃分成若干部分(子集),然後從每乙個子集中選取少數具有代表性的資料作為測試用例.該方法是一種重要的,常用的黑盒測試用例設計方法.

1) 劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的.

並合理地假定:測試某等價類的代表值就等於對這一類其它值的測試.因此,可以把全部輸入資料合理劃分為若干等價類,在每乙個等價類中取乙個資料作為測試的輸入條件,就可以用少量代表性的測試資料.

取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.

有效等價類:是指對於程式的規格說明來說是合理的,有意義的輸入資料構成的集合.利用有效等價類可檢驗程式是否實現了規格說明中所規定的功能和效能.

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

設計測試用例時,要同時考慮這兩種等價類.因為,軟體不僅要能接收合理的資料,也要能經受意外的考驗.這樣的測試才能確保軟體具有更高的可靠性.

邊界值分析:

長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,

而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以

查出更多的錯誤。

錯誤推測法:

基於經驗和直覺推測程式中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.錯誤推測方法的基本思想: 列舉出程式中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例.

例如, 在單元測試時曾列出的許多在模組中常見的錯誤. 以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結. 還有, 輸入資料和輸出資料為0的情況.

輸入**為空格或輸入**只有一行. 這些都是容易發生錯誤的情況. 可選擇這些情況下的例子作為測試用例。

灰盒測試:灰盒測試就像黑盒測試一樣是通過使用者介面測試,但是測試人員已經有所了解該軟體或某種軟體功能的源**程式具體是怎樣設計的。甚至於還讀過部分源**。

因此測試人員可以有真對性地進行某種確定的條件/功能的測試。

從軟體特性上分為功能測試和效能測試。

功能測試:是指為了確保軟體系統功能實現的正確性,完整性和其他特性而進行的測試。

效能測試:是指為了評估軟體系統的效能狀況,和**軟體系統效能趨勢而進行的測試和分析。

2、 bug的定義:

bug:(小錯誤,缺陷,不足,過失 …) 乙個計算機bug指在電腦程式中存在的乙個錯誤(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),這些bug使程式無法正確的執行。bug產生於程式的源**或者程式設計階段的疏忽或者錯誤。

defect:(缺陷) 在軟體工程(software engineering)中,軟體與它的需求(requirements)不一致,常常指軟體無法正確完成需求所要求的功能,也稱之為bug。

fault:(故障)被定義為存在於元件、裝置或者子系統中異常的條件或者缺陷,常常會導致系統的失敗。

error:(錯誤) 乙個error是指編寫錯誤的**,通常是無意中造成的。一般有兩類主要的錯誤,一是語法錯誤(syntax error),該類錯誤易於檢測,因為**在編譯階段無法解析而不能正常編譯通過。

另乙個是邏輯錯誤(logical error),因為它與**的實際執行密切相關所以不易發現。

二、 專案測試的規劃

專案測試內容:

將專案測試分為專案開發階段測試和專案完工驗收測試兩個部分。

開發階段測試內容主要包括:模組功能測試、整合測試和文件檢查。

模組功能測試:確保系統各功能模組能夠正常執行,資料的ipo符合系統設計的要求。單元和模組功能滿足需求定義。

整合測試:系統各模組組裝後,根據業務流程的要求,能夠正確地完成各業務功能,並且資料的處理和輸出正確。

文件檢查:在專案開發階段,按照專案進度表,根據《專案文件測試規範與標準》,對提交的專案文件和記錄(技術文件和管理文件)進行檢查和驗證,以符合公司質量體系和專案制度的要求,對於技術類文件的關鍵要素,驗證是否能夠達到通過標準。

完工驗收測試內容主要包括:安裝測試、功能驗證、效能測試、需求驗證、文件測試。完工驗收測試實際上是專案在結項前的乙個全面的檢查和驗證。可以作為專案結項的依據和放行條件。

需求測試:檢查軟體產品是否滿足該項目的需求說明書中規定的功能需求,檢查需求的完整性、一致性、最新性,該項測試重點是需求滿足的完整性。

安裝測試:根據專案提供的安裝文件中的安裝步驟,搭建系統執行環境,檢查系統安裝過程是否正確。可能包括資料庫伺服器的安裝與配置、應用伺服器、控制項註冊、客戶端的安裝與配置、應用軟體的安裝。

功能驗證:按照需求說明書和系統概要設計,逐項檢查各項功能(功能單元、功能模組)的可執行性和正確性。

文件測試:文件測試從專案立項時就開始了,實際上就是文件檢查,包括規範性檢查和有效性檢查。目的是使專案相關的文件和記錄既規範又有意義,不是為了應付的無用檔案。

對於技術文件如:需求說明書、概要設計、詳細設計等,在技術評審時也進行了評測。使用者文件,如安裝手冊、使用者操作手冊,根據文件檢查規範進行。

效能測試:這部分測試的**,嚴格來講,取決於使用者對軟體特性的一些特定要求,另外,就是公司的開發部門對產品的一些基本的效能要求。若使用者從業務的角度考慮,對軟體產品本身有特定的非功能要求,則必須在軟體需求說明書中加以說明,使之具有可度量和可測試性。

對於一些多使用者環境或資料處理能力和負載方面的測試,很難通過手工搭建測試環境來測試,所以可以參考使用一些專門的效能測試工具和手工測試相結合的方式。

專案測試的基本流程:

1、 專案測試啟動:專案立項後,在測試配置庫中建立專案。

2、 測試計畫:系統詳細設計後,制定測試計畫,準備測試資源。

3、 設計測試用例,主要是與業務相關的測試用例。

4、實施功能模組測試,搭建執行或開發環境,採用功能模組測試表的方式,開發人員在功能模組測試表中更新進度狀態,測試人員在該表中描述測試進度。形成測試錯誤列表,該錶對每個錯誤都有相應的測試記錄與之鏈結,在測試記錄中,詳細描述錯誤的情況。在測試記錄中還要包括修正資訊和驗證資訊。

5、錯誤關閉後,測試人員維護測試記錄表和更新測試用例庫和問題庫,作為經驗積累。

6、專案在結項時,測試人員進行專案完工驗收測試,填寫專案測試報告。該測試報告可作為使用者驗收的輸入工件。

三、 功能測試方法與內容

1、資料輸入測試:向系統輸入資料或輸入資料庫操作命令時,一般是測試系統對資料庫中資料操作的過程。

資料型別測試:由於不同的資料庫系統對資料型別要求的不同,在定義資料庫表時,也規定了資料字段的資料型別。測試步驟和方法:

在系統的資料維護功能介面上,錄入或修改資料時,特意輸入非系統設計的資料型別,檢查系統是否可以接受,若不能接受則檢查是否滿足了系統在這方面的設計要求,如即刻清除非法內容、輸入焦點不能到下一輸入位置、出現系統自定義的提示資訊、不允許出現開發工具的報錯資訊等。若系統可以接受並儲存,則要看資料庫表的字段型別設計是否與使用者或習慣上不一致,並且要注意其他模組在調取該資料時,是否有特定要求。

邊界值測試:根據資料取值範圍的要求,輸入符合取值範圍的資料、取值範圍的上、下限和超過取值範圍的資料。注意,除要測試資料庫系統本身資料型別取值範圍外,還要根據軟體系統設計中的一些特定要求,設計測試用例來測試。

資料合法性測試:測試人員除了要測試輸入資料是否滿足所使用資料庫系統本身的資料型別和取值範圍的要求外,還應該根據經驗和軟體系統和需求的特定要求檢查輸入資料的合法性。比如:

日期合法性(出生年月、參保日期、發生時間、根據習慣和業務邏輯順序對日期合理性的要求等)。工資、比例、率等,都要注意輸入的合理、合法性。

單引號和雙引號:不要忽略輸入單引號和雙引號可能引起的錯誤和資料問題。在功能錄入介面上,在某字段的輸入框輸入了包括單引號和雙引號的資料,以後在通過select 語句查詢時可能會出問題。

特別在基於web方式的系統,輸入了單引號,在查詢資料記錄時,肯定會出現頁面鏈結錯誤(頁面無法鏈結或找不到或鏈結物件錯誤)。

經典軟體測試面試題

1.軟體質量的定義是什麼?2.軟體測試的物件包括哪些?3.試結合軟體開發流程模型,描述對應不同的階段測試需要哪些工作?4.單元測試 整合測試 系統測試 驗收測試各測試的正確策略含義和被測物件是什麼?5.單元測試 整合測試 系統測試的側重點是什麼?6.alpha測試和beta測試的定義是什麼?並描述a...

軟體測試面試題測試基礎知識

軟體測試面試題 軟體測試是軟體工程過程的乙個重要階段,是在軟體公升級發布之前對軟體開發各階段產品的最終檢查,是為了保證軟體開發產品的正確性 完全性和一致性而檢測軟體錯誤 修正軟體錯誤的過程。軟體測試是 1 程式測試是為了發現錯誤而執行程式的過程 2 測試是為了證明程式有錯,而不是證明程式無錯誤 3 ...

軟體測試面試題

1 軟體測試的目的是盡可能多的找出軟體的缺陷。y 2 beta 測試是驗收測試的一種。y acceptance testing 驗收測試是部署軟體之前的最後乙個測試操作。驗收測試的目的是確保軟體準備就緒,並且可以讓終端使用者將其用於執行軟體的既定功能和任務。3 驗收測試是由終端使用者來實施的。n 是...