2009-08-18 71 views
12

我們正處於一個大型項目的初始階段,並且已經決定某種形式的自動化UI測試可能對我們很有用,但還沒有完全弄清楚這將如何工作......誰在寫自動UI測試?開發人員或測試人員?

主要目標是自動化應用程序的基本安裝和運行,因此如果開發人員導致重大破壞(例如:應用程序不會安裝,網絡將無法連接,窗口不會顯示,等)測試人員不必浪費時間(並獲得由惱火)安裝和配置一個破碎的構建

第二個目標是重複的任務打交道時,以幫助測試人員。

我的問題是:誰應該創建這些類型的測試?我們團隊中隱含的假設是測試人員會這樣做,但我在網上閱讀的所有內容總是暗示着開發人員會創建它們,這是一種「擴展單元測試」。

的幾點思考:

  • 的開發商似乎是一個更好的位置,要做到這一點,因爲他們知道控制的ID,類等,並有應用程序是如何更好的圖片工作

  • 測試儀已經不知道該應用程序是如何工作的,因此可以產生

  • 我已經寫了使用一些初步的測試腳本,這可能是有用得多的優勢和White。這個工作非常好,而且足夠強大,可以完成任何事情,但是你需要能夠編寫代碼來編寫UI測試。

  • 我們嘗試過的所有自動UI測試工具(TestComplete等)似乎非常複雜和脆弱,雖然測試人員可以使用它們,但它們需要花費大約100倍的時間,並且它們不斷遇到由UI測試工具引起的「意外複雜性」。

  • 我們的測試人員無法編寫代碼,雖然他們非常聰明,但當我建議測試人員可能編寫簡單的ruby腳本時(儘管所述腳本大約容易讀寫100倍)比看起來是自動化UI測試工具的標準的按鈕和數據網格的混亂混亂)。

我真的很感謝來自其他人在開發人員和測試人員團隊嘗試過UI自動化的任何反饋。誰做了什麼,並且做得很好?提前致謝!

編輯:有問題的應用程序是一個C#WPF「富客戶端」應用程序,連接到使用WCF

回答

4

理想情況下,最終應該由QA負責編寫測試。使用程序化解決方案的問題在於讓QA人員熟悉使用該工具的學習曲線。開發人員當然可以幫助學習這條曲線並通過指導幫助完成這一過程,但這仍然需要時間,並且會阻礙開發。

另一種方法是使用一個簡單的GUI工具,它支持一種語言(和數據腳本),並使QA能夠可視化地構建腳本,只有在真正需要時才能深入瞭解語言的更精細的細節 - 開發也可以參與到這裏。

我見過的最成功的嘗試肯定與後者有關,但設置這一點是難的部分。 Selenium在簡單的Web應用程序和簡單的線程中運行良好。 JMeter也適用於Web服務的腳本化Web對話。另一種選擇是內置測試工具 - 一種在腳本語言(Groovy,Python,Ruby)頂部的簡單工具,它允許QA通過GUI或數據文件將測試數據放入應用程序中。數據文件可以是簡單的屬性文件,也可以是更復雜的結構化文件(如YAML甚至Excel)數據文件。這樣他們就可以開始基本的煙霧測試,然後將其擴展到各種情景驅動的測試。

最後......我想豐富的客戶端應用程序的方式更難以通過這種方式來測試,但它取決於語言的本質,併爲您提供的工具...

+0

我們決定選擇讓QA人員編寫基本的「存根」腳本(使用IronRuby,這非常容易讀寫),然後讓開發人員修復代碼並實現部分質量保證人員無法做到。希望它會好起來 – 2009-08-20 23:06:25

+0

也許代替Selenium就像應用程序一樣,您應該嘗試IBM Functional Tester,HP QuickTestPro,Borland Silktest或MSVS Test Edition等產品。至於web應用程序,還有專門的庫,如WebAii或WatiN,可以幫助編寫腳本。無論如何,讓您的質量保證人員學習和採用。非常像開發人員 - 每天都需要學習新東西。 – yoosiba 2010-02-04 08:02:11

4

以我的經驗服務器,測試人員誰也代碼將跳槽加薪的開發商。

我同意你關於自動化UI測試工具。我工作過的每個地方都有足夠的錢來承擔WinRunner或LoadRunner無法承擔的工作人員實際使用它。價格可能已經發生了變化,但是當時,這些價格處於高位5位數到低6位數的價格標籤(想想起家的價格)。這些產品很難使用,並且通常被保存在一個上鎖的櫃子裏,因爲每個人都害怕因爲摔壞而惹上麻煩。

+1

我開始在QA :-) – 2009-08-19 00:28:58

+1

LoadRunner的是性能測試和實際上是很難掌握。問題不在於它使用的C,而在於相關性和分析網絡流量。至於GUI自動化測試,QTP是更好的選擇。它允許通過記錄和回放來構建測試,但也可以在VBScript中編寫相同的測試腳本。仍然價格可能是問題。 – yoosiba 2010-02-04 07:56:43

