1. 程式人生 > >一個系統測試的完整過程

一個系統測試的完整過程

一、需求審查方面

  首先我們從最開始接觸的文件開始,那就是測需求文件;需求審查主要是我們對需求文件的理解,並熟透整個系統的每個功能和流程,對後期所有的測試建立思路,後續的工作基本依照需求進行操作,所以需求審查是一個很重要的一步。

  對於初次進行需求審查,我採用我以前文章的方向方法,看完每一個模組,就將這個模組的功能流程做成流程圖。依次擴大,就將整個需求流程瞭解清楚,每次將流程圖多瀏覽幾次,差不多流程就這樣熟透!

  1、 需求變更

  需求變更讓我們測試人員,在其中吃透苦頭,每次需求的變更導致我們前期的工作好多都需要重新開始(流程圖,測試點的提取,測試用例)。導致後續工作難於開展或經常出現變更。

  2、 需求不明確

  對於青少年足球系統而言,需求全來自教育廳,裡面同樣有很多需求不明確,全過程儘量與教育廳的需求進行延伸,然後結合開發人員實際開發的效果,進行測試過程!

  二、提取測試需求的過程:

  測試點提取我們依據每個測試階段的測試輸入的文件(需求分析)結合前面的需求分析的審查,覆蓋測試需求和隱藏的業務需求,我們後期的測試,全是建立在提取的測試點之上進行的,可以說測試點提取是後續工作進展必要必經路徑。主要步驟就是,將每個模組可能存在的問題全部羅列出來,並對其最初可以輸入或者流程路徑的不同,將每個測試點細分,寫成文件!

  測試點提取的方法:

  1、測試需求分析法

  2、功能點分析法

  3、業務流程分析法

  4、節點分析法

  5、順序提取法

  6、流程判斷法

  在測試點提取的過程中,測試人員主要存在的問題是,除了輸入框,連結,按鈕,文字顯示等外,流程測試點是最難提取的(提取此處測試點需要了解整個流程),我們採取的方式是,多閱讀需求書,並且按照我們的思路將流程圖做出來,在提取測試點,最終交於指導老師處,一對一的修改,另一方面,就是對那些隱藏的測試點提取,對於初次做專案測試的我們,基本沒有擇,只能和指導老師一起尋找和編寫!

  ●測試點提取不侷限於任何一種特定的方法。

  ●很多時候測試點提取需求用到很多測試點提取方法

  ●測試點提取需要根據測試階段,測試輸入文件以及測試物件進行合理的方法選擇。

  ●測試點提取完畢後不等於已經測試點提取完畢,還需要我們再次進行測試點的審查,以防有遺漏或者是泛泛的情況

  ●一份好的測試點提取文件不但能夠覆蓋所有業務分支和功能點,而且能夠將相關隱藏需求體現出來

  三、測試用例設計

  測試用例是為特定的目的而設計的一組測試輸入,執行條件和預期結果,以便測試某個程式路基和核實是否滿足某個特定需求!

  在做功能測試時我們唯一能做的就是保證這個業務邏輯的正確性以及各個功能的儘可能的正確。業務和功能的正確性就要你自己去判斷了,我只是簡單寫下輸入、輸出方面功能的測試。

  作為一位功能測試人員,主要的職能就是進行測試用例的設計上,並根據測試用例執行測試,通過全面的測試來驗證產品的質量。因此測試用例提取,也從側面反映了一個測試人員的測試思路的嚴密和發散性,要做好功能測試,測試用例的重要性無法忽視,現就對”四川省青少年校園足球資訊化管理系統”設計測試用例的流程和思路進行總結:

  1)首先要對測試用例的組織結構進行劃分

  在進行需求評審的時候,我們就應該根據需求對測試用例的結構進行分類,對於我們現在做的青少年足球系統相對較大型的管理系統,那麼測試用例就可以根據功能模組來進行分類

  對測試用例的組織結構進行劃分的思路,主要根據需求文件的測試切入點來進行參考。

  2)根據功能點細緻地設計測試用例

  進行完需求評審後,我們將會根據需求文件及自己所負責的工作提交自己的設計文件來進行評審,可以參考設計文件中的內容提取出各個功能模組中的功能點來設計測試用例,如果是管理模組,首先可以將增刪查改功能作為第一層功能點,然後再根據必填項非空判斷、輸入格式驗證來作為第二層功能點;

  劃分好功能點後,就可以利用等價類劃分、邊界值分析等一些測試方法來編寫測試用例,並且可以進行標註,這樣對於後期的測試用例整理相當有幫助。

  3)執行完一輪測試之後,都要對測試用例進行補充和整理

  執行完一輪測試之後,都會對所測試的內容有進一步的瞭解,並且開發人員在實際開發過程中,會對某些功能的細節部分做出一些修改,測試人員應該根據變更和熟悉程度對之前編寫的測試用例進行完善,主要是對測試步驟的修改和異常情況的補充,提高測試用例對需求的覆蓋率,以便能發現更多的BUG。

