国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

軟件測試用例經(jīng)典方法 | 單元測試法案例

這篇具有很好參考價(jià)值的文章主要介紹了軟件測試用例經(jīng)典方法 | 單元測試法案例。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

單元測試又稱模塊測試,是對軟件設(shè)計(jì)的最小單元的功能、性能、接口和設(shè)計(jì)約束等的正確性進(jìn)行檢驗(yàn),檢查程序在語法、格式和邏輯上的錯(cuò)誤,并驗(yàn)證程序是否符合規(guī)范,以發(fā)現(xiàn)單元內(nèi)部可能存在的各種缺陷。

單元測試的對象是軟件設(shè)計(jì)的最小單位——模塊、函數(shù)或者類。在傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)語言(如C語言)中,單元測試的對象一般是函數(shù)或者過程。在面向?qū)ο笤O(shè)計(jì)語言(如Java、C#)中,單元測試的對象可以是類,也可以是類的成員函數(shù)/方法。由此可見,單元測試與程序設(shè)計(jì)和編碼密切關(guān)聯(lián),測試者需要根據(jù)詳細(xì)設(shè)計(jì)說明書和源程序清單來了解模塊的I/O條件和邏輯結(jié)構(gòu)。

本節(jié)利用風(fēng)靡全球的“俄羅斯方塊游戲排行榜”的程序作為案例來串講單元測試的內(nèi)容。

01、測試策劃

1. 目的

俄羅斯方塊游戲(Tetris)的排行榜功能經(jīng)過編碼后,在與其他模塊進(jìn)行集成之前,需要經(jīng)過單元測試,測試其功能點(diǎn)的正確性和有效性。以便在后續(xù)的集成工作中不會引入更多的問題。

2. 背景

俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它由俄羅斯人阿列克謝·帕基特諾夫發(fā)明,故得此名。俄羅斯方塊的基本規(guī)則是移動(dòng)、旋轉(zhuǎn)和擺放游戲自動(dòng)輸出的各種方塊,使之排列成完整的一行或多行并且消除得分。

排行榜功能是俄羅斯方塊游戲中不可或缺的一部分,其用于將當(dāng)前用戶的得分與歷史得分記錄進(jìn)行比較并重新排序。

該程序主要涉及的功能點(diǎn)有歷史記錄文件的讀取、分?jǐn)?shù)排名的計(jì)算與排序、新記錄文件的保存、新記錄的顯示等。這些功能將在一局游戲結(jié)束,并獲取到該局游戲的得分后啟動(dòng)。

3. 待測源代碼

private void gameOver (int score)//游戲結(jié)束
{//Display game over
string s="您的得分為:";
string al =".
char[]A={};
int i=1;
_blockSurface.FontStyle= new Font(FontFace,BigFont);//設(shè)置基本格式_blockSurface.FontFormat.Alignment = StringAlignment.Near;
_blockSurface.DisplavText ="GAME OVER!!
string sc = Convert.ToString( score);//得到當(dāng)前玩家的分?jǐn)?shù)//write into file;
string path="D: test2.txt";//文件路徑
try{
FileStream fs = newFileStream
(path,FileMode.OpenOrCreate,FileAccess.ReadWrite);
StreamReader strmreader = new StreamReader(fs);//建立讀文件流
String[] str = new String[5];
String[] split = new String[5];
while(strmreader.Peek()!= -1)
for(i=0;i<5;i++)
strli] = strmreader.ReadLine();//以行為單位進(jìn)行讀取,賦予數(shù)組
//str[i]
split [i]split[i]= str[i].split(':')[1];//按照":"將文字分開,賦予數(shù)組 
person1 = Convert.ToInt32(split[0]); //splt[0]的值賦予第一名
person2 = Convert.ToInt32(split[1]); //splt[1]的值賦予第一名
person3 = Convert.ToInt32(split[2]); //splt[2]的值賦予第一名
person4 = Convert.ToInt32(split[3]); //splt[3]的值賦予第一名
person5 = Convert.ToInt32(split[4]); //splt[4]的值賦予第一名
strmreader.Close(); //關(guān)閉流
fs.Close();
FileStream ffs = new
FileStream(path, FileMode.OpenOrCreate,
FileAccess.ReadWrite));
StreamWriter sw = new StreamWriter(ffs)//建立寫文件流
if(_score > person1)//如果當(dāng)前分?jǐn)?shù)大于第一名,排序
{
person5=person4; person4 = person3; person3 = person2; person2 = person1;
person1=score;
}
else if(_score> person2)//如果當(dāng)前分?jǐn)?shù)大于第二名,排序
{
person5 = person4; person4 = person3; person3 = person2; person2=
_score;
}
else if(_score> person3)//如果當(dāng)前分?jǐn)?shù)大于第三名,排序
{
person5 = person4; person4 = person3; person3 =_score;
else if(_score> person4)//如果當(dāng)前分?jǐn)?shù)大于第四名,排序
{
person5 = person4; person4 =_score;
}
else if(_score > person5)//如果當(dāng)前分?jǐn)?shù)大于第五名,排序
{
person5 = _score;
//在文件中的文件內(nèi)容
string ppl ="第一名:“+ Convert.ToString(person1);
string pp2 ="第二名:"+ Convert.ToString(person2);
string pp3 ="第三名:”+ Convert.ToString(person3);
string pp4 ="第四名:"+ Convert.ToString(person4);
string pp5 ="第五名"+ Convert.ToString(person5);
string
ppR= pp1+"r\n"+ pp2 +"r\n" + pp3 +"r\n"+ pp4+"r\n"+ pp5 +"r\n";
byte[] info = new UTF8Encoding(true).GetBytes(ppR);
sw.Write(ppR); //將內(nèi)容寫入文件
sw.Close();
ffs.Close();
}
Catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}
S=s+""+ sC;
//Draw surface to display text;
MessageBox.Show(s);  //在界面中顯示排行榜內(nèi)容
} 

