不多說了,現在說一下我們要自動化什么問題。我們有兩個計算機帳號,A和B。我們需要用B帳號進行系統的設置,也就是測試的準備工作,然后用A帳號來進行測試。下邊來說一下不同水平的人是如何進行自動化的。
1. 手工測試人員
Log on B
Configure
Log out
Log on A
Test
2. 初級自動化人員(直接把手工case轉成自動化)
Set autologon B
Set autorun
Record test status: 0
Logout
Check status
if(status==0)
{
Configure
Set autologon A
Record test status:1
Logout
}
if(status==1)
{
Test
}
這個級別的人,需要懂得腳本編程,需要懂得系統設置,autologon and autorun。
3. 有一定經驗的自動化人員(改變手工測試case以利于自動化的更簡單,可靠的實現)
不需要log out and log on
利用Windows命令Runas
用高級語言調用Runas
利用重定向來輸入Password
這個級別的人,需要懂得高級語言,重定向,Windows系統命令Runas
4. 中級自動化人員(具有更豐富的開發經驗,可以用程序代替UI和系統命令)
不需要Runas命令
利用.NET的Process對象
用B的身份生成一個Process來進行配置工作
這個級別的人,要比較熟悉高級語言,比較熟悉高級語言的類庫,懂得操作系統的內核基本概念
5. 高級自動化人員(精通高級語言,精通操作系統內核)
不需要多生成一個進程
用本線程impersonate用戶B
利用.NET WindowsIdentity 對象
必須要調用Windows API,LogonUser
這個級別的人,要精通C/C++和Java,C#等高級語言,精通Windows內核的知識和Windows API
從以上的例子可以看到,針對同一個test case,不同的測試人員,從手工到高級自動化,由于自己知識面的原因,會設計出非常不同的case出來。越高級的自動化越靈活,穩定,可靠,也更需要掌握更多的開發和內核的知識。因此,我們看到很多人在強烈的否定自動化,你先看看他到底在哪個層次中。越下邊層次的自動化人員,由于技術的原因,碰到的問題會越多,能解決的問題卻越少,因此對自動化的抱怨也就越大了。這些都是可以理解的,不過以此來否定自動化,我覺得還是不太應該,畢竟自己技術還不過關。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/