版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1/1動態(tài)單元測試用例生成第一部分動態(tài)單元測試用例生成概述與意義 2第二部分動態(tài)單元測試用例生成技術(shù)類型 4第三部分基于白盒的動態(tài)用例生成技術(shù) 7第四部分基于覆蓋率的動態(tài)用例生成技術(shù) 11第五部分基于模型的動態(tài)用例生成技術(shù) 15第六部分基于路徑的動態(tài)用例生成技術(shù) 19第七部分動態(tài)單元測試用例生成工具 22第八部分動態(tài)單元測試用例生成研究進展與未來方向 25
第一部分動態(tài)單元測試用例生成概述與意義關(guān)鍵詞關(guān)鍵要點【動態(tài)單元測試用例生成概述】:
1.定義:動態(tài)單元測試用例生成是一種用于自動生成單元測試用例的技術(shù),它可以根據(jù)給定的程序代碼和測試目標(biāo)來生成測試用例。
2.流程:動態(tài)單元測試用例生成的一般流程包括:程序代碼分析、測試目標(biāo)提取、測試用例生成和測試執(zhí)行等步驟。
3.優(yōu)點:動態(tài)單元測試用例生成方法可以有效提高測試用例的質(zhì)量,覆蓋更多測試場景,并且能夠根據(jù)程序代碼和測試目標(biāo)的變化而自動更新測試用例。
【動態(tài)單元測試用例生成意義】:
動態(tài)單元測試用例生成概述
動態(tài)單元測試用例生成是一種自動生成測試用例的技術(shù),它可以根據(jù)程序的運行情況自動生成新的測試用例。動態(tài)單元測試用例生成技術(shù)的產(chǎn)生源于以下幾個原因:
*傳統(tǒng)靜態(tài)單元測試用例生成方法的局限性。傳統(tǒng)靜態(tài)單元測試用例生成方法通常是基于程序的結(jié)構(gòu)或覆蓋率來生成測試用例的,這種方法往往不能生成足夠的測試用例來覆蓋程序的所有可能的執(zhí)行路徑,從而導(dǎo)致程序中的一些錯誤無法被檢測出來。
*程序的復(fù)雜性越來越高。隨著軟件規(guī)模的不斷擴大和復(fù)雜性的不斷增加,傳統(tǒng)靜態(tài)單元測試用例生成方法已經(jīng)無法滿足程序測試的需求。
*測試用例生成技術(shù)的發(fā)展。近年來,測試用例生成技術(shù)取得了很大的進展,這為動態(tài)單元測試用例生成技術(shù)的產(chǎn)生提供了技術(shù)基礎(chǔ)。
動態(tài)單元測試用例生成技術(shù)可以克服傳統(tǒng)靜態(tài)單元測試用例生成方法的局限性,并生成更有效的測試用例。動態(tài)單元測試用例生成技術(shù)主要有以下幾種:
*基于符號執(zhí)行的動態(tài)單元測試用例生成技術(shù)?;诜枅?zhí)行的動態(tài)單元測試用例生成技術(shù)通過將程序的輸入變量符號化,然后使用符號執(zhí)行技術(shù)來執(zhí)行程序,從而生成新的測試用例。
*基于隨機測試的動態(tài)單元測試用例生成技術(shù)?;陔S機測試的動態(tài)單元測試用例生成技術(shù)通過隨機生成程序的輸入數(shù)據(jù)來生成新的測試用例。
*基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù)?;跈C器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù)通過使用機器學(xué)習(xí)技術(shù)來學(xué)習(xí)程序的執(zhí)行路徑,然后根據(jù)學(xué)習(xí)到的知識生成新的測試用例。
動態(tài)單元測試用例生成意義
動態(tài)單元測試用例生成技術(shù)具有以下意義:
*提高測試用例的有效性。動態(tài)單元測試用例生成技術(shù)可以自動生成新的測試用例,這些測試用例可以覆蓋程序的所有可能執(zhí)行路徑,從而提高測試用例的有效性。
*減少測試用例生成的工作量。動態(tài)單元測試用例生成技術(shù)可以自動生成測試用例,從而減少測試人員生成測試用例的工作量。
*提高程序的質(zhì)量。動態(tài)單元測試用例生成技術(shù)可以幫助檢測出程序中的錯誤,從而提高程序的質(zhì)量。
動態(tài)單元測試用例生成技術(shù)是一種新的測試用例生成技術(shù),它具有廣闊的應(yīng)用前景。動態(tài)單元測試用例生成技術(shù)可以應(yīng)用于各種軟件的測試,包括嵌入式軟件、桌面軟件、移動軟件等。動態(tài)單元測試用例生成技術(shù)還可以應(yīng)用于各種測試階段,包括單元測試、集成測試、系統(tǒng)測試等。第二部分動態(tài)單元測試用例生成技術(shù)類型關(guān)鍵詞關(guān)鍵要點【基于搜索的單元測試用例生成】:
*動態(tài)單元測試用例生成技術(shù)類型
1.基于搜索的單元測試用例生成技術(shù)通過搜索程序的狀態(tài)空間來生成測試用例,它使用各種搜索算法來發(fā)現(xiàn)程序中的錯誤。
2.基于搜索的單元測試用例生成技術(shù)具有很強的自動化程度,可以生成大量的測試用例,并且可以有效地檢測出程序中的錯誤。
3.基于搜索的單元測試用例生成技術(shù)可以用于測試各種類型的程序,包括順序程序、并行程序和分布式程序。
【基于符號執(zhí)行的單元測試用例生成】:
*動態(tài)單元測試用例生成技術(shù)類型
動態(tài)單元測試用例生成技術(shù)類型
#1.基于路徑的動態(tài)單元測試用例生成技術(shù)
基于路徑的動態(tài)單元測試用例生成技術(shù)是一種常見的動態(tài)單元測試用例生成技術(shù),它通過覆蓋程序的所有可執(zhí)行路徑來生成測試用例。這種技術(shù)通常使用路徑覆蓋率來衡量測試用例的覆蓋程度,路徑覆蓋率越高,測試用例的質(zhì)量就越好。
基于路徑的動態(tài)單元測試用例生成技術(shù)主要有以下幾種:
*符號執(zhí)行:符號執(zhí)行是一種基于路徑的動態(tài)單元測試用例生成技術(shù),它將程序的源代碼作為輸入,通過符號化輸入變量來生成測試用例。符號執(zhí)行可以覆蓋程序的所有可執(zhí)行路徑,但它的缺點是計算量大,效率低。
*路徑跟蹤:路徑跟蹤是一種基于路徑的動態(tài)單元測試用例生成技術(shù),它通過在程序執(zhí)行過程中跟蹤程序的執(zhí)行路徑來生成測試用例。路徑跟蹤可以覆蓋程序的所有可執(zhí)行路徑,但它的缺點是需要修改程序的源代碼,并且可能會導(dǎo)致程序執(zhí)行效率降低。
*動態(tài)符號執(zhí)行:動態(tài)符號執(zhí)行是一種基于路徑的動態(tài)單元測試用例生成技術(shù),它結(jié)合了符號執(zhí)行和路徑跟蹤的技術(shù)優(yōu)點,通過在程序執(zhí)行過程中符號化輸入變量和跟蹤程序的執(zhí)行路徑來生成測試用例。動態(tài)符號執(zhí)行可以覆蓋程序的所有可執(zhí)行路徑,并且不需要修改程序的源代碼,但它的缺點是計算量大,效率低。
#2.基于隨機的動態(tài)單元測試用例生成技術(shù)
基于隨機的動態(tài)單元測試用例生成技術(shù)是一種常用的動態(tài)單元測試用例生成技術(shù),它通過隨機生成輸入數(shù)據(jù)來生成測試用例。這種技術(shù)可以覆蓋程序的大部分可執(zhí)行路徑,但它不能保證覆蓋程序的所有可執(zhí)行路徑。
基于隨機的動態(tài)單元測試用例生成技術(shù)主要有以下幾種:
*隨機測試:隨機測試是一種基于隨機的動態(tài)單元測試用例生成技術(shù),它通過隨機生成輸入數(shù)據(jù)來生成測試用例。隨機測試可以覆蓋程序的大部分可執(zhí)行路徑,但它不能保證覆蓋程序的所有可執(zhí)行路徑。
*模糊測試:模糊測試是一種基于隨機的動態(tài)單元測試用例生成技術(shù),它通過生成非法或意外的輸入數(shù)據(jù)來生成測試用例。模糊測試可以覆蓋程序的大部分可執(zhí)行路徑,并且可以發(fā)現(xiàn)一些傳統(tǒng)的測試方法難以發(fā)現(xiàn)的錯誤。
*生成式對抗網(wǎng)絡(luò)(GAN):生成式對抗網(wǎng)絡(luò)是一種基于隨機的動態(tài)單元測試用例生成技術(shù),它通過使用兩個神經(jīng)網(wǎng)絡(luò)來生成測試用例。一個神經(jīng)網(wǎng)絡(luò)生成輸入數(shù)據(jù),另一個神經(jīng)網(wǎng)絡(luò)判斷輸入數(shù)據(jù)是否有效。GAN可以生成高質(zhì)量的測試用例,并且可以覆蓋程序的大部分可執(zhí)行路徑。
#3.基于搜索的動態(tài)單元測試用例生成技術(shù)
基于搜索的動態(tài)單元測試用例生成技術(shù)是一種常用的動態(tài)單元測試用例生成技術(shù),它通過使用搜索算法來生成測試用例。這種技術(shù)可以覆蓋程序的所有可執(zhí)行路徑,但它的缺點是計算量大,效率低。
基于搜索的動態(tài)單元測試用例生成技術(shù)主要有以下幾種:
*深度優(yōu)先搜索:深度優(yōu)先搜索是一種基于搜索的動態(tài)單元測試用例生成技術(shù),它通過深度優(yōu)先的策略來生成測試用例。深度優(yōu)先搜索可以覆蓋程序的所有可執(zhí)行路徑,但它的缺點是計算量大,效率低。
*廣度優(yōu)先搜索:廣度優(yōu)先搜索是一種基于搜索的動態(tài)單元測試用例生成技術(shù),它通過廣度優(yōu)先的策略來生成測試用例。廣度優(yōu)先搜索可以覆蓋程序的大部分可執(zhí)行路徑,但它的缺點是計算量大,效率低。
*啟發(fā)式搜索:啟發(fā)式搜索是一種基于搜索的動態(tài)單元測試用例生成技術(shù),它通過使用啟發(fā)式函數(shù)來引導(dǎo)搜索過程。啟發(fā)式搜索可以覆蓋程序的大部分可執(zhí)行路徑,并且可以減少計算量。
#4.基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù)
基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù)是一種新興的動態(tài)單元測試用例生成技術(shù),它通過使用機器學(xué)習(xí)算法來生成測試用例。這種技術(shù)可以覆蓋程序的大部分可執(zhí)行路徑,并且可以發(fā)現(xiàn)一些傳統(tǒng)的測試方法難以發(fā)現(xiàn)的錯誤。
基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù)主要有以下幾種:
*決策樹:決策樹是一種基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù),它通過使用決策樹算法來生成測試用例。決策樹可以覆蓋程序的大部分可執(zhí)行路徑,并且可以發(fā)現(xiàn)一些傳統(tǒng)的測試方法難以發(fā)現(xiàn)的錯誤。
*支持向量機:支持向量機是一種基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù),它通過使用支持向量機算法來生成測試用例。支持向量機可以覆蓋程序的大部分可執(zhí)行路徑,并且可以發(fā)現(xiàn)一些傳統(tǒng)的測試方法難以發(fā)現(xiàn)的錯誤。
*深度神經(jīng)網(wǎng)絡(luò):深度神經(jīng)網(wǎng)絡(luò)是一種基于機器學(xué)習(xí)的動態(tài)單元測試用例生成技術(shù),它通過使用深度神經(jīng)網(wǎng)絡(luò)算法來生成測試用例。深度神經(jīng)網(wǎng)絡(luò)可以覆蓋程序的大部分可執(zhí)行路徑,并且可以發(fā)現(xiàn)一些傳統(tǒng)的測試方法難以發(fā)現(xiàn)的錯誤。第三部分基于白盒的動態(tài)用例生成技術(shù)關(guān)鍵詞關(guān)鍵要點基于程序控制流圖的動態(tài)用例生成技術(shù)
1.程序控制流圖(CFGs)是一種靜態(tài)分析技術(shù),它可以構(gòu)造出程序的控制流圖,其中包括節(jié)點(基本塊)和邊(控制流)。
2.CFGs可以用來設(shè)計測試路徑,這些路徑覆蓋了程序的所有執(zhí)行路徑,然后根據(jù)測試路徑生成測試用例。
3.基于控制流圖的動態(tài)用例生成技術(shù),可以提高測試用例的覆蓋率和有效性,并可以降低測試用例生成的時間和成本。
基于數(shù)據(jù)流分析的動態(tài)用例生成技術(shù)
1.數(shù)據(jù)流分析是一種靜態(tài)分析技術(shù),它可以分析程序中數(shù)據(jù)流向,確定數(shù)據(jù)是如何在程序中流動。
2.數(shù)據(jù)流分析可以用來識別程序中的錯誤,如死代碼、未使用的變量、指針錯誤等。
3.基于數(shù)據(jù)流分析的動態(tài)用例生成技術(shù),可以通過識別程序中的錯誤路徑,來生成有效的測試用例,從而提高測試用例的覆蓋率和有效性。
基于符號執(zhí)行的動態(tài)用例生成技術(shù)
1.符號執(zhí)行是一種動態(tài)分析技術(shù),它可以將程序中的變量視為符號,并使用符號來執(zhí)行程序。
2.符號執(zhí)行可以生成程序的所有執(zhí)行路徑,并記錄每個路徑上變量的值。
3.基于符號執(zhí)行的動態(tài)用例生成技術(shù),可以通過生成程序的所有執(zhí)行路徑,來生成有效的測試用例,從而提高測試用例的覆蓋率和有效性。
基于污點分析的動態(tài)用例生成技術(shù)
1.污點分析是一種動態(tài)分析技術(shù),它可以跟蹤程序中數(shù)據(jù)流向,并識別程序中的安全漏洞。
2.污點分析可以用來生成攻擊測試用例,這些測試用例可以用來攻擊程序中的安全漏洞。
3.基于污點分析的動態(tài)用例生成技術(shù),可以提高測試用例的有效性,并可以降低測試用例生成的時間和成本。
基于機器學(xué)習(xí)的動態(tài)用例生成技術(shù)
1.機器學(xué)習(xí)是一種人工智能技術(shù),它可以自動學(xué)習(xí)和提高性能。
2.機器學(xué)習(xí)可以用來生成測試用例,這些測試用例可以覆蓋程序的執(zhí)行路徑,并能夠檢測出程序中的錯誤。
3.基于機器學(xué)習(xí)的動態(tài)用例生成技術(shù),可以提高測試用例的覆蓋率和有效性,并可以降低測試用例生成的時間和成本。
基于神經(jīng)網(wǎng)絡(luò)的動態(tài)用例生成技術(shù)
1.神經(jīng)網(wǎng)絡(luò)是一種機器學(xué)習(xí)技術(shù),它可以模擬人腦的神經(jīng)網(wǎng)絡(luò)。
2.神經(jīng)網(wǎng)絡(luò)可以用來生成測試用例,這些測試用例可以覆蓋程序的執(zhí)行路徑,并能夠檢測出程序中的錯誤。
3.基于神經(jīng)網(wǎng)絡(luò)的動態(tài)用例生成技術(shù),可以提高測試用例的覆蓋率和有效性,并可以降低測試用例生成的時間和成本?;诎缀械膭討B(tài)用例生成技術(shù)
#1.白盒測試技術(shù)概述
白盒測試又稱結(jié)構(gòu)測試、邏輯驅(qū)動測試或玻璃箱測試,它以程序內(nèi)部的邏輯結(jié)構(gòu)作為依據(jù)設(shè)計測試用例,通過對程序內(nèi)部的邏輯路徑進行分析,測試程序中的分支、語句、路徑等是否都能正常執(zhí)行。這種方法的優(yōu)點是可以檢查出程序中邏輯上的一些錯誤,如錯誤的分支跳轉(zhuǎn)、邊界條件檢測不全等,但缺點是測試時要花費較大的時間和精力,而且不能保證測試的完全性和充分性。
#2.基于白盒的動態(tài)用例生成技術(shù)概述
基于白盒的動態(tài)用例生成技術(shù)是指在程序執(zhí)行的過程中,根據(jù)程序的執(zhí)行情況動態(tài)地生成測試用例的技術(shù),通常分為兩類,即靜態(tài)分析和動態(tài)分析。
#3.靜態(tài)分析
靜態(tài)分析是指在程序執(zhí)行前,通過分析程序的源代碼或中間代碼來生成測試用例的技術(shù)。它通常包括以下步驟:
1.程序分析:對程序的源代碼或中間代碼進行分析,提取程序中的邏輯結(jié)構(gòu)信息,如控制流圖、數(shù)據(jù)流圖、調(diào)用圖等。
2.路徑選擇:根據(jù)程序的邏輯結(jié)構(gòu)信息,選擇要測試的路徑。
3.測試用例生成:根據(jù)選定的路徑,生成相應(yīng)的測試用例。
#4.動態(tài)分析
動態(tài)分析是指在程序執(zhí)行過程中,通過對程序的執(zhí)行情況進行監(jiān)控和分析來生成測試用例的技術(shù)。它通常包括以下步驟:
1.程序執(zhí)行:運行被測程序,并監(jiān)控程序的執(zhí)行情況。
2.數(shù)據(jù)收集:收集程序執(zhí)行過程中產(chǎn)生的數(shù)據(jù),如程序中的變量值、函數(shù)調(diào)用情況等。
3.測試用例生成:根據(jù)收集到的數(shù)據(jù),生成相應(yīng)的測試用例。
#5.基于白盒的動態(tài)用例生成技術(shù)的優(yōu)點
基于白盒的動態(tài)用例生成技術(shù)具有以下優(yōu)點:
1.有效性:由于這種方法是根據(jù)程序的執(zhí)行情況生成測試用例的,所以可以有效地檢測出程序中的錯誤,提高測試的有效性。
2.效率:這種方法可以自動生成測試用例,不需要人工干預(yù),因此可以提高測試的效率。
3.可擴展性:這種方法可以應(yīng)用于各種類型的程序,具有較好的可擴展性。
#6.基于白盒的動態(tài)用例生成技術(shù)的缺點
基于白盒的動態(tài)用例生成技術(shù)也存在一些缺點,如:
1.復(fù)雜性:這種方法的實現(xiàn)比較復(fù)雜,需要較高的技術(shù)水平。
2.成本:這種方法的實現(xiàn)成本較高,需要投入大量的人力物力。
3.適用性:這種方法只適用于有源代碼或中間代碼的程序,對于沒有源代碼或中間代碼的程序,這種方法就無法應(yīng)用。
#7.基于白盒的動態(tài)用例生成技術(shù)的應(yīng)用實例
基于白盒的動態(tài)用例生成技術(shù)已經(jīng)廣泛應(yīng)用于軟件測試中,以下是一些應(yīng)用實例:
1.谷歌公司使用基于白盒的動態(tài)用例生成技術(shù)來測試其內(nèi)部的軟件系統(tǒng),并取得了良好的效果。
2.微軟公司使用基于白盒的動態(tài)用例生成技術(shù)來測試其Windows操作系統(tǒng),并提高了Windows操作系統(tǒng)的穩(wěn)定性和可靠性。
3.IBM公司使用基于白盒的動態(tài)用例生成技術(shù)來測試其大型機軟件系統(tǒng),并降低了軟件系統(tǒng)中的錯誤數(shù)量。第四部分基于覆蓋率的動態(tài)用例生成技術(shù)關(guān)鍵詞關(guān)鍵要點覆蓋率度量標(biāo)準(zhǔn)
1.覆蓋率度量標(biāo)準(zhǔn)是對代碼被測試的程度的量化,它是基于覆蓋率的動態(tài)用例生成技術(shù)的基礎(chǔ)。主要包括語句覆蓋率、分支覆蓋率、路徑覆蓋率、循環(huán)覆蓋率等。
2.選擇合適的覆蓋率度量標(biāo)準(zhǔn)對于動態(tài)用例生成至關(guān)重要,它直接影響著生成用例的質(zhì)量和效率。
3.語句覆蓋率是最常用的覆蓋率度量標(biāo)準(zhǔn),它衡量的是程序中每個語句被執(zhí)行的次數(shù)。分支覆蓋率衡量的是程序中每個分支被執(zhí)行的次數(shù),路徑覆蓋率衡量的是程序中每條路徑被執(zhí)行的次數(shù),循環(huán)覆蓋率衡量的是程序中每個循環(huán)被執(zhí)行的次數(shù)。
動態(tài)用例生成算法
1.動態(tài)用例生成算法是基于覆蓋率的動態(tài)用例生成技術(shù)的核心,它通過分析程序的執(zhí)行情況來生成新的測試用例,以提高覆蓋率。動態(tài)用例生成算法有很多種,包括隨機測試、窮舉測試、符號執(zhí)行、基于蟻群算法的測試等。
2.隨機測試是一種簡單的動態(tài)用例生成算法,它通過隨機生成輸入來生成測試用例。窮舉測試是一種全面的動態(tài)用例生成算法,它通過枚舉所有可能的輸入來生成測試用例。
3.符號執(zhí)行是一種路徑覆蓋的動態(tài)用例生成算法,它通過符號化地執(zhí)行程序來生成測試用例。基于蟻群算法的測試是一種啟發(fā)式動態(tài)用例生成算法,它通過模擬蟻群的行為來生成測試用例。
動態(tài)用例生成工具
1.動態(tài)用例生成工具是基于覆蓋率的動態(tài)用例生成技術(shù)的實現(xiàn),它可以幫助測試人員自動生成測試用例。動態(tài)用例生成工具有很多種,包括JUnit、TestNG、NUnit、Selenium等。
2.JUnit是一個基于Java的動態(tài)用例生成工具,它可以幫助測試人員生成單元測試用例。TestNG是一個基于Java的動態(tài)用例生成工具,它可以幫助測試人員生成單元測試用例、功能測試用例和集成測試用例。
3.NUnit是一個基于.NET的動態(tài)用例生成工具,它可以幫助測試人員生成單元測試用例、功能測試用例和集成測試用例。Selenium是一個基于Web的動態(tài)用例生成工具,它可以幫助測試人員生成Web應(yīng)用程序的測試用例。
動態(tài)用例生成技術(shù)的研究現(xiàn)狀
1.動態(tài)用例生成技術(shù)是一個活躍的研究領(lǐng)域,目前有很多研究人員正在致力于該領(lǐng)域的研究。
2.目前,動態(tài)用例生成技術(shù)的研究主要集中在以下幾個方向:
-如何提高動態(tài)用例生成算法的效率。
-如何提高動態(tài)用例生成算法的準(zhǔn)確性。
-如何在不同的場景下使用動態(tài)用例生成技術(shù)。
3.目前,動態(tài)用例生成技術(shù)已經(jīng)取得了很大的進展,在實踐中得到了廣泛的應(yīng)用。
動態(tài)用例生成技術(shù)的應(yīng)用前景
1.動態(tài)用例生成技術(shù)有著廣闊的應(yīng)用前景,它可以幫助測試人員提高測試效率和測試質(zhì)量。
2.動態(tài)用例生成技術(shù)可以應(yīng)用于各種軟件測試場景,包括單元測試、功能測試、集成測試和系統(tǒng)測試。
3.動態(tài)用例生成技術(shù)可以與其他測試技術(shù)相結(jié)合,以提高測試的整體效果。
動態(tài)用例生成技術(shù)的挑戰(zhàn)
1.動態(tài)用例生成技術(shù)也面臨著一些挑戰(zhàn),包括:
-如何提高動態(tài)用例生成算法的效率和準(zhǔn)確性。
-如何在不同的場景下使用動態(tài)用例生成技術(shù)。
-如何與其他測試技術(shù)相結(jié)合以提高測試的整體效果。
2.這些挑戰(zhàn)是動態(tài)用例生成技術(shù)未來發(fā)展的方向?;诟采w率的動態(tài)用例生成技術(shù)
#概述
基于覆蓋率的動態(tài)用例生成技術(shù)是一種通過對程序執(zhí)行過程中的覆蓋情況進行分析,動態(tài)生成測試用例的技術(shù)。這種技術(shù)通過對程序執(zhí)行過程中的語句、分支、路徑或其他覆蓋目標(biāo)進行監(jiān)控,當(dāng)覆蓋目標(biāo)被覆蓋時,則生成一個相應(yīng)的測試用例。基于覆蓋率的動態(tài)用例生成技術(shù)可以有效地提高測試用例的覆蓋范圍,進而提高軟件的質(zhì)量。
#技術(shù)原理
基于覆蓋率的動態(tài)用例生成技術(shù)主要包括以下幾個步驟:
*測試目標(biāo)選擇:首先,需要確定測試目標(biāo)。測試目標(biāo)可以是語句、分支、路徑或其他覆蓋目標(biāo)。
*程序執(zhí)行監(jiān)控:然后,對程序執(zhí)行過程進行監(jiān)控。監(jiān)控工具可以記錄程序執(zhí)行過程中被覆蓋的測試目標(biāo)。
*測試用例生成:當(dāng)測試目標(biāo)被覆蓋時,則生成一個相應(yīng)的測試用例。測試用例可以是輸入數(shù)據(jù)、調(diào)用參數(shù)、環(huán)境變量等。
*測試執(zhí)行:最后,將生成的測試用例執(zhí)行一遍,以驗證軟件的正確性。
#優(yōu)點
基于覆蓋率的動態(tài)用例生成技術(shù)具有以下優(yōu)點:
*提高測試用例覆蓋范圍:這種技術(shù)可以有效地提高測試用例的覆蓋范圍,進而提高軟件的質(zhì)量。
*減少測試用例生成時間:這種技術(shù)可以自動生成測試用例,從而減少了測試用例生成時間。
*提高測試用例質(zhì)量:這種技術(shù)可以生成高質(zhì)量的測試用例,從而提高軟件的質(zhì)量。
#缺點
基于覆蓋率的動態(tài)用例生成技術(shù)也存在以下缺點:
*可能生成冗余的測試用例:這種技術(shù)可能會生成冗余的測試用例,從而降低測試效率。
*可能生成不可執(zhí)行的測試用例:這種技術(shù)可能會生成不可執(zhí)行的測試用例,從而降低測試效率。
*可能生成不具有代表性的測試用例:這種技術(shù)可能會生成不具有代表性的測試用例,從而降低測試效率。
#應(yīng)用
基于覆蓋率的動態(tài)用例生成技術(shù)已被廣泛應(yīng)用于軟件測試領(lǐng)域。這種技術(shù)可以用于以下場景:
*軟件測試:這種技術(shù)可以用于生成軟件測試用例,以驗證軟件的正確性。
*軟件維護:這種技術(shù)可以用于生成軟件維護測試用例,以驗證軟件在維護后的正確性。
*軟件質(zhì)量保證:這種技術(shù)可以用于生成軟件質(zhì)量保證測試用例,以驗證軟件的質(zhì)量。
#發(fā)展趨勢
基于覆蓋率的動態(tài)用例生成技術(shù)仍在不斷發(fā)展中。目前,這種技術(shù)的研究熱點主要集中在以下幾個方面:
*提高測試用例覆蓋范圍:研究人員正在研究如何提高測試用例的覆蓋范圍,以提高軟件的質(zhì)量。
*減少測試用例生成時間:研究人員正在研究如何減少測試用例生成時間,以提高測試效率。
*提高測試用例質(zhì)量:研究人員正在研究如何提高測試用例的質(zhì)量,以提高軟件的質(zhì)量。
*生成具有代表性的測試用例:研究人員正在研究如何生成具有代表性的測試用例,以提高測試效率。
基于覆蓋率的動態(tài)用例生成技術(shù)是一種有效的軟件測試技術(shù)。這種技術(shù)可以有效地提高測試用例的覆蓋范圍,進而提高軟件的質(zhì)量。隨著這種技術(shù)的發(fā)展,其應(yīng)用領(lǐng)域?qū)⒃絹碓綇V泛。第五部分基于模型的動態(tài)用例生成技術(shù)關(guān)鍵詞關(guān)鍵要點基于模型的動態(tài)用例生成技術(shù)
1.基于模型的動態(tài)用例生成技術(shù)是一種自動生成測試用例的技術(shù),它使用模型來描述系統(tǒng)的行為,然后根據(jù)模型自動生成測試用例。
2.基于模型的動態(tài)用例生成技術(shù)可以提高測試用例的覆蓋率,可以幫助測試人員更快地發(fā)現(xiàn)系統(tǒng)中的缺陷。
3.基于模型的動態(tài)用例生成技術(shù)可以減少測試人員的工作量,可以讓他們將更多的精力集中在測試用例的設(shè)計和執(zhí)行上。
基于模型的動態(tài)用例生成技術(shù)的分類
1.基于模型的動態(tài)用例生成技術(shù)可以分為兩類:搜索方法和約束求解方法。
2.搜索方法通過搜索模型的所有可能的路徑來生成測試用例,而約束求解方法通過求解模型的約束來生成測試用例。
3.搜索方法比較簡單,但效率不高,而約束求解方法比較復(fù)雜,但效率較高。
基于模型的動態(tài)用例生成技術(shù)的應(yīng)用
1.基于模型的動態(tài)用例生成技術(shù)可以應(yīng)用于各種類型的系統(tǒng),包括軟件系統(tǒng)、硬件系統(tǒng)和嵌入式系統(tǒng)。
2.基于模型的動態(tài)用例生成技術(shù)可以用于各種類型的測試,包括功能測試、性能測試和安全測試。
3.基于模型的動態(tài)用例生成技術(shù)可以幫助測試人員更快地發(fā)現(xiàn)系統(tǒng)中的缺陷,提高測試用例的覆蓋率,減少測試人員的工作量。
基于模型的動態(tài)用例生成技術(shù)的研究熱點
1.基于模型的動態(tài)用例生成技術(shù)的研究熱點包括:如何提高生成測試用例的效率、如何提高生成測試用例的覆蓋率、如何生成更有效的測試用例。
2.基于模型的動態(tài)用例生成技術(shù)的研究熱點也包括:如何將基于模型的動態(tài)用例生成技術(shù)應(yīng)用于新的領(lǐng)域,如云計算、物聯(lián)網(wǎng)和人工智能。
3.基于模型的動態(tài)用例生成技術(shù)的研究熱點還包括:如何將基于模型的動態(tài)用例生成技術(shù)與其他測試技術(shù)相結(jié)合,以提高測試的效率和有效性。
基于模型的動態(tài)用例生成技術(shù)的發(fā)展趨勢
1.基于模型的動態(tài)用例生成技術(shù)的發(fā)展趨勢包括:生成測試用例的效率越來越高、生成測試用例的覆蓋率越來越高、生成測試用例的有效性越來越強。
2.基于模型的動態(tài)用例生成技術(shù)的發(fā)展趨勢還包括:基于模型的動態(tài)用例生成技術(shù)將被應(yīng)用于越來越多的領(lǐng)域,如云計算、物聯(lián)網(wǎng)和人工智能。
3.基于模型的動態(tài)用例生成技術(shù)的發(fā)展趨勢還包括:基于模型的動態(tài)用例生成技術(shù)將與其他測試技術(shù)相結(jié)合,以提高測試的效率和有效性。
基于模型的動態(tài)用例生成技術(shù)的挑戰(zhàn)
1.基于模型的動態(tài)用例生成技術(shù)面臨的挑戰(zhàn)包括:如何提高生成測試用例的效率、如何提高生成測試用例的覆蓋率、如何生成更有效的測試用例。
2.基于模型的動態(tài)用例生成技術(shù)面臨的挑戰(zhàn)還包括:如何將基于模型的動態(tài)用例生成技術(shù)應(yīng)用于新的領(lǐng)域,如云計算、物聯(lián)網(wǎng)和人工智能。
3.基于模型的動態(tài)用例生成技術(shù)面臨的挑戰(zhàn)還包括:如何將基于模型的動態(tài)用例生成技術(shù)與其他測試技術(shù)相結(jié)合,以提高測試的效率和有效性。#基于模型的動態(tài)用例生成技術(shù)
概述
基于模型的動態(tài)用例生成技術(shù)是一種通過建立模型來描述系統(tǒng)行為,并根據(jù)模型自動生成測試用例的技術(shù)。這種技術(shù)可以有效地提高測試用例的生成效率和質(zhì)量,并降低測試成本。
基本原理
基于模型的動態(tài)用例生成技術(shù)的基本原理是:首先,建立一個描述系統(tǒng)行為的模型。這個模型可以是形式化的,也可以是非形式化的。例如,可以采用狀態(tài)機、Petri網(wǎng)、或統(tǒng)一建模語言(UML)等來描述系統(tǒng)行為。
其次,根據(jù)模型自動生成測試用例。這個過程可以分為兩個步驟:
1.測試目標(biāo)識別:識別需要測試的系統(tǒng)功能或行為。
2.測試路徑生成:根據(jù)測試目標(biāo)和模型,生成測試路徑。測試路徑是一組有序的測試步驟,這些步驟可以覆蓋系統(tǒng)的所有功能或行為。
最后,執(zhí)行測試用例并檢查測試結(jié)果。如果測試結(jié)果與預(yù)期結(jié)果不一致,則表明系統(tǒng)存在缺陷。
優(yōu)點
基于模型的動態(tài)用例生成技術(shù)具有以下優(yōu)點:
*提高測試效率:這種技術(shù)可以自動生成測試用例,從而大大提高測試效率。
*提高測試質(zhì)量:這種技術(shù)可以生成覆蓋系統(tǒng)所有功能或行為的測試用例,從而提高測試質(zhì)量。
*降低測試成本:這種技術(shù)可以自動生成測試用例,從而降低測試成本。
缺點
基于模型的動態(tài)用例生成技術(shù)也存在一些缺點:
*需要對系統(tǒng)有深入的了解:這種技術(shù)需要對系統(tǒng)有深入的了解,才能建立準(zhǔn)確的模型。
*模型的復(fù)雜度可能會很高:對于復(fù)雜系統(tǒng),模型的復(fù)雜度可能會很高,這可能會導(dǎo)致測試用例生成過程非常耗時。
*模型可能會不準(zhǔn)確:如果模型不準(zhǔn)確,那么生成的測試用例也可能不準(zhǔn)確,從而導(dǎo)致測試結(jié)果不準(zhǔn)確。
應(yīng)用
基于模型的動態(tài)用例生成技術(shù)已被廣泛應(yīng)用于各種軟件測試領(lǐng)域,包括:
*功能測試:這種技術(shù)可以用來測試系統(tǒng)的功能是否符合要求。
*性能測試:這種技術(shù)可以用來測試系統(tǒng)的性能是否滿足要求。
*安全測試:這種技術(shù)可以用來測試系統(tǒng)的安全是否符合要求。
發(fā)展趨勢
基于模型的動態(tài)用例生成技術(shù)正在不斷發(fā)展,新的技術(shù)和方法不斷涌現(xiàn)。一些發(fā)展趨勢包括:
*模型驅(qū)動的測試(MDT):MDT是一種基于模型的測試方法,它將模型作為測試過程的核心,并使用模型來指導(dǎo)測試用例的生成、執(zhí)行和檢查。
*基于學(xué)習(xí)的用例生成技術(shù):這種技術(shù)利用機器學(xué)習(xí)算法來學(xué)習(xí)系統(tǒng)的行為,并根據(jù)學(xué)習(xí)到的知識自動生成測試用例。
*基于自然語言處理的用例生成技術(shù):這種技術(shù)利用自然語言處理技術(shù)來理解系統(tǒng)需求,并根據(jù)需求自動生成測試用例。
總結(jié)
基于模型的動態(tài)用例生成技術(shù)是一種先進的測試技術(shù),它可以有效地提高測試效率、質(zhì)量和降低測試成本。隨著技術(shù)的發(fā)展,這種技術(shù)將得到更廣泛的應(yīng)用。第六部分基于路徑的動態(tài)用例生成技術(shù)關(guān)鍵詞關(guān)鍵要點基于路徑的動態(tài)用例生成技術(shù)
1.基本原理:
-基于路徑的動態(tài)用例生成技術(shù)是一種用于生成測試用例的動態(tài)方法,它是通過分析程序的控制流圖(CFG)來生成路徑,然后使用這些路徑來生成測試用例。
2.優(yōu)點和缺點:
-優(yōu)點:可以生成覆蓋程序所有路徑的測試用例,可以檢測程序中的錯誤和缺陷。
-缺點:可能生成大量的測試用例,導(dǎo)致測試成本高昂。
3.應(yīng)用場景:
-基于路徑的動態(tài)用例生成技術(shù)可以用于各種類型的軟件測試,包括功能測試、性能測試、安全測試等。
基于路徑的動態(tài)用例生成技術(shù)的典型算法
1.深度優(yōu)先搜索(DFS)算法:
-是一種常用的基于路徑的動態(tài)用例生成算法,它通過深度搜索CFG中的路徑來生成測試用例。
2.廣度優(yōu)先搜索(BFS)算法:
-是一種另一種常用的基于路徑的動態(tài)用例生成算法,它通過廣度搜索CFG中的路徑來生成測試用例。
3.混合搜索算法:
-結(jié)合DFS和BFS算法的優(yōu)點,可以生成更有效的測試用例。#基于路徑的動態(tài)用例生成技術(shù)
概述
基于路徑的動態(tài)用例生成技術(shù)是一種動態(tài)測試技術(shù),它通過探索程序的執(zhí)行路徑來生成測試用例。該技術(shù)的主要思想是:首先,根據(jù)程序的控制流圖或數(shù)據(jù)流圖生成一條初始路徑;然后,沿著這條路徑執(zhí)行程序,并在執(zhí)行過程中收集有關(guān)程序狀態(tài)的信息;最后,根據(jù)這些信息生成一個新的路徑,并重復(fù)上述步驟,直到探索完所有可能的路徑。
基本原理
基于路徑的動態(tài)用例生成技術(shù)的基本原理如下:
1.首先,根據(jù)程序的控制流圖或數(shù)據(jù)流圖生成一條初始路徑。
2.然后,沿著這條路徑執(zhí)行程序,并在執(zhí)行過程中收集有關(guān)程序狀態(tài)的信息,這些信息包括:
*程序中每個語句的執(zhí)行次數(shù)
*程序中每個分支的執(zhí)行次數(shù)
*程序中每個變量的值
*程序中每個函數(shù)的調(diào)用次數(shù)
3.最后,根據(jù)這些信息生成一個新的路徑,并重復(fù)上述步驟,直到探索完所有可能的路徑。
優(yōu)點
基于路徑的動態(tài)用例生成技術(shù)具有以下優(yōu)點:
*可以生成覆蓋程序所有執(zhí)行路徑的測試用例,從而提高測試的覆蓋率。
*可以生成針對程序特定輸入的測試用例,從而提高測試的有效性。
*可以生成具有較高故障檢測能力的測試用例,從而提高測試的效率。
缺點
基于路徑的動態(tài)用例生成技術(shù)也存在以下缺點:
*生成測試用例的時間開銷較大,尤其對于大型程序來說。
*生成測試用例的內(nèi)存開銷較大,尤其對于復(fù)雜程序來說。
*生成測試用例的代碼量較大,需要對程序進行大量的修改。
應(yīng)用
基于路徑的動態(tài)用例生成技術(shù)可以應(yīng)用于以下領(lǐng)域:
*軟件測試
*故障診斷
*程序驗證
*程序優(yōu)化
發(fā)展趨勢
基于路徑的動態(tài)用例生成技術(shù)正在朝著以下方向發(fā)展:
*提高生成測試用例的速度和效率
*減少生成測試用例的內(nèi)存開銷
*簡化生成測試用例的代碼量
*將基于路徑的動態(tài)用例生成技術(shù)與其他測試技術(shù)相結(jié)合,以生成更加有效的測試用例
參考文獻
*[1]Myers,G.J.(2013).Theartofsoftwaretesting.JohnWiley&Sons.
*[2]Beizer,B.(1990).Softwaretestingtechniques.VanNostrandReinhold.
*[3]Ammann,P.,&Offutt,J.(2008).Introductiontosoftwaretesting.CambridgeUniversityPress.第七部分動態(tài)單元測試用例生成工具關(guān)鍵詞關(guān)鍵要點基于搜索的動態(tài)單元測試用例生成工具
1.基于搜索的動態(tài)單元測試用例生成工具利用搜索算法在程序中查找潛在的錯誤,并生成測試用例來驗證這些錯誤。
2.這些工具通常使用符號執(zhí)行或其他形式的靜態(tài)分析來確定程序中可能發(fā)生錯誤的位置。
3.然后,工具使用搜索算法來生成測試用例,這些測試用例可以觸發(fā)這些錯誤。
基于模型的動態(tài)單元測試用例生成工具
1.基于模型的動態(tài)單元測試用例生成工具利用程序的模型來生成測試用例。
2.這些工具通常使用形式化方法或其他形式的靜態(tài)分析來構(gòu)建程序模型。
3.然后,工具使用搜索算法或其他技術(shù)來生成測試用例,這些測試用例可以驗證程序模型。
基于遺傳算法的動態(tài)單元測試用例生成工具
1.基于遺傳算法的動態(tài)單元測試用例生成工具利用遺傳算法來生成測試用例。
2.這些工具通常使用符號執(zhí)行或其他形式的靜態(tài)分析來確定程序中可能發(fā)生錯誤的位置。
3.然后,工具使用遺傳算法來生成測試用例,這些測試用例可以觸發(fā)這些錯誤。
基于機器學(xué)習(xí)的動態(tài)單元測試用例生成工具
1.基于機器學(xué)習(xí)的動態(tài)單元測試用例生成工具利用機器學(xué)習(xí)技術(shù)來生成測試用例。
2.這些工具通常使用歷史測試數(shù)據(jù)或其他形式的數(shù)據(jù)來訓(xùn)練機器學(xué)習(xí)模型。
3.然后,工具使用訓(xùn)練過的機器學(xué)習(xí)模型來生成測試用例,這些測試用例可以驗證程序的正確性。
基于符號執(zhí)行的動態(tài)單元測試用例生成工具
1.基于符號執(zhí)行的動態(tài)單元測試用例生成工具利用符號執(zhí)行技術(shù)來生成測試用例。
2.這些工具通常使用符號執(zhí)行引擎來分析程序,并生成符號化的執(zhí)行路徑。
3.然后,工具使用搜索算法或其他技術(shù)來生成測試用例,這些測試用例可以覆蓋這些符號化的執(zhí)行路徑。
基于混合方法的動態(tài)單元測試用例生成工具
1.基于混合方法的動態(tài)單元測試用例生成工具利用多種技術(shù)來生成測試用例。
2.這些工具通常使用符號執(zhí)行、搜索算法、機器學(xué)習(xí)或其他技術(shù)來生成測試用例。
3.然后,工具將這些技術(shù)結(jié)合起來,以生成更加高效和有效的測試用例。動態(tài)單元測試用例生成工具
#1.簡介
動態(tài)單元測試用例生成工具是一種能夠自動生成單元測試用例的工具。它通過分析源代碼、執(zhí)行程序、跟蹤程序的執(zhí)行過程等方式,生成針對程序的單元測試用例。動態(tài)單元測試用例生成工具可以幫助開發(fā)人員快速生成單元測試用例,提高測試效率和質(zhì)量。
#2.動態(tài)單元測試用例生成工具的特點
動態(tài)單元測試用例生成工具具有以下特點:
*自動化:動態(tài)單元測試用例生成工具能夠自動生成單元測試用例,無需開發(fā)人員手動編寫。
*高效性:動態(tài)單元測試用例生成工具可以快速生成單元測試用例,提高測試效率。
*準(zhǔn)確性:動態(tài)單元測試用例生成工具能夠生成準(zhǔn)確的單元測試用例,提高測試質(zhì)量。
*可擴展性:動態(tài)單元測試用例生成工具可以隨著程序的變更而動態(tài)調(diào)整,生成新的單元測試用例。
#3.動態(tài)單元測試用例生成工具的實現(xiàn)方法
動態(tài)單元測試用例生成工具通常采用以下幾種實現(xiàn)方法:
*基于控制流圖的方法:該方法通過分析源代碼生成控制流圖,然后根據(jù)控制流圖生成單元測試用例。
*基于數(shù)據(jù)流分析的方法:該方法通過分析源代碼生成數(shù)據(jù)流圖,然后根據(jù)數(shù)據(jù)流圖生成單元測試用例。
*基于符號執(zhí)行的方法:該方法通過符號執(zhí)行程序,生成程序的執(zhí)行路徑,然后根據(jù)執(zhí)行路徑生成單元測試用例。
#4.動態(tài)單元測試用例生成工具的應(yīng)用
動態(tài)單元測試用例生成工具可以應(yīng)用于以下幾個方面:
*單元測試:動態(tài)單元測試用例生成工具可以幫助開發(fā)人員快速生成單元測試用例,提高單元測試的效率和質(zhì)量。
*回歸測試:動態(tài)單元測試用例生成工具可以幫助開發(fā)人員快速生成回歸測試用例,提高回歸測試的效率和質(zhì)量。
*性能測試:動態(tài)單元測試用例生成工具可以幫助開發(fā)人員生成性能測試用例,提高性能測試的效率和質(zhì)量。
#5.動態(tài)單元測試用例生成工具的優(yōu)缺點
動態(tài)單元測試用例生成工具具有以下優(yōu)點:
*自動化:動態(tài)單元測試用例生成工具能夠自動生成單元測試用例,無需開發(fā)人員手動編寫。
*高效性:動態(tài)單元測試用例生成工具可以快速生成單元測試用例,提高測試效率。
*準(zhǔn)確性:動態(tài)單元測試用例生成工具能夠生成準(zhǔn)確的單元測試用例,提高測試質(zhì)量。
*可擴展性:動態(tài)單元測試用例生成工具可以隨著程序的變更而動態(tài)調(diào)整,生成新的單元測試用例。
動態(tài)單元測試用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年食用包裝產(chǎn)品項目投資價值分析報告
- 2025至2030年水柱氧吧項目投資價值分析報告
- 一年級數(shù)學(xué)計算題專項練習(xí)1000題匯編
- 五年級數(shù)學(xué)(小數(shù)乘除法)計算題專項練習(xí)及答案
- 專利技術(shù)轉(zhuǎn)讓私人居間合同
- 專賣店裝修不可預(yù)見免責(zé)
- 美容院軟裝合同模板
- 2024年度海南省公共營養(yǎng)師之二級營養(yǎng)師典型題匯編及答案
- 醫(yī)療健康領(lǐng)域患者服務(wù)設(shè)計措施
- 隧道施工安全與健康管理措施
- 勞動合同續(xù)簽意見單
- 大學(xué)生國家安全教育意義
- 2024年保育員(初級)培訓(xùn)計劃和教學(xué)大綱-(目錄版)
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語文 Word版含答案
- 企業(yè)正確認(rèn)識和運用矩陣式管理
- 分布式光伏高處作業(yè)專項施工方案
- 陳閱增普通生物學(xué)全部課件
- 檢驗科主任就職演講稿范文
- 人防工程主體監(jiān)理質(zhì)量評估報告
- 20225GRedCap通信技術(shù)白皮書
- 燃?xì)庥邢薰究蛻舴?wù)規(guī)范制度
評論
0/150
提交評論