測試腳本
測試腳本
徠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等函數成為可能;同時在用戶具體應用中可以定義命令和函數,應用更加靈活;作為解釋器它也提供了基本的內建指令或是函數,不同廠商、版本的解釋器提供的內建命令(函數)可能不同。