4)測試結束之後,根據測試用例整理出測試思路進行總結

  測試結束之後,測試人員在提交測試報告之後一般基本就會有一段短暫的休閒期,在此期間,再看看被自己不斷完善的測試用例,根據用例中的標註,可以將之前的測試思路很條理地整理出來,反思有哪些地方考慮不足,這就是經驗積累。

  做好這些工作之後,在面對領導問你功能測試會測試到哪些功能,會測試哪些情況,執行一輪測試所需的大概時間問題時,測試人員就可以根據自己編寫的測試用例進行流利回答。套用郭德剛的一句詞:做科學的人都是很嚴謹的。大家作為都是有身份證的測試人員,只有工作做得細緻嚴謹,自身的水平才能得到提高。

  A.測試用例該如何設計(總)

  在軟體測試工作中,測試用例設計和編寫時最重要的,測試用例是測試工作的指指導,是軟體測試的必須遵循的原則,更是軟體測試質量穩定的基本保障!

  1.     測試用例的測試

  個人認為,簡單來說,就是方法+經驗,即比較成熟的測試用例設計方法為指導,再加上設計人員個人的經驗積累!

  設計入手:

  ü 選單樹

  ü 需求規格書,模組的詳細規格圖

  ü 軟體的基本雛形

  ü 相關標準規格(軟體規格書)

  設計步驟

  自我認為多看需求文件,多與需求設計人員溝通,至少保證覆蓋需求規格說明書和選單樹的各項功能。

  ü 根據需求規格和選單樹得出基本功能測試用例;

  a)等價類劃分法

  將輸入範圍進行劃分,測試每個等價類的代表性資料等同於測試該類的其他資料。確定有效和無效等價類,一個等價類,如果有充足理由,可以再劃分為多個更小一些的等價類。部分更小一些的等價類,就憑藉個人經驗和使用者角度去考慮取捨。

  b)功能,路徑混合分析法:即實現某功能,從進入功能實現——退出的各種路徑的操作組合。

  進入:如果只有一種進入方式,則就沒必要描述了,2種或者2種以上的進入方式,則需要分別描述。常見的進入方式:主選單進入,連結進入!

  功能實現:通過主頁導航介面進入並實現相關功能

  退出;為實現和已實現的功能退出

  ü  邊界值測試用例(所謂邊界條件,是指輸入和輸出等價類中那些恰好處於邊界,或超出邊界,或在邊界一下的狀態)

  a)輸入值

  b)輸出值

  c)邊界狀態

  在我們的足球管理系統中,對照片的縮放,就用到這一塊!

  d)其他邊界

  ü  容錯測試用例(錯誤猜測主要是一項依賴於直覺的非正式的過程,其基本思想是列舉出可可犯的錯誤或者錯誤易發生情況的清單)

  a)0或者空值

  b)負數

  c)刪除原始檔內容

  我們在賽事測試的過程中,設計上傳參賽表明表,在測試過程中,我將部分資訊刪除,進行測試!

  ü  並行測試用例(即多個功能同時進行,比如:在青少年足球系統中,我們需要在釋出賽事以後,同時進入公示,並且下級報名依然不能給報名)

  a)並行測試與交叉測試的區別

  1.交叉測試是當一個功能執行時,另一功能打斷了原來事件的執行,屬於被動;並行測試不會中斷原有程式,是一個主動發起多功能。

  2.交叉測試傳送在一瞬間,並行測試營同時執行一段時間。

  ü序列測試用例(主要是單個模組內一串深層次路徑的測試,採用自頂而下的方法,從程式的頂部一直訪問至程式頂部)

  比如:像我們青少年足球系統,我從首頁進入賽事發布成功進入公示頁面,然後再往上級返回到網頁首頁!

  ü  交叉測試用例(交叉測試,即是中斷測試,當一個事件執行時,另一事件中斷原有事件的執行。)

  a)兩不寫

  1.操作時間過短,如:我們按下首頁的賽事發布管理按鈕

  2.使用概論低的介面,如:我們青少年足球系統中,下面的腳碼出的超連結,我們很少點選

  b)兩必寫

  1.操作時間長,如:在我們的青少年足球系統中,登陸賬號後,30分鐘對網頁沒有做任何處理,是否有報警觸發。

  ü 極限測試用例(壓力測試,就是個軟體施加一定的壓力,從而找出中的錯誤)

  這一塊我在整個系統使用的很少,還處於學習階段!

  a)測試用例的檢查

  1.檢查,寫完後自己在重頭到尾的檢查一遍,然後再拿給我們的小夥伴一起檢視

  2.試用,測試用例寫完後應該有一個使用期,在我們使用的過程中發現漏寫或者不合適的地方,應及時增加或者更改。

  b)“期望結果”與”測試方法”混淆,”期望結果”中出現原本該書寫在”測試方法”的步奏