1

我發現最合理的選擇是有足夠的規格,這樣QA人可以將測試存根,基本上找出他們想要在每個「屏幕」或每個組件上測試的東西,並將它們。應該對存根進行命名,以便它們對於他們正在測試的內容具有很強的描述性。這也提供了一種結合功能要求的方法。事實上,以這種方式來滿足要求是非常容易的,並且幫助非技術人員真正在他們自己的泥水中工作。

存根可以通過QA/dev人員的組合填寫。這使您能夠熟練地培訓QA人員如何編寫測試,並且他們通常會爲進一步提高工作安全性而努力。

+1

質量保證民俗會如何進行測試?他們會寫一個充滿測試的實際代碼文件嗎?或者遞給你一個滿足要求的文字文件?我認爲開發人員會用實際的UI自動化代碼填充存根(stub)? – 2009-08-19 00:06:09

+0

QA實際上是功能存根,或者其他任何可能的功能。這些名稱應該用作敏捷文檔。你應該能夠解析這個,並且在駱駝案例上運行一個簡單的分割來得到粗略的句子來排列每個需求。 – Saem 2009-08-19 21:27:43

1

我認爲讓開發人員編寫測試將是最有用的。這樣,您可以在整個開發週期中進行「破損檢查」,而不僅僅是結束。如果你進行夜間自動化構建,那麼當它們變小時,你可以捕捉並修復錯誤,然後它們會變成巨大的,吝嗇的,吃人的錯誤。

2

怎麼樣的測試人員建議測試,和開發人員實際上寫它?

+1

一般來說,開發人員都忙於編寫QA將要測試的代碼,並且沒有時間寫測試。我不知道你的公司,但是在我工作過的每一個人中,如果開發者有時間寫測試,那麼(錯誤)管理者會批評開發者,因爲開發者應該添加更多功能。 – Tangurena 2009-08-19 00:33:34

+1

雖然網絡「扭曲」應用程序看起來是沿着這種東西建模的 – 2009-08-19 00:45:28

2

我相信起初它很大程度上取決於你使用的工具。

我們公司目前使用Selenium(我們是一家Java商店)。

Selenium IDE(它在Firefox中記錄動作)工作正常,但開發人員需要手動糾正它對我們的Web應用程序所犯的錯誤,所以它不適合QA編寫測試。

我過去試過的一件事(有些成功),就是將庫函數編寫爲Selenium函數的包裝器。他們讀爲純英文:

selenium.clickButton("Button Text") 

...但在幕後檢查按鈕上的佈局和標籤是否正確,有編號等。

不幸的是,這需要很多設置,以便於編寫測試。

我最近開始意識到一個名爲Twist(來自Thoughtworks,建立在Eclipse引擎上)的工具,它是Selenium的包裝器,允許編寫簡單的英式測試。我希望能夠提供給測試人員,他們可以用簡單的英語寫簡單的斷言!

它也會自動爲新的斷言創建存根,所以測試人員可以編寫測試,並在需要新代碼時將它們傳遞給開發人員。

+0

這基本上是我用我的ruby腳本(抽象白色框架)所做的。我有類似「ok_button = window.find_button(」OK「); ok_button.click」 – 2009-08-19 00:46:32

4

在我最終切換到測試和測試自動化之前,我作爲應用程序開發人員工作了7年。測試比編碼更具挑戰性,任何想要成功的自動化開發人員都應掌握測試技能。

前段時間我在一些博客文章中將我的想法放在技巧矩陣中。

如果有興趣討論:

http://automation-beyond.com/2009/05/28/qa-automation-skill-matrices/

感謝。

+0

「的代碼哦,對於安裝和基本的貫穿式自動化,沒有實際的功能測試,您並不需要QTP或TestComplete。 嘗試AutoIt(它是免費的)。 – 2009-08-28 13:53:21

+0

我非常懷疑任何質量保證工資與優秀開發人員的薪水相匹配,因此從開發人員轉向質量保證似乎是一件奇怪的事情,職業明智。說'測試比編碼更具挑戰性'是一種非常基於觀點的行爲。我做這兩件事,寧願編碼更多 – vsync 2016-01-20 14:47:52

0

我認爲這主要取決於測試團隊的技術水平,可用的工具以及開發人員和測試人員如何相互交互的團隊文化。我目前的情況是,我們有一個相對技術性的測試團隊。所有測試人員都應具備開發技能。在我們的例子中,測試人員編寫UI自動化。如果你的測試團隊沒有這些技能,他們將不會成功。在這種情況下,開發人員可能最好爲您編寫UI自動化。

其他因素需要考慮:

什麼其他的測試任務是在測試者的板? 你的客戶是誰?他們對質量有什麼期望? 開發團隊的技術水平是什麼?他們願意承擔測試自動化工作的意願是什麼?

-Ron

相關問題