成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

動態測試工具

開發 測試
動態測試就是通過選擇適當的測試用例,實際運行所測程序,比較實際運行結果和預期結果,以找出錯誤。本文主要介紹動態測試工具,一起來看。

動態測試就是通過選擇適當的測試用例,實際運行所測程序,比較實際運行結果和預期結果,以找出錯誤。動態測試分為結構測試與功能測試。在結構測試中常采用語句測試、分支測試或路徑測試。作為動態測試工具,它應能使所測試程序有控制地運行,自動地監視、記錄、統計程序的運行情況。典型方法是在所測試程序中插入檢測各語句的執行次數、各分支點、各路徑的探針(probe),以便統計各種覆蓋情況。

有些程序設計語言的源程序清單中沒有標號,在進行靜態分析或動態測試時,還要重新對語句進行編號,以便能標志各分支點和路徑。在有些程序的測試中,往往要統計各個語句執行時的cPU時間,以便對時間花費最多的語句或程序段進行優化。

(1)測試覆蓋監視程序

主要用在結構測試中,可以監視測試的實際覆蓋程度。主要的工作有:分析并輸出每一可執行語句的執行特性;中國自學編程網整理發布分析并輸出各分支或各條路徑的執行特性;計算并輸出程序中謂詞的執行特性;為此,測試覆蓋監視程序的工作過程分為以下三個階段:

1)對所測試程序做預處理。

如在程序的分支點和匯合點插入“執行計數探針”;在非簡單賦值語句(相對于賦常數值或下標計算等簡單賦值語句而言)后插入“記憶變量值探針”,記錄變量的***賦值、末次賦值、最小值、***值。以及在循環語句中插入“記憶控制變量值探針”,記錄循環控制變量的***賦值、末次賦值、最小值、***值。

2)編譯預處理后的源程序,運行目標程序。

在運行過程中,利用探針,監視、檢查程序的動態行為,收集與統計有關信息。

3)一組測試后,可以根據要求,輸出某一語句的執行次數,某一轉移發生的次數,某賦值語句的數值范圍,某循環控制變量的數據范圍,某子程序運行的時間、所調用次數等。

從而發現在程序中從未執行的語句,不應該執行而實際執行了的語句,應該執行但實際沒有執行的語句,以及發現不按預定要求終止的循環、下標值越界、除數為零等等異常情況。

(2)斷言處理程序

“斷言”是指變量應滿足的條件。例如,I<10,A(6)>O等。在所測試源程序中,在指定位置按一定格式,用注釋語句寫出的斷言叫做斷言語句。在程序執行時,對照斷言語句檢查事先指定的斷言是否成立。可以幫助復雜系統的檢驗、調試和維護。

斷言分局部性斷言和全局性斷言兩類。局部性斷言,是指在程序的某一位置上,例如,重要的循環或過程的入口和出口處,或者在一些可能引起異常的關鍵算法之前設置的斷言語句。例如在賦值語句A—B/z之前,設置局部性斷言語句:

 

  1. C ASSERT L()CAL(Z<>O) 

 

全局性斷言,是指在程序運行過程中自始至終都適用的斷言。例如,變量I、J、K只能取O到100之間的值,變量M、N只能取2、4、6、8四個值等。全局性斷言寫在程序的說明部分。描述格式為

 

  1. C ASSERT VALUES(I,J,K)(O:100)  
  2. C ASSERT VALUES(M,N)(2,46,8) 

 

程序員在每個變量、數組的說明之后,都可寫上反映其全局特性的斷言。

動態斷言處理程序的工作過程如下:

1)動態斷言處理程序對語言源程序做預處理,為注釋語句中的每一個斷言插入一段相應的檢驗程序。

2)運行經過預處理的程序,檢驗程序將檢查程序的實際運行結果與斷言所規定的邏輯狀態是否一致。對于局部性斷言,每當程序執行到這個位置時,相應的檢驗程序就要工作;對于全局性斷言,在每次變量被賦值后,相應的檢驗程序就進行工作。

動態斷言處理程序還要統計檢驗的結果(即斷言成立或不成立的次數),在發現斷言不成立的時候,還要記錄當時的現場信息,如有關變量的狀態等。處理程序還可按測試人員的要求,在某個斷言不成立的次數已達指定值時中止程序的運行,并輸出統計報告。

3)一組測試結束后,程序輸出統計結果、現場信息,供測試人員分析。

(3)符號執行程序

符號執行法是一種介于程序測試用例執行與程序正確性證明之間的方法。它使用了一個專用的程序,對輸入的源程序進行解釋。在解釋執行時,所有的輸入都以符號形式輸入到程序中,這些輸入包括基本符號,數字及表達式等。

符號執行的結果,可以有兩個用途:其一是可以檢查公式的執行結果是否達到程序預期的目的;其二是通過程序的符號執行,產生程序的路徑,為進一步自動生成測試數據提供條件。

