プロジェクト管理用ツールとかの簡単なメモ
自分には全然知らない領域の話。とりあえず調べたことをメモ。
開発ツールの用語の一言説明と、代表的なツール(ソフトやサービス)を書いています。
自分はgit以外のほとんどのツールを使ったことがないので、書いてる内容は多分に偏向してると思います。
変なところは突っ込みを入れてもらえるとありがたいです。
バージョン管理システム
プロジェクトのバージョン(差分)を管理する。
- Git 分散型 ブランチ切るのとマージするのが早い 小規模プロジェクト・OSS向き
-
Gitは自由すぎて計画的に使わないと破綻する。参考:見えないチカラ: A successful Git branching model を翻訳しました
- Gitoliteなどのリポジトリ管理システムを使えばアクセス制限とかも可能
-
- Subversion 集中型 細かいアクセス制限とか部分的コミット/チェックアウトとかできる 大規模プロジェクト・権限の差が大きなプロジェクト向き
- CVS 集中型 最近はあまり使わない
- Mercurial 分散型 gitほどの自由度はないがその分使いやすく、ディレクトリ別管理もできる。バイナリファイルの扱いも高効率
- Bazaar プロジェクト管理もできるらしい
バージョン管理システムのクライアント
GUIでバージョン管理システムを使えるようにするソフト。
- TortoiseSVN windowsで使えるsubversionのクライアント
- TortoiseGit
- TortoiseCVS
- TortoiseHg Mercurialクライアント
- EGit Eclipse上で使えるgitのクライアント そんなに高機能じゃない…
- SmartGit
- Tower Mac用のgitのクライアント
- tig ターミナルで動くgitブラウザ。GUIじゃないが
プロジェクトホスティングサービス
バージョン管理ソフトが利用するホスト(サーバー)+α(簡易プロジェクト管理システムなど)を提供するサービス
- GitHub gitのリポジトリを管理できる
- ごく小規模なプロジェクトなら、githubの簡易プロジェクト管理機能は十分に便利。
- Google Project Hosting subversion・mercurial・gitのリポジトリを管理できる あとwikiとか
- SourceForge
- CodePlex
- BitBucket
- Gitorious
プロジェクト管理ツール(バグ管理システム)
プロジェクトの管理ポータル的な物(チケットシステムや工数管理機能など)を提供する。ロードマップとか生成する。
継続的インテグレーションツール(CI)
プロジェクトの定期ビルド・テストを行う。
テスト管理システム
具体的なテスト方法を管理する何か。CIから呼ばれたり、コミット時に呼ばれたりすることも。
- Maven プロジェクトライフサイクル(ビルド方法や依存関係)も管理する(のでテスト管理システムというのは語弊がある? )
- TestLink
- Selenium WebDriver ブラウザ介してjsテスト
- Javascriptのテストってすごく難しそう。参考:JavaScriptのテストについて本気出して考えてみた(1) - 愛と勇気と缶ビール
- Native Driver