999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向?qū)ο髥卧獪y試的案例教學法

2008-12-31 00:00:00鄭麗香
電腦知識與技術 2008年35期

摘要:該文介紹了在軟件測試課程的教學過程中,結合學生所學的Java的相關知識,用案例教學法來講解面向?qū)ο髥卧獪y試這一教學內(nèi)容,讓學生既能理解理論知識又能掌握實踐技能,提高學生的學習興趣,培養(yǎng)學生的動手能力。

關鍵詞:Java類;面向?qū)ο蟮膯卧獪y試;測試用例

中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)35-2435-02

Object-oriented Unit Testing of the Case Teaching Method

ZHENG Li-xiang

(Quanzhou Senior Technical School, Quanzhou 362000, China)

Abstract: This article describes a software testing in the curriculum, students have learned the combination of Java-related knowledge, the case teaching method used to explain the object-oriented unit testing the contents of teaching so that students can understand the theory of knowledge can master the practical skills and to improve their interest in learning to cultivate the ability of students.

Key words: Java class; object-orient unit test; test case

1 引言

面向?qū)ο蟮膯卧獪y試(簡稱為OO Unit Test)是檢驗面向?qū)ο蟪绦蜃钚挝唬礄z查類有無錯誤的測試工作。因為類是面向?qū)ο蟪绦蛑凶罨镜膯挝唬詫τ陬惖臏y試必須要100%通過,這樣面向?qū)ο髥卧獪y試就顯得非常重要了。面向?qū)ο蟮母拍罴俺绦蛟O計方法本身就是一個難點,那么要幫助學生理解和掌握面向?qū)ο髥卧獪y試就更困難了。學生們對此也覺得很枯燥,聽不懂,學不會,最后放棄了。為了讓學生掌握這方面的知識和技能,我采用的方法是以Java類為例,講解面向?qū)ο髥卧獪y試的基本操作過程,以案例代替概念,理論與實踐相結合,采用案例教學法。

為什么要采用Java類作為案例進行教學呢?這主要是考慮到以下兩點:

一是Java語言是當前應用前景非常好的軟件設計開發(fā)語言,現(xiàn)在的計算機專業(yè)一般都會開設這一課程,并且是在《軟件測試》之前開設,學生有知識基礎。

二是Java語言是純面向?qū)ο蟮恼Z言,它摒棄了C/C++中的一些不易掌握的結構,如指針等,其最小處理單位就是類,而且Java語言的程序非常簡潔,理解起來比較容易。

當然作為案例的Java類不能太難了,否則一開始學生就看不懂該Java類的功能,更不用說理解該類的測試過程了。

為了讓學生能夠掌握面向?qū)ο髥卧獪y試技術,我根據(jù)學生的知識水平,選用合適的被測試的Java類,為其設計測試用例,執(zhí)行測試并生成測試文檔,用完整的案例進行教學。

2 針對面向?qū)ο笳Z言的特征,選擇自動化的單元測試方法

在一個典型的軟件項目中,有兩種類型的測試最為重要:程序員測試和用戶測試,或稱為單元測試和驗收測試。單元測試由程序設計師自行編寫測試代碼,目的在于驗證程序設計師所撰寫的代碼是否依據(jù)其所設想的方式執(zhí)行而產(chǎn)生符合預期的結果。即驗證程序代碼的正確性。如果是對采用面向?qū)ο蠓椒ㄔO計的軟件進行單元測試,就是面向?qū)ο髥卧獪y試了。

通常,在進行面向?qū)ο蟮膯卧獪y試前,我們都要分析幾個問題:

1) 面向?qū)ο蟮膯卧獪y試的對象是誰?

2) 采用人工測試還是自動化測試?

3) 如果是自動化測試,那么使用什么樣的工具合適?

4) 如何進行面向?qū)ο蟮膯卧獪y試?

對于不同的程序代碼來說,以上的問題可能都有不同的答案與之相對應,那么如果使用的是Java語言所編寫的代碼的話,該怎樣決定呢?

首先,我們知道Java語言是一種高級的、通用的、完全面向?qū)ο蟮某绦蛟O計語言,其程序的基本處理單位是類。所以單元測試的對象就是類,即Java的單元測試指的是面向?qū)ο蟮膯卧獪y試。

其次,隨著軟件的復雜程度越來越高,面向?qū)ο髥卧獪y試的工作量也隨之增加了,若采用人工測試恐怕難以完成。因此,自動化的單元測試要比人工測試要來得適用。再者,自動化測試的另一個好處是能生成測試文檔,這樣也可以減少文檔的撰寫工作。

