たぷつきません

おなかがでてきた。もうたぷついてるやん。

開発環境フルスタック的なもの

 仕事の機会で、3日前に情報収集した内容です。javaに限らないとは思いますが、java前提で書いてます。

開発上のプラクティス

  • SCM,ITS(BTS),JUnit,Jcoverage,check-style,FindBugs
    • これらをIDEやCIに統合する。
  • 負荷テスト,プロファイラ,監視ツール
    • 人の手を介さないとならないかな。

項目詳細














タイトル 製品例

SCM

OSS

Concurrent Versions System (CVS)
OSSでは標準的な存在。
Subversion (SVN)
 

プロプライエタリ

Microsoft Visual Source Safe (VSS)
強制ロックがデフォルト。異なる場所の共有リンクといった機能がある。IDEプラグインVisual Studio以外では、個人ユーザがEclipse用に作成したプラグインがある。
IBM Rational ClearCase
標準的な機能に加えて、ビルドとリリース管理、メインフレームIBM System Z)対応がある(LT版以外)
Perforce
Perforce Software, Inc.(代理店:東陽テクニカ)製。Webコンテンツ管理機能も含む。


IDE

OSS

Eclipse
 
NetBeans
 

プロプライエタリ

SUN Java Studio Creator
 
Oracle JDeveloper
 
IBM WebSphere Studio
 
Borland JBuilder
 


ITS(BTS)

OSS

Mantis
次の特徴を持つ。
    • マルチプロジェクト管理
    • Eメールによる通知
    • カスタム項目追加
    • 操作履歴管理
    • CSV,WORD,Excel形式出力
    • Wikiとの統合
    • 構成:Apache(or IIS)、PHPMySQL
影舞
ruby製国産ITS。次の特徴を持つ。
    • 簡単にインストールできる
    • 簡単に使える
      • Webベースでのプロジェクトの作成・設定変更・削除
      • 新規アーティクルの投稿、リプライ、状態・カテゴリ管理もWebから
      • 投稿・リプライをメールやRSSで通知
      • メールでも投稿・リプライ可能
      • レポートの検索
      • データベースがなくても動く
      • PostgreSQL/MySQL/SQL Serverを用いたデータ保存もできる
    • 日本語がおおむね正しく扱える
Trac
Edgewall Software.社製。次の特徴を持つ。
    • SVNとの統合をメイン機能としている。
    • Subversionリポジトリビュアー(過去のリビジョンにいつでも切り替え可能)
    • Wikiとの統合
    • 管理画面がなく設定ファイルを直接修正する必要がある。
    • 課題管理としての機能は低い。統計情報も取れない。
    • 多くのメジャーOSSプロジェクトで実績がある。(SpringIDE、NamazuRuby on Rails
    • 構成:ApachePython、DB(SQLite, PostgreSQL)、Subversion
Palpilio(http
//www.valtech.jp/papilio.htm):国産。商用フリーのOSS。株式会社バルテック製。次の特徴をもつ。
    • サーバ構築不要。P2Pでデータ共有。
    • Eclipseプラグインのみで実現。
    • 信頼度成長曲線などのレポート出力機能。
    • 最新状態を常に保つためには、結局同期用クライアントを常時立ち上げる必要がある。
    • 構成:Eclipse3.1/3.2、Windows、JDK1.4/5.0
Scarab(すからべ)
Java製ITS。次の特徴を持つ。
    • Web からほぼすべての設定を行うことができる管理コンソール
    • 複数プロジェクト管理(Module)
    • ユーザアカウント管理
    • プロジェクト毎のユーザ権限管理
    • Issue の柔軟な検索と検索手順の保存と再生 (Query Save)
    • 関連する Issue 同士を結び付け、依存関係を管理 (Dependencies)
    • 投票による意思決定支援機能 (Voting)
    • Issue への担当者割り当て
    • mail での担当者、プロジェクトメンバーへの通知 (Notification)
    • Issue に関連するファイルをアップロード
    • Issue にコメントを掲示板のように追記可能
    • 2種類のレポート作成機能
    • XML の Import/Export
    • 構成:Appサーバー:Tomcat4.1が設定済みで同梱。DB:MySQL, PostgreSQL, Oracle, MSSQL, Hypersonic
XPlanner
Java製ITS。次の特徴を持つ。
Bugzilla
MozillaBTSにもなっているBTSの草分け的存在。ただし使い勝手が複雑なせいか、競合製品が多数出ているという背景がある。

プロプライエタリ

JIRA
Atlassianソフトウェア (日本代理店:ImaHima)製ITS。次の特徴を持つ
    • 非営利団体、OSS団体以外は有償(Seasar.orgでも利用)。
    • 課題のワークフローを設定可能。
    • 課題単位にセキュリティレベルを設定可能。
    • 認証などLDAP連携が可能。
    • Eメール通知以外に、RSSXML-RPCSOAPなどのI/Fを完備。
    • Excelに課題一覧を出力可能。
    • 構成:JDK1.4以上、スタンドアロンサーバー実行またはServlet2.3/JSP1.2以降準拠のAppサーバ、DB:内臓, MySQL, PostgreSQL


参照
他にいくつも種類がある。http://www.opensourcetesting.org/bugdb.php


CI

OSS

Continuum
Mavenでできるものは全て扱えるので次のようなものも自動化できる。
Bitten
Tracプラグイン。設定-ビルド実行-レポートまでをTrac上で一元管理できる。
Luntbuild
以下の特徴を持つ。
hudson
新進気鋭のCIツールhttps://hudson.dev.java.net/


プロプライエタリ

QuickBuild
Luntbuildの有償版。以下が強化されている。
    • UIの操作性向上
    • 複数OSで分散ビルド
    • 対応SCMとビルドの拡充
    • JIRAプラグインでJIRAと連携


負荷テスト

OSS

JMeter
Java製負荷テストツール
    • テストケースが多いと落ちる(GUIのグリッド行を増やしたり、記録をメモリ上に持ったりしてOut Of Memoryに達する)。
    • UIが複雑。
    • 集計結果を保存しても正しく復元して表示できない。
grinder
Java製負荷テストツール
    • 軽量で軽快。
    • エージェントを複数のマシンに分散して実行し、センターとなるプロセスに集計結果を収集できる。
    • 自動的に記録したスクリプトが最初からセッションを考慮したものになる。


プロプライエタリ

Microsoft Stress Tool
使用はフリー。
    • 初めて使う人でも直感的に使える。
    • レポート機能のみでグラフはない。
    • MDBACCESS-DB)に記録する。


プロファイラ

Netbeans Profiler
 
TPTP(Eclipse用)
依存するプラグインが多くセットアップが困難。
memleak(BEA JRockit付属)
 


監視

JConsole(SUN JDK付属)
 
jrcmd(BEA JRockit付属)
各種シグナルをJavaプロセスに発行して、Javaプロセスのログとは別に情報を収集することができる


Webブラウザでのテスト

OSS

Selenium
Webブラウザから再帰テストが行えるツール
    • Selenium IDEで操作によってスクリプトを記録
    • 細かなテストケースは直接スクリプトを編集
    • カテゴリ単位や一括など、JUnitと同様の使い方ができる。
    • 一括テストだけでなくステップ実行もできるため、テストしていないケースも発見しやすい。