2009-10-20 107 views
2

我在我目前所在的公司擔任軟件工程師。隨着時間的推移,我是唯一願意或有能力承擔各種系統責任的人,所以我被「晉升」成爲IT經理。現在,在我擔任軟件工程師的時候,我會爲將要構建的各種軟件模塊創建功能測試,因此,即使在今天,我也能夠快速測試我所從事的系統的各個部分。然而,這裏有一個龐大的代碼庫,其他各種開發人員在這裏工作的時候幾乎沒有覆蓋。如何啓動自動化測試?

現在,IT經理,我希望能夠以測試該系統的所有部件都工作,但有:

A),致力於打造代碼的測試覆蓋無預算的時間

B)沒有從「首席軟件工程師」開始創建測試套件以幫助我監控軟件運行的願望。

我不希望軟件團隊放棄他們正在做的所有工作,並花費2周的時間來創建測試套件,但如果他們隨着時間的推移開始擴展測試套件的覆蓋範圍將會很好,因此我可以確認各個部分的系統正在工作。

因此,如何讓軟件團隊開始構建測試套件?

其他注意事項:

A)我仍然要求做軟件項目除了管理我們的IT部門(在UNIX工程師,桌面支持的人,以及相關的辦公和生產設備)

乙)我的Unix管理員很難讓生產系統運行完整的代碼庫,而且我們沒有從軟件團隊那裏得到很好的幫助。他無法運行任何類型的診斷,以查看Web應用程序在新安裝中失敗的位置。該公司的副總裁不斷告訴我,在代碼中進行print_r查看發生了什麼。這太糟糕了!

回答

1

這是一個很好的問題。如果有一個正確的答案,更多的軟件項目將會成功並提供高質量。

我不認爲,自上而下做出這樣的改變是一個好主意。它必須由開發者自己驅動。因此,在TDD方向進行培訓會很好,但這需要很長時間,這需要時間。

如果你想要更快的解決方案,你應該考慮功能,驗收和系統測試。通過這些測試,您可以測試幾乎整個應用程序的所有層。如果您正在開發Web應用程序,則應該使用Selenium來自動化測試。用它創建測試很容易(Selenium IDE)。

但是僅使用這些測試(不是單元測試)不會給你來自TDD的優勢。

自動化測試是至關重要的。

1

你有測試或質量保證團隊嗎?

我首先會看到他們是否有測試用例來驗證構建。如果沒有,您將不得不開發這些測試用例來測試產品的核心功能。

下一步將自動化測試用例。

如果應用程序開發不良,沒有任何故障排除工具或調試功能,那麼在將這些應用程序添加爲下一版本的需求之前,這將非常困難。

我的2美分。

+0

沒有測試團隊,沒有質量保證團隊......開發團隊基本上對自己的質量保證負責。他們認真對待質量保證,但他們不通過測試套件自動進行質量保證測試以進行驗收測試。 – Zak 2009-10-20 21:26:43

2

首先,您需要調查「測試驅動開發」,以便您可以很容易地用開發人員理解的方式和管理方式對其進行解釋。由於您似乎正在開發Web應用程序,並且您有專業技能,所以我建議您採取措施並選擇一款用於測試Web應用程序的開源工具,安裝它,然後開始爲自己開發的任何內容構建測試。

Twill是您需要的那種測試工具的一個示例。

然後,作爲經理,您需要吸引開發者關注您的榜樣,並獎勵他們這樣做。並懲罰他們,當他們不使用測試框架,並導致可預防的問題。只要你遇到這樣的事件,你就應該能夠讓你的老闆上船,並獲得一些動力。總體而言,請記住,目標是做更少的工作以獲得良好的結果。偷工減料是減少工作量的一種方式,但會導致產生不良或嚴重不良結果的風險。讓管理層瞭解風險級別和潛在風險成本。

不要只是強迫人們爲了測試而做測試。它必須幫助他們提高生產力,所以要仔細選擇第一個項目。

1

我不得不不同意michaelkebe--這些變化需要執行層的支持,除了一些關鍵的開發人員,才能完全成功。

如果沒有這種支持,你會成爲一些開發人員,他們看起來像是在浪費時間爲已經工作的東西編寫測試。

需要有一個清晰的視野,並且需要經常大聲地重複。

我並不一定要在這裏提倡敏捷,但通常這是商業用戶的點擊次數。

如果您可以在此銷售它們,那麼您感到興奮的事情(提供軟件快速,易於維護,自動化測試等)將落實到位。