自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

動(dòng)態(tài)測(cè)試工具

開發(fā) 測(cè)試
動(dòng)態(tài)測(cè)試就是通過選擇適當(dāng)?shù)臏y(cè)試用例,實(shí)際運(yùn)行所測(cè)程序,比較實(shí)際運(yùn)行結(jié)果和預(yù)期結(jié)果,以找出錯(cuò)誤。本文主要介紹動(dòng)態(tài)測(cè)試工具,一起來看。

動(dòng)態(tài)測(cè)試就是通過選擇適當(dāng)?shù)臏y(cè)試用例,實(shí)際運(yùn)行所測(cè)程序,比較實(shí)際運(yùn)行結(jié)果和預(yù)期結(jié)果,以找出錯(cuò)誤。動(dòng)態(tài)測(cè)試分為結(jié)構(gòu)測(cè)試與功能測(cè)試。在結(jié)構(gòu)測(cè)試中常采用語句測(cè)試、分支測(cè)試或路徑測(cè)試。作為動(dòng)態(tài)測(cè)試工具,它應(yīng)能使所測(cè)試程序有控制地運(yùn)行,自動(dòng)地監(jiān)視、記錄、統(tǒng)計(jì)程序的運(yùn)行情況。典型方法是在所測(cè)試程序中插入檢測(cè)各語句的執(zhí)行次數(shù)、各分支點(diǎn)、各路徑的探針(probe),以便統(tǒng)計(jì)各種覆蓋情況。

有些程序設(shè)計(jì)語言的源程序清單中沒有標(biāo)號(hào),在進(jìn)行靜態(tài)分析或動(dòng)態(tài)測(cè)試時(shí),還要重新對(duì)語句進(jìn)行編號(hào),以便能標(biāo)志各分支點(diǎn)和路徑。在有些程序的測(cè)試中,往往要統(tǒng)計(jì)各個(gè)語句執(zhí)行時(shí)的cPU時(shí)間,以便對(duì)時(shí)間花費(fèi)最多的語句或程序段進(jìn)行優(yōu)化。

(1)測(cè)試覆蓋監(jiān)視程序

主要用在結(jié)構(gòu)測(cè)試中,可以監(jiān)視測(cè)試的實(shí)際覆蓋程度。主要的工作有:分析并輸出每一可執(zhí)行語句的執(zhí)行特性;中國自學(xué)編程網(wǎng)整理發(fā)布分析并輸出各分支或各條路徑的執(zhí)行特性;計(jì)算并輸出程序中謂詞的執(zhí)行特性;為此,測(cè)試覆蓋監(jiān)視程序的工作過程分為以下三個(gè)階段:

1)對(duì)所測(cè)試程序做預(yù)處理。

如在程序的分支點(diǎn)和匯合點(diǎn)插入“執(zhí)行計(jì)數(shù)探針”;在非簡(jiǎn)單賦值語句(相對(duì)于賦常數(shù)值或下標(biāo)計(jì)算等簡(jiǎn)單賦值語句而言)后插入“記憶變量值探針”,記錄變量的***賦值、末次賦值、最小值、***值。以及在循環(huán)語句中插入“記憶控制變量值探針”,記錄循環(huán)控制變量的***賦值、末次賦值、最小值、***值。

2)編譯預(yù)處理后的源程序,運(yùn)行目標(biāo)程序。

在運(yùn)行過程中,利用探針,監(jiān)視、檢查程序的動(dòng)態(tài)行為,收集與統(tǒng)計(jì)有關(guān)信息。

3)一組測(cè)試后,可以根據(jù)要求,輸出某一語句的執(zhí)行次數(shù),某一轉(zhuǎn)移發(fā)生的次數(shù),某賦值語句的數(shù)值范圍,某循環(huán)控制變量的數(shù)據(jù)范圍,某子程序運(yùn)行的時(shí)間、所調(diào)用次數(shù)等。

從而發(fā)現(xiàn)在程序中從未執(zhí)行的語句,不應(yīng)該執(zhí)行而實(shí)際執(zhí)行了的語句,應(yīng)該執(zhí)行但實(shí)際沒有執(zhí)行的語句,以及發(fā)現(xiàn)不按預(yù)定要求終止的循環(huán)、下標(biāo)值越界、除數(shù)為零等等異常情況。

(2)斷言處理程序

“斷言”是指變量應(yīng)滿足的條件。例如,I<10,A(6)>O等。在所測(cè)試源程序中,在指定位置按一定格式,用注釋語句寫出的斷言叫做斷言語句。在程序執(zhí)行時(shí),對(duì)照斷言語句檢查事先指定的斷言是否成立??梢詭椭鷱?fù)雜系統(tǒng)的檢驗(yàn)、調(diào)試和維護(hù)。

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

 

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

 

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

 

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

 

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

動(dòng)態(tài)斷言處理程序的工作過程如下:

1)動(dòng)態(tài)斷言處理程序?qū)φZ言源程序做預(yù)處理,為注釋語句中的每一個(gè)斷言插入一段相應(yīng)的檢驗(yàn)程序。

2)運(yùn)行經(jīng)過預(yù)處理的程序,檢驗(yàn)程序?qū)z查程序的實(shí)際運(yùn)行結(jié)果與斷言所規(guī)定的邏輯狀態(tài)是否一致。對(duì)于局部性斷言,每當(dāng)程序執(zhí)行到這個(gè)位置時(shí),相應(yīng)的檢驗(yàn)程序就要工作;對(duì)于全局性斷言,在每次變量被賦值后,相應(yīng)的檢驗(yàn)程序就進(jìn)行工作。