解釋程序在對象源程序的判定點計算謂詞。一個條件語句if……then…else的兩個分支在一般情況下需要進行并行計算。語法路徑的分支形成一棵“執行樹”,樹中每一個結點都是一個表示執行到該結點時累加判定的謂詞。一旦解釋程序對對象源程序的每一條語法路徑都進行了符號計算,就會對每一條路徑給出一組輸出,它是用輸入再加上遍歷這條路徑所必須滿足的條件的謂詞組這兩者的符號形式表示的。

實際上,這種輸出包含了程序功能的定義。在理想情形下,這種輸出可以自動地與可用機器執行的程序所要具備的功能進行比較。否則可用手工進行比較。由于語法路徑的數目可能很大,再加上其中有許多是不可達路徑,這時可對執行樹進行修剪。但是修剪時必須特別小心,不要把“重要”路徑無意中修剪掉。

另外,還有一個問題:如果對象源程序中包含有一個循環,而循環的終止取決于輸入的值,那么執行樹就會是無窮的,這時,必須加以人工干預,進行某種形式的動態修剪,以恢復解釋執行。

符號執行更有用的一個結果是用于產生測試數據。符號執行的各種語法路徑輸出的累加謂詞組(只要它是可解的)定義了一組等價類,每一等價類又定義了遍歷相應路徑的輸出,可依據這種信息來選擇測試數據。尋找好的測試數據就等于尋找語義(即可達)路徑,中國自學編程網整理發布它屬于語法路徑的子集,因此,可依據這種信息來選擇測試數據。

符號執行方法還可以度量測試覆蓋程度。如果路徑謂詞的析取值為真(true),則該測試用例的集合就“覆蓋”了源程序。如果不是這樣,該析取值的取假(false),表示源程序有沒有測試到的區域。

(4)除了覆蓋分析這個最重要的特性外,下列動態特性也經常作為測試的結果予以分析

1)調節分析:確定所測程序哪些部分執行次數最多,哪些部分執行次數最少,甚至未執行過。

2)成本估算:確所測程序哪些部分執行開銷***。

3)時間分析:報告某一程序或其部分程序的cPu執行時間。

4)資源利用:分析與硬件和系統軟件相關的資源利用情況。

【編輯推薦】

  1. 淺談軟件測試嵌入式單元測試技能
  2. 通過軟件測試防止IT浪費 降低成本和風險
  3. 軟件測試接口測試的測試用例類型
  4. 消除Bug勿忽視軟件測試的價值
  5. 軟件測試理論:目的、周期、流程

 

責任編輯:于鐵 來源: 互聯網
相關推薦

2009-06-26 10:22:58

JSF測試

2011-05-31 18:25:25

測試工具

2009-03-31 09:49:40

Rational功能測試性能測試

2013-11-13 10:49:50

2010-06-04 16:31:33

Linux網絡測試

2019-02-26 08:30:48

2014-07-01 10:09:01

2023-12-27 07:35:29

HyBench數據字段

2012-12-24 22:54:31

2024-03-06 18:09:06

Linux性能工具

2021-09-06 15:32:51

CISAKubernetes測試工具

2009-12-16 10:07:26

Visual Stud

2012-02-09 09:35:46

NUnit

2011-04-18 14:28:43

測試工具軟件測試軟件工程

2010-06-07 14:42:47

Linux性能測試工具

2012-08-01 10:50:48

性能測試測試架構

2010-06-04 16:07:09

Linux 性能測試工

2010-06-11 11:35:55

Linux串口測試工具

2022-01-24 16:55:09

LinuxTCP工具

2009-05-18 08:52:17

壓力測試Rpplet測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧州一区二区三区 | 国产精品久久久久久久久久久久久久 | 久久中文字幕一区 | www国产成人免费观看视频,深夜成人网 | 久久精品二区亚洲w码 | 欧美日韩大片 | 一级毛片播放 | 热久久999| 在线视频一区二区 | 在线观看免费av网 | 成人免费久久 | 国产精品视频网 | 黄色av网站在线免费观看 | 国产精品一区二区在线 | 成年人在线观看视频 | 狠狠久| 国内精品久久久久久 | 欧美自拍第一页 | 国产精品成人一区二区三区 | 狠狠色综合久久婷婷 | 久综合 | 色屁屁在线观看 | 精品久久亚洲 | 亚洲精品在线播放 | 亚洲 欧美 精品 | 久久久久国产一级毛片高清网站 | 亚洲免费视频网站 | 97视频在线免费 | 欧美亚洲高清 | 日本一区二区三区精品视频 | 999观看免费高清www | 日韩成人免费视频 | 夜夜操av | 久久国产欧美一区二区三区精品 | www.久久.com | 黄色一级大片在线免费看产 | 日本久久www成人免 成人久久久久 | 成人精品高清 | 国产精品久久 | 亚洲国产一区二区视频 | 精品国产99 |