02、測試設(shè)計(jì)

下面將利用相關(guān)靜態(tài)和動(dòng)態(tài)(白盒測試、黑盒測試)方法對案例進(jìn)行相應(yīng)的測試,得到測試報(bào)告與錯(cuò)誤列表,在實(shí)際項(xiàng)目中可進(jìn)一步反饋給開發(fā)方進(jìn)行Bug的確認(rèn)與修復(fù)。

1. 代碼走查

利用代碼走查的方法檢查該模塊的代碼,對代碼質(zhì)量進(jìn)行初步評估。具體實(shí)現(xiàn)如表1所示。

????????■?表1 代碼走查情況記錄

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

從表1的分析中可以看出,本模塊的代碼基本情況如下。

(1) 代碼直觀。

(2) 代碼和設(shè)計(jì)文檔對應(yīng)。

(3) 無用的代碼已經(jīng)被刪除。

(4) 注釋過于簡單。

2. 基本路徑測試法

基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出可執(zhí)行的路徑集合,從而設(shè)計(jì)測試用例的方法。首先需要簡化程序模塊,繪制程序模塊如圖2所示。接著按照模塊圖的設(shè)計(jì)路徑來覆蓋策略。主要可分為以下4步執(zhí)行。

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

■?圖2 程序模塊圖

1) 繪制程序的控制流圖

基本路徑測試法的第一步是繪制控制流圖,根據(jù)程序模塊圖的邏輯關(guān)系,獲得該程序塊的控制流圖,如圖3所示。

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

■?圖3 程序模塊的控制流圖

2) 計(jì)算環(huán)路復(fù)雜度

其次是根據(jù)控制流圖計(jì)算環(huán)路復(fù)雜度,環(huán)路復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,該度量將用于計(jì)算程序基本的獨(dú)立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。

V(G)=P+1=5+1=6

根據(jù)以上公式確定至少要覆蓋6條路徑。

3) 導(dǎo)出獨(dú)立路徑

根據(jù)控制流圖可以方便地得到以下6條路徑。

path1:1—2—11。

path2:1—3—4—11。

path3:1—3—5—6—11。

path4:1—3—5—7—8—11。

path5:1—3—5—7—9—10—11。

path6:1—3—5—7—9—11。

4) 設(shè)計(jì)測試用例

最后設(shè)定一組初始參數(shù),以此來設(shè)計(jì)測試用例。令:

person1=23

person2=20

person3=10

person4=6

person5=4

作為測試輸入,可設(shè)計(jì)測試用例如表2所示。

■?表2 基本路徑法測試用例

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

3. 邊界值分析

邊界值分析法利用輸入變量的最小值、略大于最小值、輸入范圍內(nèi)任意值、略小于最大值、最大值等來設(shè)計(jì)測試用例。

