2011-05-23 69 views
1

因此,作爲開發人員,您可能需要編寫少量代碼,然後在進入其他方法之前對其進行測試以查看它是否有效。這是因爲你不想編寫成千上萬行代碼,並發現不起作用。在這裏陳述明顯。所以我和其他一些人(很快)正在開發一個PHP應用程序,我想要實現某種形式的版本控制,很可能是顛覆,因爲我們都知道如何使用它,有點。我的問題是,如何通過編寫和測試來實現上述寫作過程。使用版本控制進行軟件測試

我的想法是爲每個開發人員設置自己的工作站,包括Web服務器和php/mysql等。這樣他們可以簽出回購,然後在他們自己的計算機上進行測試。我真的很想在這裏找到一些方向。目前我們沒有使用版本控制,因爲只有兩個開發人員,我們只是使用位於Web服務器上的共享目錄。當我們進行更改時,我們可以立即在Web服務器上查看它們。對此有何意見?在應用程序的開發過程中處理多個開發人員的最佳方式是什麼?

回答

2

有許多不同的方式來處理這個:

1)每個開發者都有自己的機器上的整個Web服務器堆棧,部​​署到它,並且測試在那裏,然後檢查工作的代碼。

2)有一個單獨的測試/集成機器。開發人員輪流部署到該機器上,進行測試,然後檢查工作代碼。

3)在Subversion中使用分支。開發發生在分支上,並且可以在分支中檢查破損的代碼。每個開發者可能有一個分支,或者每個功能的分支,或者其他。開發人員檢查代碼到分支上,在單獨的測試機器上檢查它,測試,修復,然後檢查工作代碼到主幹上。

哪一個是正確的取決於你的團隊有多大以及你的服務器設置有多複雜。選擇一個對你的團隊有意義的項目。

+0

真棒,正是我想聽到的。現在我覺得選項一對我們的團隊來說可能更好,而我在問題中提出的建議也是如此。選項二將涉及到我在每次更改後都可以將代碼部署到測試機器上。每個開發人員擁有自己的堆棧的唯一問題是我們用來測試的數據庫。在這個時候複製這個數據庫的時候,當數據庫沒有完全完成時,可能會很痛苦,因爲每個結構都經常發生變化。雖然,我們可以設置一個遠程數據庫。 – 2011-05-23 19:27:25

+2

@ user766554關於持續集成服務器的答案也很好,我會認真對待它;根據我的經驗,大多數團隊都喜歡在簽入前能夠測試內容,登記入住很尷尬,然後等待失敗的電子郵件轉到你的整個團隊。如果你不得不這樣重複幾次,那不是很愉快。所以我建議*除了*我的建議,而不是*。* – 2011-05-23 19:32:49

2

你需要開始考慮一個構建服務器,使用像cruisecontrol這樣的軟件來監視源代碼的變化,然後能夠構建,運行測試和部署你的代碼(編輯:以一種方式儘可能靠近生活!)。

我會強烈建議儘快整合構建服務器,否則你會發現那下來的東西自動化,有人已經手動完成的工作在過去5年該行是比較困難:)

您可能還會發現,每個開發人員最終都會有自己的部署方法和自定義環境,將其集中在一個地方,然後讓其他開發人員使用這些腳本並從該部署運行,如果他們想要運行相同的本地處理。

配置管理是你想要開始的東西!

+0

謝謝您對CruiseControl的建議。 – 2011-05-23 19:28:39

+0

我相信其他選擇是TeamCity和Hudson。我們在工作場所使用「Go」,但它不是免費的,感覺相當不成熟。 – Lampkin 2011-05-23 19:43:12

1

CI有一個重要的事情:您只想將工作代碼推送到中央存儲庫。這需要爲每個開發人員提供一個私有存儲庫,但具有永不中斷主幹的優點。 Git和Mercurial是最明顯的工具,可以與svn一起作爲中央存儲庫。

爲了避免合併衝突,還有一招,以防止推斷碼到中央:總是拉/從第一中心合併,並頻繁,推前到:

http://martinfowler.com/bliki/FeatureBranch.html

而且看看我們贊助商:http://hginit.com有關多個開發人員的工作流示例。