b)“期望結果”與”測試方法”混淆,”期望結果”中出現原本該書寫在”測試方法”的步奏

  c) 但是上面是錯誤的,應該按照下面方法進行設計編寫

  B.再次總結測試用例設計的要點,注意事項

  測試用例設計是個不斷思考的過程,首先要搞清楚自己所測試的軟體系統的需求和功能,以及所有能變化的因素,將這些功能點列成一個設計框架,在分別細化各個功能點的測試方法和期望結果,細化過程中,通過等價類劃分,正交矩陣等方法來詳細各個測試點,保證覆蓋的充分性,同時站在使用者的角度,考慮使用者常用和不常用的操作路徑,依次來取捨測試要點,最後考慮設計步奏中的七種測試型別是否需要新增相應用例。

  測試用例設計也是個不斷優化的過程,平時發現的bug,總結經驗,積累更多的經驗,測試用例也會更全面,軟體品質也能得到更好的保障!

  四、測試報告缺陷的提交和編寫

  A.強調這一塊的重要性!

  下面就是我們在測試過程的滿足的條件:

  精簡的:缺陷的描述應該是清晰而簡要的。

  正確的:提交的問題確實是一個缺陷。

  中立的:對缺陷及其特徵進行實事求是的描述,避免誇張、幽默、諷刺的態度,避免在測試缺陷報告中帶有個人感情色彩,因為這種感情色彩可能會影響團隊之間的合作和溝通。

  準確的:準確而明白地描述問題,不僅對做了什麼進行描述,而應該對發生或者發現了什麼進行描述。

  隔離:儘量尋找簡短的步驟復現缺陷,即將缺陷進行隔離。

  推廣:確定系統其他部分是否可能也存在同樣的問題,以及使用不同的資料時是否也會出現這種問題等。

  復現:確定系統是否可以復現這個問題,以及復現該缺陷的步驟。對於能夠復現的問題,應該提供簡單的步驟和輸入

  證據:如同寫測試用例需要測試條件一樣,在缺陷報告中,需要提供測試的期望結果和實際得到的輸出結果或者行為之間的差距,以及提供測試的依據。

  評審:在提交缺陷報告之前,最好有一個有經驗的測試人員閱讀一遍。  

  缺陷報告編寫的過程:

  B.缺陷報告的提交

  缺陷報告的提交,在測試過程中,我們採用了兩種方式

  1、提交給我們的指導老師!接下來的工作就是指導老師與相關開發人員溝通(這種提交的方式是我們前期的提交方式)

  2、便是跳過我們的指導老師,直接將問題和呈現過程交於開發人員,並且讓其快速修復!(這種方式比較快捷,能夠快速的解決問題和加快開發的過程)

  C.如何編寫好的(易讀)的缺陷報告

  1、標題(簡單明顯,不需要含有修飾語)

  2、執行動作(步驟)

  3、預期與實際結果

  D.缺陷報告的返回,檢驗是否修改!

  此環節,主要在我們提交缺陷報告後,開發人員將缺陷報告再次返回與我們測試人員,測試人員主要是檢查缺陷報告上面的問題是否已經修復,一遍我們能夠提交缺陷報告和了解缺陷的修復情況!

  E.並描述與開發人員的互動過程

  在我們與開放人員互動的時候:互動過程中存在的問題,當部分子功能模組做出來的時候,我們測試人員開始測試子功能模組的時候,測出問題的時候,我們便直接與開發人員提出此問題,可能是剛開始合作,還有他們對自己寫的程式碼還有強烈的自信感!對我們的問題採用避讓的方式,在我們繼續的講述和演示功能的過程,才得以讓他們信服。現在這些問題都不存在,都能夠在規定的時間完成每個功能的修復!

  F.過程中的問題如何解決

  輸入框和文字顯示在此不做詳細說明,我在專案中主要是承擔邏輯很強的賽事模組,這塊設計的邏輯和流程互動挺多,除此測試這塊的時候很難把握流程問題,整個專案在隨時改變和需求分析存在一定的差異,所以造成這塊測試邏輯流程比較難以實施,為了更好的完成測試,我採用了,進行測試之前,然相關模組開發的人員演示一下流程,讓我更好的程序下一步測試!

  G.最後對測試缺陷報告的綜述(好方法,注意事項,怎樣才能夠做好測試缺陷報告)

  測試執行過程注意事項:

  注意前提條件和特殊說明

  測試用例要全部執行

  不要忽視任何偶然現象

  加強測試過程的記錄

  詳細預期與實際的不一致等

