測試腳本

測試腳本

徠Testing script(測試腳本),一般指的是一個特定測試的一系列指令,這些指令可以被自動化測試工具執行。為了提高測試腳本的可維護性和可復用性,必須在執行測試腳本之前對它們進行構建。或許會發現這樣的情況,即有的操作將出現在幾個測試過程中。因此,應有目的地確定這些操作的目標,這樣就可以復用它們的實施。測試腳本是自動執行測試過程(或部分測試過程)的計算機可讀指令。測試腳本可以被創建(記錄)或使用測試自動化工具自動生成,或用編程語言編程來完成,也可綜合前三種方法來完成。

基本信息


概述
更改目標軟體時,需要對測試過程進行局部的可控制的變更。這將使得測試過程和測試腳本對目標軟體的變化有更大的應變能力。例如,假設軟體的登錄部分已經改變。在遍歷該登錄部分的所有測試用例中,只有關於登錄的測試過程和測試腳本需要進行改變。
測試腳本是針對一個測試過程的。一個測試過程往往需要眾多的數據來測試。通過自動錄製得到的腳本,所有的輸入數據都是常數,是固定的。
如果需要使用一個測試腳本測試多組數據,就需要對腳本進行參數化,把固定的常數修改為來自數據源變數。

定義


測試腳本語言(test scripting language)是腳本語言的一種,準確地講是腳本語言在測試領域地一個分支,是自動化軟體測試設計的基礎。要理解測試腳本語言就不能不對腳本語言進行一些了解。
腳本語言(scripting language)就是在執行時以解釋(interpreting) 為主的編程語言,比如常見的perl,python,php,tcl,guile,ruby以及UNIX系統的各種shell都是腳本語言,它的執行效率比不上編譯后再執行的程序,如以C,C++, Java,Pascal等語言編寫的程序。
腳本語言應用到測試領域就可以稱之為測試腳本語言,以上提到的腳本語言都可以作為測試腳本語言來使用,特別是tcl語言更是被業界稱為事實上的測試腳本語言標準。隨著軟體測試的發展,各種測試工具也相繼推出,為了保護知識產權或者說是保護商業秘密,這些商業化的軟體大多使用自己的測試腳本語言,比如MI的TSL語言等。

分類


線性腳本:是錄製手工執行的測試實例得到的腳本。這種腳本包括所有的擊鍵、功能鍵、箭頭、控制測試軟體的控制鍵及輸入數據的數字鍵。
徠結構化腳本:類似於結構化程序設計,結構化腳本中含有控制腳本設計的指令。這些指令或為控制結構或為調用結構。
共享腳本:腳本可能被多個測試事例使用。
數據驅動腳本技術:將測試輸入存儲在獨立的文件中,而不是存儲在腳本中。
關鍵字驅動腳本:較複雜的數據驅動技術的邏輯擴展。

發展歷史


這裡我們以tcl語言的發展來回顧一下腳本語言的發展歷史,商業化的測試腳本語言一般就是隨著商業測試軟體的發展來發展的,在此不作詳細介紹。
Tcl/Tk 的發明人 John Ousterhout 教授在八十年代初是伯克利大學的教授。在其教學過程中,他發現在集成電路 CAD 設計中,很多時間是花在編程建立測試環境上。並且,環境一旦發生了變化,就要重新修改代碼以適應新環境。這種費力而又低效的方法,迫使 Ousterhout 教授力圖尋找一種新的編程語言,它既要有好的代碼可重用性,又要簡單易學,這樣就促成了 Tcl (Tool Command Language) 語言的產生。
Tcl 最初的構想是希望把編程按照基於組件的方法 (component approach),即與其為單個的應用程序編寫成百上千行的程序代碼,不如尋找一種方法將程序分割成一個個小的, 具備一定“完整”功能的,可重複使用的組件。這些小的組件小到可以基本滿足一些獨立的應用程序的需求,其它部分可在這些小的組件功能基礎上生成。不同的組件有不同的功能,用於不同的目的,並可為其它的應用程序所利用。當然, 這種語言還要有良好的擴展性, 以便用戶為其增添新的功能模塊。最後,需要用一種強的,靈活的“膠水”把這些組件“粘”合在一起, 使各個組件之間可互相“通信”,協同工作。程序設計有如拼圖遊戲一樣,這種設計思想與後來的 Java 不謀而合。終於在 1988 年的春天, 這種強大靈活的膠水 - Tcl 語言被發明出來了。
到了80年代圖形用戶界面逐漸流行的時候,Ousterhout 教授要想使基於組件的設計能夠實現,需要有一個強大的有彈性的控制項整合工具。這些想法在一開始考慮做Tcl的時候就產生了,Ousterhout 教授覺得像Tcl這樣的嵌入式命令語言作為腳本語言對整合部件會很有用。Ousterhout 教授決定創建一些作為Tcl擴展的GUI部件並且使用Tcl來把這些部件整合到圖形用戶界面中,藉此實踐一下這個理論。這個擴展就成為了Tk。
Tcl 在創始初期都是以開放源碼的方式發布的,到了90年代初,Tcl語言得到了廣泛的發展,並得到了大型廠商的支持,如SUN公司,並逐步形成了tcl社區,這樣就逐漸有了商業贏利產品的開發,同時Tcl將會繼續開發開放源代碼的產品,至此TCL語言進入了兩種不同的發展軌道,同時也促進了tcl語言的發展和 應用。

工作


特點

1.腳本語言的特點,通過下面tcl/tk與C++和java的比較就可見一斑。
2.C++,Tcl/Tk 和 Java 的性能比較高
3.C++
4.Tcl/Tk
5.Java
6.運行程序速度
7.快
8.與 C++ 可比
9.慢
10.調試難易程度
11.複雜 每次修改完代碼需重新編譯
12.簡單 修改完代碼可直接運行
13.比較簡單 修改完代碼需重新編譯成 ByteCode,而且編譯速度很慢
14.程序代碼複雜程度
15.複雜
16.簡明
17.比較簡單
18.系統資源佔用情況
9.1200MB HD 32MB Memory
20.3MB HD 4MB Memory
21.20MB HD 4MB Memory
22.代碼可維護性
有一定難度,需要有面向對象程序設計的概念

基本工作原理

腳本語言的基本工作原理可以用下面的圖示來說明

腳本解釋器

腳本解釋器是腳本語言工作的核心,所有具體指令或是函數的執行都由它來完成,擴展項實現了與其它語言的介面,使腳本語言運行C/C++,java等函數成為可能;同時在用戶具體應用中可以定義命令和函數,應用更加靈活;作為解釋器它也提供了基本的內建指令或是函數,不同廠商、版本的解釋器提供的內建命令(函數)可能不同。