當然,如果選擇了自動化測試就需要工具來支持了,使用何種工具比較合適呢。在此,推薦使用JUnit,這是一種輕量級的測試框架。JUnit是一個開發(fā)源代碼的Java測試框架,用于編寫和運行可重復的測試。它是用于單元測試框架體系xUnit的一個實例(用于Java語言)。主要用于白盒測試,回歸測試。JUnit一般不需要另行安裝,通常集成的程序設計平臺,如Eclipse、JBuilder等都會裝有JUnit。

3 設計簡單的Java類的單元測試用例來解析面向?qū)ο髥卧獪y試

3.1 選取待測試的Java類

為使學生更易理解,案例的選擇要先易后難。我們可以用HelloWorld為例說明JUnit是如何進行單元測試的,因為每一種語言在其學習用書的第一個例子通常都是HelloWorld,它最簡單了。以下是代碼:

// HelloWorld.java

packageHelloWorld ;

public class helloWorld {

public String sayHello( ) {// 返回測試字符串的方法

returnstr;

}

private String str;

}

3.2 設計測試用例,幫助學生掌握測試步驟

為了對HelloWorld類進行測試,我編寫了以下測試用例,它本身也是一個Java類文件。代碼如下:

// HelloWorldTest.java;

package hello.Test ;

import helloWorld.*;

import junit.framework.*;// 引入junit.framework包

public class HelloWorldTest extends TestCase{

//繼承TestCase類

public HelloWorldTest ( String name ) {

super ( name );

}

public static Test suite ( ){

returnnewTestSuite ( HelloWorldTest.class );

}

public static void main ( String args[] ) { //主方法

junit.textui.TestRunner.run ( suite ( ) ) ;

}

// 實現(xiàn)對SayHello方法的測試

private static final String str=”Hello Java!”;

protected void setUp ( ) { // 覆蓋setUp( )方法

HelloWorld JString = newHelloWorld ( ) ;

}

public void testSayHello ( ) {// 測試SayHello方法

assertEquals ( “Hello Java!”,JString.sayHello ( ) );

//通過使用標準的Objcet.equals()方法檢查兩個值是否相等

}

}

3.3 總結測試案例,得出一般性結論

面向?qū)ο髥卧獪y試的類,不論多復雜,測試的基本步驟都是不變的,也就是定義測試類文件,在測試類文件中對被測試的類實例化,然后進行測試,測試完成后釋放所占用的資源,而有變化的是測試的具體對象——類。在面向?qū)ο蟪绦蛑校瑢ο笫菍傩院头椒ǖ姆庋b體,面向?qū)ο髥卧獪y試針對的是類的成員方法(成員函數(shù))測試其是否能完成定義的功能。

該例有還另一個特殊之處:程序員在編寫Java程序時就要考慮到單元測試了。這是當前的一種比較先進的軟件工程方法——測試先行(TDD),所以該例子還讓學生初步了解了新的軟件工程方法學。

4 編寫xml代碼,用于生成單元測試文檔

在上述案例中沒有使用System.out.println()這一打印語句來顯示測試結果。這是因為,首先,如果是一個復雜的系統(tǒng),這種方法很難告訴我們系統(tǒng)是否正常運作。其次,該打印語句進行的是屏幕顯示,沒有保存結果,要查看結果,每次都要運行測試,這樣做費時又費力。所以在面向?qū)ο髥卧獪y試后還應編寫測試文檔。對于Java類的面向?qū)ο髥卧獪y試,我們使用Ant編寫生成測試文檔的代碼。

Another Neat Tool(Ant)是Apache Jakarta中一個很好用的Java開發(fā)工具。Ant將構建和部署的過程自動化,JUnit則將測試自動化。將這兩者擺在一起,Ant就能夠?qū)嫿ǎ渴鹨约皽y試的過程自動化。和JUnit一樣該工具也不需要另行安裝,在集成化的程序設計平臺上就有。

為生成HelloWold的測試文檔,我編寫了以下代碼:

<project name=”junitSample” default=”test”>

<target name=”init”>

<property name=”outdir”

value=”/tmp/junitSample” />

</target>

<target name=”prepare” depends=”init”>

<mkdir dir=”${outdir}” />

</target>

<target name=”compile” depends=”prepare”>

<javac srcdir=”.”destdir=”${outdir}”

classpath=”junit.jar” />

</target>

<taget name=”test” depends=”compile”>

<junit printsummary=”true”>

<formatter type=”xml” />

<test name=”junit.Samples.HelloWordTest” />

<classpath>

<pathelemnet location=”${outdir}” />

</classpath>

</junit>

</target>

</project>

該文件保存為build.xml,通過在含有build.xml文件的目錄中鍵入ant,build或 build.sh運行build.xml腳本就會輸出結果。因為formatter子元素的type屬性值為xml,這樣就可以把測試結果輸出成XML格式,即保存成一個永久文件,而且其結果還能顯示在一個網(wǎng)頁上。

以下即是運行build.xml文件后所生成的XML文件的內(nèi)容:

<?xml version=”1.0”?>