效能測試:

相關推薦

一個系統測試完整過程

一、需求審查方面   首先我們從最開始接觸的文件開始,那就是測需求文件;需求審查主要是我們對需求文件的理解,並熟透整個系統的每個功能和流程,對後期所有的測試建立思路,後續的工作基本依照需求進行操作,所以需求審查是一個很重要的一步。   對於初次進行需求審查,我採用

記錄自己用python搭建個人部落格系統完整過程(一)

零、前言 本博文記錄搭建個人部落格系統的完整過程,網上有許多相關的教程,但是沒找到一個(適合自己能力的)快速搭建的完整教程。藉此篇博文梳理一下前不久學習到的有關整個過程前前後後的各種知識點。 一、搭建環境 採用架構:python3.6 + django1.10 + ngi

虛擬機器安裝windows ghost版本系統記錄完整過程

        一,新建虛擬機器,如下圖所示操作                                                                                    將映象檔案引入以上新建虛擬機器就算完成了。下面就是具體的安裝

《結對-藍牙考勤系統-測試過程

功能測試 sele 小時 要求 檢測 正在 github span 平臺 項目托管平臺地址:正在完善中,計劃首選Github或者碼雲功能測試:藍牙功能,測試方法:黑盒測試 因為是引用開源的藍牙庫只能進行黑盒測試,測試結果藍牙模塊,符合程序要求計時功能,測試方法:動態測試 動

Oracle學習筆記_05_ 一個創建表空間、創建用戶、授權的完整過程

查看 ref tab 學習 linu word 切換 temp voice 一、完整命令 su - oracle sqlplus /nolog conn /as sysdba create tablespace scaninvoice logging

系統測試要考慮業務數據沒有完整錄入時候是否會有非空判斷異常等影響到現有系統的使用

dex 其他 業務 str src 離開 情況 後臺 記錄 原文鏈接:http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?id=8f508ee6-38db-4715-9f8

Jmeter Thread Group中如果存在HTTP request執行失敗,就對整個Thread Group重新執行,限定最大執行次數N次 由於在對WEB系統進行自動化測試過程中,經常會由於

Jmeter Thread Group中如果存在HTTP request執行失敗,就對整個Thread Group重新執行,限定最大執行次數N次 由於在對WEB系統進行自動化測試的過程中,經常會由於握手連線斷開等原因導致HTTP請求傳送失敗,如果重新執行一次,會是成功的。在每天的自動

WMI應用(一個系統自帶的測試WMI語句的工具)

1. 開始-執行-輸入:wbemtest 回車 2. 單擊"連線", 輸入:root\cimv2 回車; 或者ROOT\SecurityCenter  3. 單擊"查詢", 輸入: SELECT * FROM Win32_Process 應用; 或者SELECT * FROM A

手把手教你做一個Java web學生資訊、選課、簽到考勤、成績管理系統附帶完整原始碼及視訊開發教程

四個階段的Java web學生資訊系統視訊教程終於錄製完成了,系統用到的知識點有:jsp+servlet+mysql+jquery+ajax,前端採用的是當下最流行的easyui管理框架,全部採用面向介面的MVC三層設計模式,是大家學習Java web實戰專案不可多得的入門專

