近年來隨著信息化技術(shù)的普及,很多計算機相關(guān)專業(yè)都開有程序設(shè)計語言類的課程,如:C、C++、VB和Java語言等等,使學(xué)生能夠通過這類課程的學(xué)習(xí)掌握一種計算機語言。程序設(shè)計語言課程本應(yīng)是動手能力和實際應(yīng)用較強的課程,然而,在實際教學(xué)中,很多高校往往只偏重計算機語言的語法教學(xué),教師工作量大,學(xué)生也缺乏學(xué)習(xí)的積極性和主動性?,F(xiàn)在,利用程序設(shè)計語言在線評測系統(tǒng),既可以整合已有的教學(xué)資源,減少教師閱讀與調(diào)試程序工作量,也可以促進學(xué)生的學(xué)習(xí)主動性并提高其動手實踐能力,最終達到較好的教學(xué)效果。
為了提高程序設(shè)計語言在線評測系統(tǒng)的軟件質(zhì)量,確保該系統(tǒng)最終能夠滿足教師和學(xué)生的各種功能需求。本文通過結(jié)合程序設(shè)計語言在線評測系統(tǒng)中幾個功能模塊的實例,詳細介紹幾種黑盒測試技術(shù)在程序設(shè)計語言在線評測系統(tǒng)中測試用例的設(shè)計和應(yīng)用。
系統(tǒng)功能簡介
程序設(shè)計語言在線測評系統(tǒng)是一款以減少計算機程序語言教師作業(yè)批改工作量和提高學(xué)生學(xué)習(xí)程序語言效率的軟件。整個系統(tǒng)的設(shè)計采用B/S模式以及MVC三層架構(gòu),主要包含以下五大功能模塊:第一、用戶注冊與登錄模塊。第二、學(xué)生在線答題與成績查詢模塊。第三、程序在線評測模塊。第四、教師試題錄入與編輯模塊。第五、在線疑難問題討論模塊。
黑盒測試技術(shù)
黑盒測試技術(shù)是軟件測試的主要方法之一。由于在黑盒測試中,主要關(guān)注于被測軟件的功能實現(xiàn)而不是邏輯,又叫做功能測試。測試人員不需要了解軟件的具體實現(xiàn)方法,不需要具備應(yīng)用程序代碼和編程語言等專業(yè)知識,只需要了解程序的輸入、輸出和系統(tǒng)的功能,從用戶角度對軟件界面、功能和外部結(jié)構(gòu)進行測試。執(zhí)行黑盒測試的人員通常是不同于系統(tǒng)開發(fā)人員的第三方,他們可以依據(jù)系統(tǒng)的用戶需求文檔,在軟件實現(xiàn)工作的同時,并行開展測試用例的開發(fā)工作,最終達到縮短整個項目的開發(fā)周期的目的。
常見的黑盒測試技術(shù)主要包括有等價類劃分測試法、邊界值分析測試法、特殊值分析測試法、錯誤猜測測試法、因果圖測試法和基于判定表的測試方法等等。
黑盒測試技術(shù)在程序設(shè)計語言在線評測系統(tǒng)中的典型應(yīng)用
1.等價類劃分測試法
等價類劃分測試法主要是指,把輸入的數(shù)據(jù)的可能值按照一定的標準劃分為若干個具有一定共性的等價類,而只需要在每個等價類之中抽取一個有代表性的元素來構(gòu)造測試用例,就是說只要該等價類中的一個測試用例測試結(jié)果正確,就代表該類中所有測試用例的測試結(jié)果都正確。這種測試方法的目的一是大大降低測試用例直接的冗余,二是期望進行某種意義上完備的測試。
對于等價類的劃分一般又分為有效等價類和無效等價類。有效等價類主要是指那些符合系統(tǒng)的需求文檔的正確、合理的“有效”輸入值;而無效等價類則是指那些不符合系統(tǒng)的需求文檔的錯誤、不合理的“無效”輸入值。在設(shè)計無效等價類測試用例的時候,為了避免遺漏掉某一類的錯誤,通常要從多個不同的角度設(shè)置多個無效等價類,并為每類設(shè)計測試用例。
在程序設(shè)計語言在線評測系統(tǒng)的登錄模塊中,根據(jù)系統(tǒng)的需求文檔,使用該系統(tǒng)的登錄人員主要有三類:學(xué)生、教師和管理員。各類用戶憑借自己的用戶名和密碼進行登錄。以學(xué)生用戶為例,學(xué)生以學(xué)號作為用戶名進行登錄,學(xué)號通常是以“入學(xué)年份+班號+人頭號”的數(shù)字形式出現(xiàn),假設(shè)該學(xué)校第一屆學(xué)生入學(xué)是1994年,班號以最多1 000個班為界,從000到999用三位數(shù)字表示,再假設(shè)每班人數(shù)不超過70人,用數(shù)字00到69進行表示。對于學(xué)生用戶登錄的等價類劃分如表1,設(shè)計覆蓋(1.1)到(1.9)的9個等價類的測試用例,具體的測試用例見表2。
2.邊界值分析測試法
邊界值分析測試法可以看成是對等價類劃分測試法的一個補充。大量的測試經(jīng)驗表明,程序的錯誤常常出現(xiàn)在輸入變量的極值附近。因此,在設(shè)計邊界值測試用例的時候,不同于在等價類劃分測試法中取每一個等價類的典型輸入值,而是取每一個等價類中,剛好等于、略微小于或是略微大于邊界值的輸入值作為測試數(shù)據(jù)。
仍然以程序設(shè)計語言在線評測系統(tǒng)中登錄模塊的學(xué)生用戶登錄功能為例,補充之前的表2,設(shè)計測試用例如表3。
3.錯誤猜測測試法
錯誤猜測測試法是一種依據(jù)測試人員的經(jīng)驗和直覺,對程序中可能會出現(xiàn)錯誤的地方進行有針對性測試的輔助測試手段。這種方法主要是通過對程序中有可能出現(xiàn)錯誤的地方進行“猜測”,并將所有的錯誤類型列出清單,再根據(jù)清單逐一設(shè)計測試用例的方法來實現(xiàn)的。
如果仍以學(xué)生用戶登錄功能為例,可以設(shè)計測試用例用空值,即無任何輸入,這樣的輸入也是會期望輸出“輸入錯誤”。又比如說在程序設(shè)計語言在線評測系統(tǒng)中程序評測模塊中,根據(jù)經(jīng)驗,學(xué)生經(jīng)常犯的編程錯誤有:一對花括號少寫其中一個,以及每一行程序后面沒有加“;”等。可以根據(jù)這些常見錯誤,有針對性的編寫相應(yīng)的測試用例進行測試。
總之,軟件測試在軟件項目開發(fā)和管理的過程中扮演著非常重要的角色,而設(shè)計良好的測試用例則更是保障整個項目測試質(zhì)量的關(guān)鍵。在程序設(shè)計語言在線評測系統(tǒng)中,只要能夠在對被測對象深度理解地基礎(chǔ)之上,合理地選擇并使用各種測試方法,就能極大程度地提高此系統(tǒng)的測試水平。