2009-10-20 73 views
2

我一直在做一個應用程序,我自己,我處於一切都很好的階段 - 只要用戶做他或她應該做的一切。 :-)該軟件需要進行更多的測試,以瞭解它的穩健性,以及人們在重複點擊同一個按鈕,嘗試打開錯誤的文件類型,將數據放在錯誤的地方等等時的工作情況。你如何壓力測試你自己的軟件?

我在這方面遇到了一些麻煩,因爲對於我錯誤地使用應用程序而言有點困難。這些都是我的邊緣情況。儘管如此,我仍希望儘可能使應用程序穩定且經過充分測試,然後才能開始將其提供給beta測試人員。假設我現在不是在談論僱用專業測試人員,我很好奇你們是否有任何提示或系統的方式來思考這項任務。

謝謝,一如既往。

+2

那麼,這就是beta測試者的用處 - 如果它在你給它們時立即完美運行,那麼讓它們四處看起來似乎有點無用。 – Corey 2009-10-20 22:59:12

+0

http://stackoverflow.com/questions/1484687/self-testing-tips – 2009-10-20 23:09:46

+0

應該是社區wiki – DaveParillo 2009-10-20 23:19:14

回答

2

那麼它聽起來像你說的是兩個不同的東西 「測試您的應用程序的功能」和「壓力測試」(這是你的問題的標題)

壓力測試是當你有一個網站,想要檢查它可以同時服務100,000個人。瞭解您的應用程序在壓力下的表現。您可以通過多種方式來完成此操作,例如記錄一些操作,然後讓多個代理機器同時觸發您的應用程序。

這個問題聽起來更像是質量保證問題。這就是測試人員/測試人員的職責。但有些東西可以讓你自己來驗證你的應用程序儘可能地發揮作用。

單元測試你的代碼將是一個好的開始,它可以幫助你嘗試和發現那些邊緣情況。如果你的方法需要像ints這樣的東西,可以嘗試傳入int.max,int.min,然後看看它是什麼。將零點傳遞給所有事物。如果你使用的是.Net,你可能想看看PEX,它會經歷你的應用程序擁有的所有分支/代碼路徑。這可能會幫助您進一步優化單元測試,以儘可能地測試應用程序。

集成測試,看看你的一些平常的事情發生了什麼。這將有助於您在稍後開發時發現錯誤。

這些是一些快速提示,您可以嘗試查找可能錯過的邊緣案例。但是,是的,最終您需要將應用程序傳遞給其他人進行測試。只要確保在擊中它們之前儘可能多地覆蓋它們即可:-)

+0

是的,我認爲質量保證可能是一個比壓力測試更好的術語選擇。感謝您的評論。 – 2009-10-21 00:33:29

0

確保在單元測試和集成測試中有足夠的代碼覆蓋率。

使用適當的UI驗證以及可以破壞它的測試組合。

我發現一個結構良好的應用程序可以減少UI中可能的排列次數(用戶可以打破它的方式)有很多幫助。像MVC這樣的設計模式在這方面可能會特別有用,因爲它們可以讓您的UI更薄。

0

自動化。

(Re)考慮你的代碼,以便另一個程序可以拋出用戶事件。創建用戶事件的簡單腳本並將它們播放回您的程序。從測試版用戶處捕獲事件並將其保存爲測試腳本(可用於複製問題和檢查迴歸)。編寫一個模糊測試器,對腳本進行小的隨機更改,並針對您的程序進行嘗試。

有了這種自動化,你可以強調和應用,並發現明顯的問題,如緩存和內存泄漏。它不會測試實際的功能。對於功能,單元測試可能會有所幫助。有大量的單元測試框架可供嘗試。選擇一些有用的東西,學會編寫好的測試,並將它們集成到構建過程中。