手把手教你做一個jsp servlet mysql實現的學生宿舍管理系統附帶完整原始碼和開發視訊教程

前段時間我們以分階段的形式錄製了四個階段的學生系統開發實戰教程,大家反響還不錯,前面四個階段是帶大家入門jsp servlet的開發,今天要介紹的這個宿舍管理系統則是比前面幾個階段有所提升,本階段的重點核心放在了對資料庫的操作上,利用泛型和反射機制將資料庫操作全部抽象封裝起來

一個Java系統測試

實驗感受: 本次實驗最大的感受,就是不要改程式碼,自己寫,程式碼改起來真的沒完沒了,不知道會出現什麼問題。還有就是一定要清楚自己要怎麼去寫,流程很重要,一個個功能去實現。   主介面 資料庫 主頁面程式碼   <%@ page language="ja

oracle一個建立使用者、建立表空間、授權、建表的完整過程

<轉載> 原文地址: http://skyuck.iteye.com/blog/847859 1.首先我們可以用scott使用者以sysdba的身份登入oracle. Sql程式碼   conn scott/tiger as sysdba 

容器完整處理一個http請求的過程

初學java web的朋友們應該都知道tomcat容器,但是tomcat是如何完成一次http請求的過程,這裡做一個記錄。 當用戶在客戶端點選一個連結,該連結的URL指向一個servlet,經過網路轉發到應用所在的web伺服器的,此時web伺服器不是直接把申請發給servlet本身,而是傳送給部署該s

效能測試工作的完整過程,目的,最關鍵的是什麼

系統測試分類:功能測試(正確性,容錯性,併發邏輯,關聯內容),安全測試,效能測試(壓力測試,響應時間),強度測試,容量測試,恢復測試,使用者介面測試,介面間測試。。。 效能測試的概念---在正常,峰值以及異常負載條件下,測試系統的各項效能指標;通過自動化的測試工具模擬

springmvc在處理請求過程中出現異常資訊交由異常處理器進行處理,自定義異常處理器可以實現一個系統的異常處理邏輯。為了區別不同的異常通常根據異常型別自定義異常類,這裡我們建立一個自定義系統異常,如果controller、service、dao丟擲此類異常說明是系統預期處理的異常資訊。

springmvc在處理請求過程中出現異常資訊交由異常處理器進行處理,自定義異常處理器可以實現一個系統的異常處理邏輯。 1.1 異常處理思路 系統中異常包括兩類:預期異常和執行時異常RuntimeException,前者通過捕獲異常從而獲取異常資訊,後者主要通過規範程式碼開發、測試通過手段減少執

springmvc在處理請求過程中出現異常信息交由異常處理器進行處理,自定義異常處理器可以實現一個系統的異常處理邏輯。為了區別不同的異常通常根據異常類型自定義異常類,這裏我們創建一個自定義系統異常,如果controller、service、dao拋出此類異常說明是系統預期處理的異常信息。

ansi req -type this spring 進行 name ext code springmvc在處理請求過程中出現異常信息交由異常處理器進行處理,自定義異常處理器可以實現一個系統的異常處理邏輯。 1.1 異常處理思路 系統中異常包括兩類:預期異常和運行時異常Ru

SpringMVC:處理一個http請求的完整過程

SpringMVC是一個基於DispatcherServlet的MVC框架,每一個請求最先訪問的都是DispatcherServlet,DispatcherServlet負責轉發每一個Request請求給相應的Handler,Handler處理以後再返回相

一個分散式測試系統利器

Create an EC2 instance Sign up for AWSIn Services -> EC2, click “Launch Instance”Choose the 64 bit Debian Jessie imageHit review and launchSave your SS

Android系統升級的完整過程

下面是HTC官方的一個圖片,展示了Android系統從釋出最終到使用者手中的一個完整的過程: Awesome Infographic: HTC Shows Us “The Anatomy of an Android OS Update” From PDK to OTA

構建一個基於Vue完整的商城後臺管理系統

###專案簡介: 該後臺管理系統是基於Vue2.0來實現的。其中包含了登入,使用者管理,商品管理,管理員許可權管理,資料統計,訂單管理,物流管理,代金券系統,支付方式配置頁面風格管理等模組。 前端技術 vue vue-cli 腳手架工具進行專案整體架構的搭建