質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

Q&A

1回答

2802閲覧

jenkins テスト自動化について

cmdunknwon

総合スコア6

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

0グッド

0クリップ

投稿2017/05/25 09:50

Jenkinsを導入することでテストを自動化し、工数の削減を測ろうと考えています。
導入するにあたって、色々なサイトにて調べていたところ、
ビルドの作成自体がかなり職人的な作業であるとのことでした。
そうなると、例えテストを自動化することができたとしても、
ビルドを作成すること自体に工数をとられてしまい、
結果的に全体の工数の増加を招いてしまうのではないかと危惧しています。
実際にJenkinsにてテストの自動化をはかり、運用されている方がいらっしゃいましたら、

・内容にもよるとは思いますが、ビルドを作成するのにそれなりに時間を要するのか
・ビルドの作成を行っても全体の工数は減らすことができたのか

等のお話を聞かせていただけると幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

2015年頃、同じコードベースを持ち、UIのみが異なる、複数のサイト向けに、Jenkinsでビルドと自動テストをデイリーで走らせるPJを行っていましたので、その際の情報を引き合いにお伝えできればと思います

なお、ビルド対象となるアプリの開発言語は、Java(Spring Framework)で、自動テストはJunitと、画面テストケースか(Excel)からWebDriverベースの自動テストを生成するカスタムテスティングフレームワークでした

・内容にもよるとは思いますが、ビルドを作成するのにそれなりに時間を要するのか

定時実行されるビルド自体は、シンプルなMavenビルドを呼び出すだけだったため、それほど職人的な作業ではありませんでした

同じく定時実行の自動テストも同様です

トリッキーな作業になり得そうなのは、ライブラリの依存関係を含む、先行関係があるようなビルドが発生する場合でしょうか

ここも、NEXUSを使うと、比較的ラクになります
https://terasolunaorg.github.io/guideline/public_review/Appendix/Nexus.html

・ビルドの作成を行っても全体の工数は減らすことができたのか

これは、間違いなく「はい」ですね

自動テストのカバー率次第なところはありますが、大半が自動化されているなら、毎日ビルド+テストが勝手に繰り返され、誰かがテストを通らないコードをコミットした(もしくはテストを更新し忘れた)ときには、アラートメールで警告されるため、機能改修後やリリース前のノンデグレードテストは、テスト実施コストは、ほぼゼロ化されます

また、コードが壊れていないことで、精神的にも安心して帰れます

仮に、自動テストのカバー率が低い(もしくは無い)場合でも、Jenkinsによる定時ビルド、もしくは手動ビルドを設定することで、「いつでも気軽にビルドができる」ということ自体、テスト実施前のデプロイの心理的負担を下げる、ないしは緊急リリースが必要なシチュエーションでの安心材料になります

p.s.テストレポート形式が、JUnitレポート形式で無い場合は、レポート変換ツールを作らないといけないため、手間がかかるかも知れませんが、カスタムテスティングフレームワークでも作らない限り、この課題に遭遇することは無い、と思われます

投稿2017/05/28 16:36

piacerex

総合スコア51

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問