目錄
《測試架構師修煉之道》是我的一本枕邊書,每次看的時候總是有不同的感受。今天來整理下書中提到的自動化測試相關的知識,更多的是概況、認知或者理論方面的東西。
前言
書中說測試架構師掌握自動化測試的目的不是設計自動化架構或是具體來部署自動化,而是用好自動化。其實這一點我覺得對涉及自動化測試的人員都是通用的,只是偏重點不同。
往往自動化測試前期投入成本可能會大一點,比如框架設計、技術選型、人力成本等等,但是這個步調確定好了之後,更多就是怎麼去用好自動化,把它和業務結合起來。
書中主要從以下方面開展:
- 建立正確的自動化觀念;
- 如何評估自動化收益;
- 自動化工具的選型。
1、自動化測試真相
一提到自動化測試,大家很容易就想到 “7*24小時不間斷測試”、“反覆測試”、“效率高”等等,然而發現,自動化測試做的人多,成功的卻不多。其實原因有很多。
1.1、自動化並不廉價,相反,自動化很貴
- 開發自動化腳本需要不少時間,往往很多團隊部署自動化的原因是因爲項目緊,想通過自動化測試提升效率,既然時間都不夠用了,哪有時間去開發腳本呢?這無疑於緣木求魚;
- 自動化測試需要懂技術的人來操作,其過程也是開發代碼,也需要專業的人才能勝任此工作;
- 某些自動化工作需要購買和二次開發;
總結爲時間成本、技術成本、人力成本,都是自動化測試需要考慮的。所以說它很貴。在部署之前,一定要考慮團隊的消費能力。
1.2、自動化腳本往往沒有想象中的那麼可靠
很多團隊部署自動化另一個原因是想通過自動化來驗證不會漏掉用例中的步驟,覺得自動化是忠實可靠的。但自動化測試給你的“OK”,可能真的只是幻想,因爲腳本只會按照指定的步驟去運行和確認結果,不會去捕捉一些突發異常(至少不能全面的捕捉)。
另外,自動化工作或者環境可能並不是那麼可靠。
無論是正確的自動化測試結果,還是錯誤的自動化測試結果,都需要人再去確認。
1.3、自動化測試不是單靠測試就能搞定的事兒
自動化測試需要SE、開發、測試、自動化工程師緊密配合纔能有效運作起來。開發自動化腳本之前有很多先決條件:
- “需求”要確定清楚,特別是用戶的數去和輸出,一定要確認清楚,這時候SE就要給力些;
- “UI”後者“命令行”需要確定下來,而且確定了最好不要隨隨便便修改,這樣才利於自動化腳本中的一些“中間層”的設計,這需要開發給力;
- 測試用例要儘快寫出來,這需要測試給力。
2、如何評估自動化收益?
2.1、自動化測試的實施成本
公式:自動化實施成本 = 前期開發成本 + 後期的維護成本
2.1.1、前期開發成本
- 人力成本:和自動化開發人員相關的費用成本;
- 時間成本:自動化準備時間,自動化腳本開發、調試的時間成本;
- 金錢成本:工具購買、開發、維護的費用成本。
2.1.2、後期維護成本
- 產品變更引起的自動化測試腳本變更的成本;
- 定位、修復自動化運行環境引起的腳本的健壯性問題的成本;
- 定位、修復自動化運行環境引起的可靠性問題的成本;
- 其它未知的引起測試腳本變更的因素引發的成本。
2.2、自動化測試的運行次數
自動化測試的收益和自動化測試運行的次數是成正比的,腳本能夠被運行的越多,自動化測試的收益纔會越高。
公式:自動化測試的收益 = 自動化測試運行的次數
2.3、自動化測試實施成本
計算公式:p = (k*n) / (c1+c2)
k : 手工執行自動化用例所花費的時間成本;
n :自動化測試用例執行的次數;
c1:花費在自動化測試前期的成本(時間成本 + 人力成本 + 金錢成本);
c2:花費在自動化測試後期的成本(時間成本 + 人力成本 + 金錢成本);
3、自動化測試工具介紹
3.1、單元測試工具
- Parasoft系列單元測試工具
工具名 | 語言 | 特點 |
---|---|---|
Jtest | Java | 代碼分析和動態類,組件測試 |
Jcontract | Java | 實時性能監控及分析優化 |
C++Test | C、C++ | 代碼分析和動態測試 |
CodeWizard | C、C++ | 代碼靜態分析 |
Insure++ | C、C++ | 實時性能監控及分析優化 |
.test | .Net | 代碼分析和動態測試 |
- Compuware系列單元測試工具
工具名 | 語言 | 特點 |
---|---|---|
BoundsChecker | C++、Delphi | APO和OLE錯誤檢查、指針和泄露錯誤檢查、內存錯誤檢查 |
TrueTime | C++、Java、Visual Basic | 代碼運行效率檢查、組件性能的分析 |
FailSafe | Visual Basic | 自動錯誤處理和恢復系統 |
Jcheck | MS Visual J++ | 事件分析工具 |
TrueCoverage | Java、C++ 、Visual Basic | 函數調用次數、所佔比率統計以及穩定性跟蹤 |
SmartCheck | Visual Basic | 函數調用次數、所佔比率統計以及穩定性跟蹤 |
CodeReview | Visual Basic | 自動化源代碼分析工具 |
- Xunit系列單元測試工具
工具名 | 語言 | 官方網站 |
---|---|---|
Aunit | Ada | http://www.libre.act-europe.fr |
CppUnit | C++ | http://cppunit.sourceforge.net |
ComUnit | VB、COM | http://comunit.sourceforge.net |
Dunit | Delphi | http://dunit.sourceforge.net |
DotUnit | .Net | http://dounit.sourceforge.net |
HttpUnit | Web | http://c2.com/cgi/wiki?HttpUnit |
HtmlUnit | Web | http://htmlunit.sourceforge.net |
JUnit | Java | http://www.junit.org |
JsUnit(Hieatt) | Java Script 1.4以上 | http://www.jsunit.net |
PhpUnit | Php | http://phpunit.sourceforge.net |
PerlUnit | Perl | http://perlunit.sourceforge.net |
XmlUnit | Xml | http://xmlunit.sourceforge.net |
3.2、UI自動化測試工具
工具名 | 公司名 | 官方網站 |
---|---|---|
WinRunner | HP Mercury | http://www.mercuryinteractive.com |
QTP | HP Mercury | http://www.mercuryinteractive.com |
Robot | IBM Rational | http://www.rational.com |
QARun | Compuware | http://www.compuware.com |
SilkTest | Segue | http://www.segue.com |
e-Test | Empirix | http://www.expirix.com |
3.3、性能自動化測試工具
工具名 | 公司名 | 官方網站 |
---|---|---|
WAS | Microsoft | http://www.microsoft.com |
LoadRunner | HP Mercury | http://www.mercuryinteractive.com |
Qaload | Compuware | http://www.compuware.com |
TeamTest:SiteLoad | IBM Rational | http://www.rational.com |
Webload | Radview | http://www.radview.com |
Silkperformer | Segue | http://www.segue.com |
e-Load | Expirix | http://www.expirix.com |
OpenSTA | OpenSTA | http://www.opensta.com |
注:本文內容主要來源於《測試架構師修煉之道》劉琛梅·著,版權歸作者所有,本文只是整理彙總成學習筆記,如有問題,請聯繫刪除,謝謝。