<testsuite errors=”0” failusres=”0”

name=”junit.samples.HelloWorldTest”

test=”6” time=”0.201”>

<testcase name=”testSayHello”

time=”0”></testcase>

</testsuite>

該文件顯示了測試的類文件的名稱junit.samples.

HelloWorldTest,所測試的方法的testSayHello,測試用時0.201,顯示結果testSayHello沒有錯誤。

生成測試文檔后,整個的Java面向?qū)ο髥卧獪y試的過程就完成了。

5 通過測試案例,總結出面向?qū)ο髥卧獪y試的技術方法

在結構化程序時代,單元測試所說的單元是指函數(shù),在當今的面向?qū)ο髸r代,單元測試所說的單元是指類。面向?qū)ο蟮膯卧獪y試沿用了單元測試的概念,但與傳統(tǒng)的單元測試針對的是程序的函數(shù)、過程或完成某一特定功能的程序塊相比面向?qū)ο髥卧獪y試實際測試的是類成員函數(shù)。從具體的實踐來看,為了降低以類作為測試單位的復雜性,提高其可操作性,可以類成員函數(shù)作為單元測試的測試單位,也可以用一個測試類來組織某個類的所有測試函數(shù)。

6 結束語

綜合以上所述,面向?qū)ο蟮膯卧獪y試不易理解與掌握,只講解概念上的理論知識,可能越講學生就越糊涂。因此,采用案例教學是一種不錯的選擇,它將枯燥的概念生動具體化了,學生學習起來也更有興趣了。而且,一般的軟件測試書籍,其內(nèi)容也是理論知識多,實際應用例子少。所以,不僅是面向?qū)ο蟮膯卧獪y試,其他的測試也應盡量地采用案例教學方法,以此幫助學生理解軟件測試的知識,并掌握相應的實際測試軟件的技能。

參考文獻:

[1] Hightower R.Java極限編程[M].北京:機械工業(yè)出版社,2004:137-148.

[2] 賀平.軟件測試教程[M].北京:電子工業(yè)出版社,2005:114-127.

[3] JoeWalnes,Arahanian A,Mike,et al.Java開放源碼編程[M].北京:電子工業(yè)出版社,2005:14-30.

主站蜘蛛池模板: 色男人的天堂久久综合| 国产美女免费网站| 欧美日韩动态图| 欧美精品v日韩精品v国产精品| 天堂网国产| 亚洲国产综合自在线另类| 91精品国产丝袜| 高清无码不卡视频| 国产视频一二三区| 本亚洲精品网站| 在线欧美a| 国产h视频免费观看| 思思热精品在线8| 久久久无码人妻精品无码| 国产精品第页| 99久久人妻精品免费二区| 红杏AV在线无码| 国产香蕉在线视频| 亚洲AV无码一二区三区在线播放| 亚洲第一天堂无码专区| 国产精品亚洲精品爽爽| 综1合AV在线播放| 亚洲国产成人超福利久久精品| 国产精品福利尤物youwu| 久久久国产精品无码专区| 狠狠干欧美| 亚洲国产日韩视频观看| 国产一在线| 伊人久久影视| 亚洲天堂啪啪| 国产打屁股免费区网站| 亚洲午夜天堂| 亚洲欧美日韩另类| 国产男女免费视频| 一级一级一片免费| 亚洲第一在线播放| 久久99国产精品成人欧美| lhav亚洲精品| 亚洲欧美精品一中文字幕| 亚洲综合色区在线播放2019| 亚洲免费福利视频| 精品国产网| 人人爽人人爽人人片| 亚洲人成网7777777国产| 亚洲欧州色色免费AV| 无码国内精品人妻少妇蜜桃视频 | 国产又粗又猛又爽视频| 亚洲,国产,日韩,综合一区| 亚洲成A人V欧美综合| 国产一区二区三区免费观看| 欧美精品不卡| 91亚洲精品第一| 手机在线免费不卡一区二| 日本一本在线视频| 十八禁美女裸体网站| 国产精品亚洲欧美日韩久久| 狠狠干综合| 亚洲二三区| 999精品视频在线| 亚洲熟女偷拍| 毛片久久久| 98精品全国免费观看视频| 国产成人精品第一区二区| 美女一区二区在线观看| 免费无码又爽又刺激高| 青青青视频免费一区二区| 亚洲乱强伦| 国产网站免费看| 亚洲精品少妇熟女| 亚洲色欲色欲www在线观看| 亚洲美女一区| 一区二区午夜| 2021国产v亚洲v天堂无码| 亚洲国产中文精品va在线播放| 在线观看欧美精品二区| 男人天堂伊人网| 国产日韩AV高潮在线| 欧美日韩一区二区在线播放 | 国产精品久久精品| 亚洲av无码久久无遮挡| 国产精品久久久久久久久| 91久久偷偷做嫩草影院免费看|