由于輸入的只會是數(shù)據(jù),且數(shù)據(jù)均大于0,因此可令:

person1 = 23

person2 = 20

person3 = 10

person4 = 6

person5 = 4

采用邊界值法設(shè)計(jì)測試用例如表3所示。

■?表3 邊界值法測試用例

軟件測試用例經(jīng)典方法 | 單元測試法案例,軟件測試,測試用例,單元測試,原力計(jì)劃

03、測試執(zhí)行

將設(shè)計(jì)的測試用例整理合并為測試用例集合,必要時(shí)需要開發(fā)相應(yīng)的驅(qū)動(dòng)模塊和樁模塊。本次測試需要開發(fā)一個(gè)驅(qū)動(dòng)模塊,用于初始化相應(yīng)的參數(shù),并調(diào)用待測模塊以達(dá)到測試效果。驅(qū)動(dòng)模塊代碼如下。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main(){
public static void main(String[]args)
throws IOException{
int person1 = 23,person2 = 20, person3 = 10,person4 = 6,person5 = 4;
int score;
String s;
BufferedReader bf = new BufferedReader(newInputStreamReader(System.in));
s = bf.readLine():
score = Integer.valueOf(s);
_gameOver(score);
}
}

04、測試總結(jié)

測試結(jié)果可利用Bug記錄平臺進(jìn)行記錄,在實(shí)際項(xiàng)目中則可反饋給開發(fā)人員,由開發(fā)人員確認(rèn)并修復(fù)。

測試結(jié)束后,形成測試報(bào)告。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-687796.html

?

?

?

?

?

?

?

