2010-05-24 64 views
1

我是相對較新的白盒測試世界,需要幫助設計我目前正在從事的項目之一的測試計劃。目前我只是尋找可測試的代碼片段,然後爲此編寫一些單元測試。我以某種方式感覺到,這遠遠不是它應該完成的方式。請你能告訴我如何最好地爲測試這個項目做好準備嗎?我可以使用的任何工具或測試計劃模板?正在使用的語言是C++,如果它會有所作爲。如何計劃白盒測試

回答

3

白盒測試的目標之一是覆蓋代碼語句的100%(或儘可能接近)。我建議找到一個C++代碼覆蓋工具,以便您可以看到您的測試執行的代碼以及您錯過的代碼。然後設計測試,以儘可能多的代碼進行測試。

另一個建議是查看if語句中的邊界條件,for循環,while循環等,並針對任何「灰色」區域,假陽性和假陰性測試這些條件。

您還可以設計測試以查看重要變量的生命週期。測試他們的定義,他們的使用和銷燬,以確保他們正確使用:)

有三個想法讓你開始。祝你好運

2

目前我只是尋找可測試的代碼片段,然後編寫一些單元測試。我以某種方式感覺到,這遠遠不是它應該完成的方式。

人們說的「test driven development」的主要好處之一是,它ecourages你在考慮可測試性設計的組件:它使你的組件更容易測試。


我的個人(非TDD)的方法如下:

因此,我的測試不是'白盒子',除了我正在對被測試的功能進行反向工程。然後我測試反向工程功能,並避免有任何無用的(因此未經測試)代碼。我可以(但不經常)使用代碼覆蓋工具來查看黑盒測試執行了多少源代碼。

+0

但是,如果產品已經實施,剩下的就是測試,會發生什麼? – Draco 2010-05-24 08:23:10

+0

@Draco如果你沒有經過測試或知道如何測試它,那麼我不知道會發生什麼;但它聽起來像沒有被證明是值得信賴的實施。 – ChrisW 2010-05-24 08:37:17

+0

就是這樣。我沒有做任何實施。我所做的只是測試(即白盒)。開發人員在某種程度上進行測試,但我在那裏也可以提供幫助。 – Draco 2010-05-24 08:47:14

2

嘗試「修改代碼的工作」:http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

這是由「傳統」,因爲相關他的意思是沒有測試的代碼。這也是一本相當不錯的書。

相關工具有:http://code.google.com/p/googletest/http://code.google.com/p/gmock/ 可能還有其他的單元測試和模擬框架,但我對這些很熟悉,我推薦他們高度評價。

+0

我喜歡這些工具 - 對於Java:JUnit,Mockito;對於C#:NUnit,Moq。如果您正在進行白盒測試,您可能會在更嚴格的模擬框架中找到更多價值 - JMock,EasyMock和RhinoMocks。 – Lunivore 2010-07-20 12:36:54