動(dòng)態(tài)斷言處理程序還要統(tǒng)計(jì)檢驗(yàn)的結(jié)果(即斷言成立或不成立的次數(shù)),在發(fā)現(xiàn)斷言不成立的時(shí)候,還要記錄當(dāng)時(shí)的現(xiàn)場(chǎng)信息,如有關(guān)變量的狀態(tài)等。處理程序還可按測(cè)試人員的要求,在某個(gè)斷言不成立的次數(shù)已達(dá)指定值時(shí)中止程序的運(yùn)行,并輸出統(tǒng)計(jì)報(bào)告。

3)一組測(cè)試結(jié)束后,程序輸出統(tǒng)計(jì)結(jié)果、現(xiàn)場(chǎng)信息,供測(cè)試人員分析。

(3)符號(hào)執(zhí)行程序

符號(hào)執(zhí)行法是一種介于程序測(cè)試用例執(zhí)行與程序正確性證明之間的方法。它使用了一個(gè)專用的程序,對(duì)輸入的源程序進(jìn)行解釋。在解釋執(zhí)行時(shí),所有的輸入都以符號(hào)形式輸入到程序中,這些輸入包括基本符號(hào),數(shù)字及表達(dá)式等。

符號(hào)執(zhí)行的結(jié)果,可以有兩個(gè)用途:其一是可以檢查公式的執(zhí)行結(jié)果是否達(dá)到程序預(yù)期的目的;其二是通過程序的符號(hào)執(zhí)行,產(chǎn)生程序的路徑,為進(jìn)一步自動(dòng)生成測(cè)試數(shù)據(jù)提供條件。

解釋程序在對(duì)象源程序的判定點(diǎn)計(jì)算謂詞。一個(gè)條件語句if……then…else的兩個(gè)分支在一般情況下需要進(jìn)行并行計(jì)算。語法路徑的分支形成一棵“執(zhí)行樹”,樹中每一個(gè)結(jié)點(diǎn)都是一個(gè)表示執(zhí)行到該結(jié)點(diǎn)時(shí)累加判定的謂詞。一旦解釋程序?qū)?duì)象源程序的每一條語法路徑都進(jìn)行了符號(hào)計(jì)算,就會(huì)對(duì)每一條路徑給出一組輸出,它是用輸入再加上遍歷這條路徑所必須滿足的條件的謂詞組這兩者的符號(hào)形式表示的。

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

另外,還有一個(gè)問題:如果對(duì)象源程序中包含有一個(gè)循環(huán),而循環(huán)的終止取決于輸入的值,那么執(zhí)行樹就會(huì)是無窮的,這時(shí),必須加以人工干預(yù),進(jìn)行某種形式的動(dòng)態(tài)修剪,以恢復(fù)解釋執(zhí)行。

符號(hào)執(zhí)行更有用的一個(gè)結(jié)果是用于產(chǎn)生測(cè)試數(shù)據(jù)。符號(hào)執(zhí)行的各種語法路徑輸出的累加謂詞組(只要它是可解的)定義了一組等價(jià)類,每一等價(jià)類又定義了遍歷相應(yīng)路徑的輸出,可依據(jù)這種信息來選擇測(cè)試數(shù)據(jù)。尋找好的測(cè)試數(shù)據(jù)就等于尋找語義(即可達(dá))路徑,中國自學(xué)編程網(wǎng)整理發(fā)布它屬于語法路徑的子集,因此,可依據(jù)這種信息來選擇測(cè)試數(shù)據(jù)。

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

(4)除了覆蓋分析這個(gè)最重要的特性外,下列動(dòng)態(tài)特性也經(jīng)常作為測(cè)試的結(jié)果予以分析

1)調(diào)節(jié)分析:確定所測(cè)程序哪些部分執(zhí)行次數(shù)最多,哪些部分執(zhí)行次數(shù)最少,甚至未執(zhí)行過。

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

3)時(shí)間分析:報(bào)告某一程序或其部分程序的cPu執(zhí)行時(shí)間。

4)資源利用:分析與硬件和系統(tǒng)軟件相關(guān)的資源利用情況。

【編輯推薦】

  1. 淺談軟件測(cè)試嵌入式單元測(cè)試技能
  2. 通過軟件測(cè)試防止IT浪費(fèi) 降低成本和風(fēng)險(xiǎn)
  3. 軟件測(cè)試接口測(cè)試的測(cè)試用例類型
  4. 消除Bug勿忽視軟件測(cè)試的價(jià)值
  5. 軟件測(cè)試?yán)碚摚耗康摹⒅芷?、流?/span>

 

責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-06-26 10:22:58

JSF測(cè)試

2009-03-31 09:49:40

Rational功能測(cè)試性能測(cè)試

2011-05-31 18:25:25

測(cè)試工具

2013-11-13 10:49:50

2023-12-27 07:35:29

HyBench數(shù)據(jù)字段

2010-06-04 16:31:33

Linux網(wǎng)絡(luò)測(cè)試

2014-07-01 10:09:01

2019-02-26 08:30:48

2012-12-24 22:54:31

2024-03-06 18:09:06

Linux性能工具

2011-04-18 14:28:43

測(cè)試工具軟件測(cè)試軟件工程

2021-09-06 15:32:51

CISAKubernetes測(cè)試工具

2010-06-07 14:42:47

Linux性能測(cè)試工具

2009-12-16 10:07:26

Visual Stud

2010-06-11 11:35:55

Linux串口測(cè)試工具

2012-08-01 10:50:48

性能測(cè)試測(cè)試架構(gòu)

2012-02-09 09:35:46

NUnit

2010-06-04 16:07:09

Linux 性能測(cè)試工

2022-01-24 16:55:09

LinuxTCP工具

2009-05-18 08:52:17

壓力測(cè)試Rpplet測(cè)試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)