到了這里,關(guān)于軟件測試用例經(jīng)典方法 | 單元測試法案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 常見的6種軟件測試用例設(shè)計(jì)方法

    常見的6種軟件測試用例設(shè)計(jì)方法

    常見的軟件測試用例設(shè)計(jì)方法,個(gè)人認(rèn)為主要是下面這6種: 流程圖法(也叫場景法) 等價(jià)類劃分法 邊界值分析 判定表 正交法 錯(cuò)誤推測法 這6種常見方法中,我分別按照定義、應(yīng)用場景、使用步驟、案例講解這4個(gè)部分進(jìn)行講解。 所以本文行文結(jié)構(gòu)如下 每種用例方法定義、

    2024年01月24日
    瀏覽(28)
  • 軟件測試過程與方法(1):單元測試,集成測試,確認(rèn)測試

    軟件測試過程與方法(1):單元測試,集成測試,確認(rèn)測試

    軟件測試從測試計(jì)劃編寫到測試實(shí)施,需要經(jīng)過一系列的過程。這些測試按軟件從編寫到交付的各個(gè)階段的先后順序可分為以下5個(gè)階段: 單元測試 集成測試 確認(rèn)(有效性)測試 系統(tǒng)測試 驗(yàn)收(用戶)測試 單元測試 單元測試的定義: 單元測試(Unit Testing)是對軟件基本構(gòu)

    2024年02月02日
    瀏覽(36)
  • 軟件測試技術(shù)之單元測試—工程師 Style 的測試方法

    什么是單元測試? Wikipedia 對單元測試的定義: 在計(jì)算機(jī)編程中,單元測試(Unit Testing)又稱為模塊測試,是針對程序模塊(軟件設(shè)計(jì)的最小單位)來進(jìn)行正確性檢驗(yàn)的測試工作。 在實(shí)際測試中,一個(gè)單元可以小到一個(gè)方法,也可以大到包含多個(gè)類。從定義上講,單元測試和

    2024年02月12日
    瀏覽(35)
  • 軟件測試技術(shù)之單元測試—工程師 Style 的測試方法(2)

    怎么寫單元測試? JUnit 簡介 基本上每種語言和框架都有不錯(cuò)的單元測試框架和工具,例如 Java 的 JUnit、Scala 的 ScalaTest、Python的 unittest、JavaScript 的 Jest 等。上面的例子都是基于 JUnit 的,我們下面就簡單介紹下 JUnit。 JUnit 里面每個(gè) @Test 注解的方法,就是一個(gè)測試。@Ignore 可以

    2024年02月11日
    瀏覽(20)
  • 軟件測試技術(shù)之單元測試—工程師 Style 的測試方法(3)

    如何設(shè)計(jì)單元測試? 單元測試設(shè)計(jì)方法 單元測試用例,和普通測試用例的設(shè)計(jì),沒有太多不同,常見的就是等價(jià)類劃分、邊界值分析等。而測試用例的設(shè)計(jì)其實(shí)也是開發(fā)者應(yīng)該掌握的基本技能。 等價(jià)類劃分 把所有輸入劃分為若干分類,從每個(gè)分類中選取少數(shù)有代表性的數(shù)據(jù)

    2024年02月12日
    瀏覽(30)
  • Selenium 學(xué)習(xí)(0.16)——軟件測試之測試用例設(shè)計(jì)方法——白盒測試——邏輯覆蓋法(語句覆蓋和判定覆蓋)

    Selenium 學(xué)習(xí)(0.16)——軟件測試之測試用例設(shè)計(jì)方法——白盒測試——邏輯覆蓋法(語句覆蓋和判定覆蓋)

    ??????? 寫在前面 ???????? 今天回來有點(diǎn)晚,因?yàn)樯衔缃o小伙伴們開了個(gè)小會,隨便說了些什么,結(jié)果小伙伴們下班就沒急著走,弄點(diǎn)我還有點(diǎn)不好意思提前走了,就略留了一會。其實(shí)也沒說什么,就是強(qiáng)調(diào)工作要抓點(diǎn)緊,8小時(shí)內(nèi)提高效率就好,我反對無意義的加班;

    2024年02月05日
    瀏覽(51)
  • 如何避免軟件bug?優(yōu)化你的測試流程和設(shè)計(jì)用例方法就對啦!

    如何避免軟件bug?優(yōu)化你的測試流程和設(shè)計(jì)用例方法就對啦!

    目錄 引言 一、測試流程 二、測試用例設(shè)計(jì)方法 等價(jià)類 邊界值 場景設(shè)計(jì)法 判定表 錯(cuò)誤推測法 結(jié)語 對于大多數(shù)軟件開發(fā)者和測試人員而言,避免出現(xiàn)bug是一項(xiàng)非常重要的任務(wù)。但是,在實(shí)際的開發(fā)過程中,我們經(jīng)常容易忽略一些細(xì)節(jié)或者流程上的問題,導(dǎo)致測試的結(jié)果不盡

    2024年02月05日
    瀏覽(34)
  • 軟件測試 白盒測試用例設(shè)計(jì)方法動(dòng)態(tài) 邏輯覆蓋(語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋)基本路徑測試法

    軟件測試 白盒測試用例設(shè)計(jì)方法動(dòng)態(tài) 邏輯覆蓋(語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋)基本路徑測試法

    白盒設(shè)計(jì)方法分為靜態(tài)和動(dòng)態(tài)。 靜態(tài)的白盒測試方法有桌面檢查、代碼審查、代碼走查和代碼掃描工具。 動(dòng)態(tài)的白盒測試方法有邏輯覆蓋法和基本路徑測試法。 2.1 邏輯覆蓋 邏輯覆蓋法有語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋和路徑覆蓋。 例1 將上

    2024年02月02日
    瀏覽(19)
  • 【軟件測試】測試用例

    【軟件測試】測試用例

    目錄 ??1. 測試用例的基本要素 ??2. 測試用例的設(shè)計(jì)方法 ??2.1 基于需求進(jìn)行測試用例的設(shè)計(jì) ??(1)功能需求測試分析 ??(2)非功能需求測試分析 ??2.2 具體的設(shè)計(jì)方法 (黑盒測試) ??(1)等價(jià)類 ??(2)邊界值 ??(3)錯(cuò)誤猜測法 ??(4)場景設(shè)計(jì)法 ??

    2023年04月15日
    瀏覽(19)
  • 軟件測試測試用例

    軟件測試測試用例

    等價(jià)類: 把輸入的數(shù)據(jù)可以分為有效的數(shù)據(jù)和無效的數(shù)據(jù) 被測試的對象輸入的數(shù)據(jù): 1、有效的數(shù)據(jù) 2、無效的數(shù)據(jù) 測試一個(gè)產(chǎn)品,需要考慮它的正確場景,也需要考慮它的異常場景 邊界值: 邊界值測試用例是針對等價(jià)類測試用例方法的補(bǔ)充,因?yàn)榈葍r(jià)類測試用例的方法只考

    2024年02月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包