Quest Code Tester為什么會吸引你
QCTO的發布會直接引起四類人的興趣,而間接的引起一類人的信息。直接感興趣的人包括程序員、DBA、QA測試人員和經理。間接感興趣的人是客戶或者終端用戶。為什么像QCTO這樣的工具會引起這些人的興趣呢?
對于程序員來說,測試PL/SQL代碼常常有一些問題。其一,對他們來說沒有像Mercury 公司WinRunner類似的工具。對于PL/SQL程序員來說,這就意味著沒有自動化測試、測試案例庫或者報告測試結果工具。其二、和數據庫測試有關的一個(巨大的)障礙是很多測試將影響到現有的數據。你執行了一個測試,即使是部分失敗了(或者部分成功,這決定于你的參考對象),你的測試環境也已經變化了。這種效果也被稱為破壞型測試。其三的問題是測試代碼用后就被扔掉。你花費了精力來編寫測試代碼,為了檢查完一行數據是否插入到了表中,在你的下一個開發項目中,你可能需要又重寫一樣的代碼。
對于DBA來說,能夠編寫PL/SQL是如今一項必備的能力。你能夠寫出專家級別的代碼?不,但是你應該有一定程度的競爭力。拿大學中的專業做類比,數據庫管理是你的主修專業,而PL/SQL編程則是你的輔修專業。擁有強壯的測試工具可以彌補相當的技巧。插入一條記錄到數據庫表中不會讓你撓頭,對吧?下面,請說出在你插入一條記錄到表中的可能會遇到的六種錯誤或者異常。這就是我所想的。我們等會再討論這個問題。
對于QA測試人員來說,無論是測試工程師、軟件質量保證人員(software quality assurance ,SQA),他們的時間花在系統/功能/壓力測試上,而不是單元測試上不是更好嗎?是的,在單元級會有一些檢查,但是你作為程序員/DBA也應該有義務檢查自己的代碼。如果程序員僅僅是寫代碼然后扔給辦公室另一邊的其他人去測試,那么這個組織機構是效率低下的。這是在浪費精力,但是似乎有無數的由于這個原因(對部分程序員拙劣的質量控制)而導致的開發項目失敗的故事和例子。
作為經理,想想數據庫代碼被徹底的測試所增加的價值,甚至更好的情況,你終于有了獨立于任何程序員的測試代碼庫。當程序員為了更好的薪水而離開的時候會發生什么?你的組織結構/開發團隊會損失一整套知識。有了QCTO,這部分知識和程序測試會被保存下來。這僅僅會造成稍微的負面影響:你需要為程序員們熟悉任何測試工具而支付時間和金錢(比如,WinRunner是2600美元4天),但是結果是全面的生產力得到提高。
最終,你的產品會給最終的用戶留下什么印象?如果你的公司正在賣一個應用軟件,為什么你不想去宣傳你的應用程序經過了多么徹底的測試?如果你的產品是良好的,你還會花錢四處宣傳嗎?作為一個第一線的IT專家,你可能還沒有收到到RFP(RFP ,Request for proposal,就是征求建議書,發單人向數家承包商征求解決方案建議時,向外招標發放的一種文件)。在RFP中包括關于你的公司的軟件開發過程的現象現在已經不少見。在QA/單元測試方面能夠精心實施的能力會讓你領先你的對手。
從Quest Code Tester可以獲得什么?
開始,你可以獲得免費的指南,包括一步一步的例子、充分的文檔、訪問用戶社區、代碼樣本、產品支持、公道的定價和試用免費的版本。QCTO會帶來很多的功能和好處。這個產品方便下載、安裝和使用。47頁的PDF快速入門,而且幫助(在產品中)內容詳實。QCTO中的Flash videos會講解如下的內容:
- 介紹和概要
- 對表、視圖、查詢和光標變量的測試
- 對集合(collection)的測試
- 對記錄的測試
- 對全局變量和表達式的測試
- 對文件內容的測試
- 對異常、系統輸出和時間花銷的測試
- 提示和技巧
所有的內容都包括在視頻中演示的代碼,這樣你可以在方便的時候回去在試一試這些測試代碼。這個庫的第二個好處是這些測試代碼可以作為很好的例子或者用于你自己環境中的原型。
Quest Code Tester非常優雅的功能
接下來,將介紹快速構建(Quick Build)的功能。它里面有很多模板一樣的測試用例,你可以方便的拖放到測試準備框架中,F在回到前面的關于在插入數據會遇到的六個錯誤或者異常的問題(我本來可以問七個的),下面一張圖中顯示了只要你鼠標點一下就可以獲得這些錯誤。
對于每一種異常,最后的結果會在特定的錯誤發生之后進一步的描述。舉一個例子,假設你在插入數據的過程中遇到了DUP_VAL_ON_INDEX(索引上出現重復值)的異常。在這個錯誤發生之后表的狀態是怎樣的?理想的情況,表沒有發生任何變化,但是你如何才能檢查或者驗證這個希望的結果?
一種測試是比較錯誤發生之前和之后的記錄行數,而另外一種測試是驗證哪一種錯誤真正的發生了(而不是其他類型的錯誤)。出于好奇心,Oracle中的哪個錯誤是和DUP_VAL_ON_INDEX相關的?第一個錯誤是我記得住的, 這個錯誤試圖攻擊Oracle做的最好的事情:防止違反唯一性約束, 否則就報ORA-00001.
這個應用的狀態
Quest Code Tester處于開發階段。我使用的版本是1.5.2。超過70個bug或者是增強在上一個版本中解決了。和TOAD用戶社區類似,Quest樂意接受幫助產品做的更好的意見和反饋。當你自己評價這個產品的時候,想想PL/SQL開發人員的世界中有多久都沒有出現像QCTO這樣完整的工具了。很明顯在QCTO的開發中投入了相當的精力,并且它并沒有寫的很爛然后就不負責任的丟給用戶做QA的工作。
我的一個建議可能是將詳細/簡潔的模式結合在一起。在Step1中的套話可能會讓你在使用了100次快速構建準備測試之后感到厭煩。
結論
在這篇評論的第二部分,我將深入討論安裝的細節以及如何使用該工具完成代碼測試。下面列出了網址,你可以從中了解更多關于Quest Code Tester的信息。
- 產品信息 http://www.quest.com/code-tester-for-oracle/
- 知識庫 http://www.unit-test.com/Presentations/library.php
- 下載地址 tdefid=12476">http://www.quest.com/2_0/registration.aspx?requestdefid=12476
下面的幻燈片 (來源于Feuerstein 強調關鍵的部分的介紹視頻) 抓住了需要QCTO 完成的功能的精髓,F在標題“Wouldn’t it be wonderful if…”可以被換成 “Isn’t it wonderful that Quest Code Tester does…”
文章來源于領測軟件測試網 http://www.kjueaiud.com/