java

JUnitコードの自動生成も出来る古の神Eclipseプラグイン「CodeProAnalytix」は今でも使える

投稿日:2019年7月15日

デスマーチPM「各社のPG進捗が遅れていてユニットテストを書く暇が全く無いんですよ、なにかいい手は有りませんかね・・・? 因みに本プロジェクトはカバレッジ100%で請け負っています!(キリッ)」

何故100%確約したのかとか先にUT書けばとか無限に出てくる言いたいことはさて置き。

数十億のお金が掛かった、中抜きが常態化していて様々な下請け会社が参画している大規模プロジェクトのPMから囁かれる「地獄」へのお誘い。

身の回りでそんな悪魔からの囁きは有りませんか?

無くても有った時の為に何かしら切り抜ける方法を持っておきたいところです。私はこの危機を過去10年で2回、Eclipseプラグイン「Code Pro Analytix」のお世話になって切り抜けました。

もう開発も止まってるプラグインですが、こいつ・・・まだ動くぞ。

環境

  • Windows 10
  • Pleiades-2019-03

Code Pro Analytixとは

2010年、GWT(Google Web Toolkit)を効率的に開発する為の有償製品を販売していた「Instantiations」社をGoogleが買収。

当時はもっとGWTを流行らせたかったでしょうから、同社の製品を無償で公開、その流れで同じく有償製品だったCode Pro Analytixも無償で使えるようになりました。

2010年当時は神レベルの評価を受けていた同Eclipseプラグインですが、現在はGoogle Codeの閉鎖と共に開発は終了しています。

2011、12年辺りにリリースされたEclipse3.7用のものが最新版で、かつ配布サイトが無い為個人サイトに点在するだけになっており、幻のプラグインになりつつあるのが現状です。

インストール

下記からプラグインzipをダウンロードします。

解凍して出来たディレクトリから「features」「plugins」二つのディレクトリをEclipseの配下ディレクトリにコピー。「CodeProAnalytix」以降は作成してください。

「pleiadesルート\eclipse\dropins\CodeProAnalytix\eclipse」

Eclipseを再起動することで有効になります。

現代のEclipseでも動く機能

Eclipse上のプロジェクトを右クリック→「CodePro Tools」で使える機能がティアダウンされます。

「依存関係の分析」。呼び出しが分かるので初見のプロジェクトを分析する時に便利なんですよね。

次に本命の「Generate Test Case」。
業務ロジックに対してJUnitテストコードを生成してくれます。

時代的にJUnit3のコードなのが残念ですが、全クラスのテストコードを生成してくれます。例えば「demo」プロジェクトに対して実行すると「demoTest」プロジェクトを作ってくれて、~Test.javaを生成してくれます。

後は生成されたテストコードをdemoTestからdemoプロジェクトにコピーすることでJUnit実行することが出来ます。自動生成されたテストコードが、既存のテストコードとバッティングしないのがいいですね。

いやー、動くもんです。

自動生成は出来るけど

一瞬で全クラスのJUnitテストコードが出来ました。これを雛型にすればデスマーチプロジェクトの進捗を助ける一助にはなるかも知れません。

最近はEvoSuiteのような代替ソフトウェアがありますが生成されるコードが大分複雑な印象があります。それに比べてCodeProが生成するコードはシンプルなのでJUnitのバージョンを上げる際にも置換が効きやすいです。

ただどれを使うにせよ、網羅率を上げる為の生成なので中身のあるユニットテストは当然ながら行えていません。

業務ロジックの要件を満たし、想定外のバグを検出し、継続して実行出来るようにする普通のユニットテストコードが必要です。最初からUTコードを書いておけばこのプラグインに頼ることも無いですし、入れなくて済むならそうしたいところです。

それにしても、デスマーチになる要因は上流にある場合もあれば下流にある場合もあるし、大規模人月プロジェクトは難しいですね。

精神的な健康の為にも出来るなら近寄らないようにしたいものです。

-java
-,

執筆者:

関連記事

Stripe + Javaでオーソリ(与信の確保)を実装する

Stripeでチャリンチャリン、サービスを開発するエンジニアにとっては夢がありますよね。 例え自分で個人的に売るものが無かったとしても、Web決済システムを構築できるノウハウを持っておけば、公的な仕事 …

Jerseyで開発したRESTで任意リファラからのCORSアクセスを許可する

package jp.hoge.filter; import java.util.Properties; import javax.servlet.http.HttpServletRequest; i …

Javascript(暗号化JSライブラリ「Forge」)とp12ファイルで署名値を作成、Javaで検証する

前回、送信データの改ざんを検知する為、簡易的なセキュリティトークンであるPKCS#12形式のファイルを作成しました。 One IT Thing  10 Pockets開発用のPKCS#12フ …

IPAmj明朝のttfファイルをJVMに読み込ませてSwingで表示(要Java11)

目次1 はじめに2 Java11でSwingがIVSを認識するようになった3 Java Swingソース4 動作確認4.1 Java 8(1.8.0_202)で実行4.2 Java 11(11.0.2 …

Doxygenでspring-frameworkをドキュメント化

以前にspring-frameworkのソースリーディングが出来る環境をOpenGrokで作りました。One IT ThingOpenGrokをインストールしてソースリーディング環境を作るhttps: …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。