測試的基本概念
測試是軟體生存週期中十分重要的乙個過程,是產品發布、提交給終端使用者前的穩定化階段。
1、 測試的分類:
從測試方法的角度可以分為手工測試和自動化測試。
從整體的角度可以分為單元測試、整合測試、系統測試、確認測試。
單元測試的依據是系統的詳細設計;一般由專案組開發人員自己完成。
從測試原理上分為:白盒測試、黑盒測試和灰盒測試。
在完全不考慮程式內部結構和內部特性的情況下,測試者在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收和正確的輸出。
黑盒測試方法主要有等價類劃分、邊界值分析、因—果圖、錯誤推測法。
等價類劃分:
是把所有可能的輸入資料,即程式的輸入域劃分成若干部分(子集),然後從每乙個子集中選取少數具有代表性的資料作為測試用例.該方法是一種重要的,常用的黑盒測試用例設計方法.
劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的.並合理地假定:測試某等價類的代表值就等於對這一類其它值的測試.因此,可以把全部輸入資料合理劃分為若干等價類,在每乙個等價類中取乙個資料作為測試的輸入條件,就可以用少量代表性的測試資料.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.
設計測試用例時,要同時考慮這兩種等價類.因為,軟體不僅要能接收合理的資料,也要能經受意外的考驗.這樣的測試才能確保軟體具有更高的可靠性.
邊界值分析:
長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
錯誤推測法:
基於經驗和直覺推測程式中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.錯誤推測方法的基本思想: 列舉出程式中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模組中常見的錯誤. 以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結. 還有, 輸入資料和輸出資料為0的情況. 輸入**為空格或輸入**只有一行. 這些都是容易發生錯誤的情況. 可選擇這些情況下的例子作為測試用例。
灰盒測試:
灰盒測試就像黑盒測試一樣是通過使用者介面測試,但是測試人員已經有所了解該軟體或某種軟體功能的源**程式具體是怎樣設計的。甚至於還讀過部分源**。因此測試人員可以有真對性地進行某種確定的條件/功能的測試。
從軟體特性上分為功能測試和效能測試。
2、 bug的定義:
bug:(小錯誤,缺陷,不足,過失 …) 乙個計算機bug指在電腦程式中存在的乙個錯誤(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),這些bug使程式無法正確的執行。bug產生於程式的源**或者程式設計階段的疏忽或者錯誤。
defect:(缺陷) 在軟體工程(software engineering)中,軟體與它的需求(requirements)不一致,常常指軟體無法正確完成需求所要求的功能,也稱之為bug。
fault:(故障)被定義為存在於元件、裝置或者子系統中異常的條件或者缺陷,常常會導致系統的失敗。
error:(錯誤) 乙個error是指編寫錯誤的**,通常是無意中造成的。一般有兩類主要的錯誤,一是語法錯誤(syntax error),該類錯誤易於檢測,因為**在編譯階段無法解析而不能正常編譯通過。另乙個是邏輯錯誤(logical error),因為它與**的實際執行密切相關所以不易發現。
3、 專案測試的規劃
專案測試內容:
將專案測試分為專案開發階段測試和專案完工驗收測試兩個部分。
開發階段測試內容主要包括:模組功能測試、整合測試和文件檢查。
完工驗收測試內容主要包括:安裝測試、功能驗證、效能測試、需求驗證、文件測試。完工驗收測試實際上是專案在結項前的乙個全面的檢查和驗證。可以作為專案結項的依據和放行條件。
4、專案測試的基本流程:
5、功能測試方法與內容
資料輸入測試:向系統輸入資料或輸入資料庫操作命令時,一般是測試系統對資料庫中資料操作的過程。
資料型別測試:由於不同的資料庫系統對資料型別要求的不同,在定義資料庫表時,也規定了資料字段的資料型別。
1、測試步驟和方法:在系統的資料維護功能介面上,錄入或修改資料時,特意輸入非系統設計的資料型別,檢查系統是否可以接受,若不能接受則檢查是否滿足了系統在這方面的設計要求,如即刻清除非法內容、輸入焦點不能到下一輸入位置、出現系統自定義的提示資訊、不允許出現開發工具的報錯資訊等。若系統可以接受並儲存,則要看資料庫表的字段型別設計是否與使用者或習慣上不一致,並且要注意其他模組在調取該資料時,是否有特定要求。
邊界值測試:根據資料取值範圍的要求,輸入符合取值範圍的資料、取值範圍的上、下限和超過取值範圍的資料。注意,除要測試資料庫系統本身資料型別取值範圍外,還要根據軟體系統設計中的一些特定要求,設計測試用例來測試。
資料合法性測試:測試人員除了要測試輸入資料是否滿足所使用資料庫系統本身的資料型別和取值範圍的要求外,還應該根據經驗和軟體系統和需求的特定要求檢查輸入資料的合法性。比如:日期合法性(出生年月、參保日期、發生時間、根據習慣和業務邏輯順序對日期合理性的要求等)。工資、比例、率等,都要注意輸入的合理、合法性。
單引號和雙引號:不要忽略輸入單引號和雙引號可能引起的錯誤和資料問題。在功能錄入介面上,在某字段的輸入框輸入了包括單引號和雙引號的資料,以後在通過select 語句查詢時可能會出問題。特別在基於web方式的系統,輸入了單引號,在查詢資料記錄時,肯定會出現頁面鏈結錯誤(頁面無法鏈結或找不到或鏈結物件錯誤)。
空值測試:在測試資料錄入或修改的功能介面時,若不輸入任何東西,系統又沒有設計成not null,則這時,要非常注意其影響。因為資料可以正常儲存,但資料表該字段是空值,那麼所有與該字段有關的操作,如:查詢(and)、計算(累加、連乘)等,則可能出現資料問題(計算結果為0,無記錄返回)。對於測試人員首先要檢查系統到底是作為空值,還是作為空串或空字元處理。另外對於允許不輸入任何值的字段,在測試過程中,要檢查是否在介面顯示或列印報表時,這些字段作為了關鍵要素或標題等情況。
空格:在資料維護的功能介面上,輸入資料時,要注意是否在輸入位置有空格,首先看系統設計時,是怎麼考慮的,若系統允許輸入空格,則檢查條件查詢或作為呼叫引數時的資料返回情況;另外檢查程式是否使用了去掉空格的函式。
資料校驗的不一致:測試時,對於一些編號、編碼、**等主鍵或作為查詢或呼叫條件的字段,要注意系統對他們的輸入合法性檢查與查詢或呼叫條件的要求是否是一致的。特別是對於資料結構設計中沒有特定約束,而由程式進行校驗控制的情況。
分析:資料輸入測試的主要目的是保證輸入到系統中資料的合法、合理性。我覺得,資料輸入過程的檢查是非常重要的,若在程式設計過程中,不注重資料的校驗功能,雖然看起來加快了開發進度,但給以後會帶來一些不可預計的程式設計或維護工作量。
2、目錄路徑測試:測試系統中規定的路徑要求,更改路徑,檢查系統的是否可以正確執行及系統的排錯功能。測試時,根據系統設計說明書(詳細設計)或通過對程式源**的熟悉,找出系統執行過程中指定的路徑或在執行過程中,需要使用者選擇路徑的地方。特意更改路徑(選擇正確的路徑、選擇另外的路徑、輸入不存在的路徑)。檢查系統是否具有路徑上的容錯性和靈活性。比如,原則上在程式中,最好不要寫絕對路徑,另外可以提供配置路徑的對話方塊,若輸入了非法路徑,系統有無提示等。
3、 資料操作測試:包括資料操作測試和使用者介面操作的測試。
4、工具條和快捷鍵測試:在功能介面測試時,對系統選單中定義的快捷鍵和選單工具條中的工具按鈕要測試。主要是有效性和一致性測試。有效性:檢查是否有效,介面有無反應。一致性:定義或提示的資訊是否與實際完成的功能一致。
5、 操作順序測試
9、 資料輸出測試:
10、web測試:基於web方式的應用,對於一些提交表單的頁面,通過多次點選「back」鍵,來測試系統的處理情況。對於有儲存資料功能的頁面,多次點選「儲存」,來測試系統的處理情況。
軟體測試基礎理論(一)
關於基礎理論一二三,都已經重新整理更新到了基礎知識總結,傳送門 1 什麼是軟體 定義 計算機系統中與硬體相互依存的一部分 程式 資料 相關文件 程式 按事先設計的功能和效能要求執行的指令序列 資料 使程式能正常操縱資訊的資料結構 文件 與程式開發 維護和使用有關的 資料 2 軟體的生命週期 可行性研...
軟體測試的基礎理論一
軟體測試的入門,一般的軟體測試書上出現較多的基礎理論。軟體測試有哪些階段 一般有單元測試 整合測試 系統測試 使用者驗收測試,回歸測試幾個階段。1 單元測試 unit testing,對軟體中的基本組成單位進行的測試,乙個部件或者模組等,是軟體測試的基礎部分。2 整合測試 integration t...
軟體測試基礎理論
軟體產品的質量 指的是實體特性的綜合,表示實體滿足明確或隱含要求的能力。軟體測試的目的 1 驗證軟體是否滿足軟體開發合同或者專案開發計畫,系統 子系統設計文件,軟體需求規格說明等規定的軟體質量要求。2 通過測試,發現軟體缺陷3 為軟體產品質量的測量和評價提供依據。軟體測試的四個過程 1 測試策劃 主...