スキップしてメイン コンテンツに移動

投稿

ラベル(Continuous Integration)が付いた投稿を表示しています

CIサービス(アプリケーション)一覧

最近はCI用のサービス(アプリケーション)もクラウド上で提供されていたり、レポジトリサービス側から提供されていたりとずいぶん状況が変わってきました。 2012年ごろにCIの記事を書いたときに比べて格段の進化です! 今回の投稿では、最近利用できるCIサービスについてまとめてみました。随時情報は更新していきます。 名称 公式サイト 開始日 特徴 Jenkins https://www.jenkins.io/ 2011年2月20日 もともとはHudsonというプロジェクト。 オリジナルの開発者は日本人の川口耕介氏 (今もテストまわりの改善のために活躍されています!)。 歴史が長く、情報も豊富。 Pluginがとのかく豊富。 Pipeline機能があり、複雑なビルド処理もJenkinsfileを定義することにより管理できる。 Jenkinsfileには、Declarative PipelineとScripted Pipelineの2種類の書き方がある。 Teamcity https://www.jetbrains.com/teamcity/ 2006年10月2日 Jetbrains社提供。IntelliJ、PHPStorm、ReSharperなどのIDEの提供で有名な会社。 ローカルの変更をコミットせずに実行するRemote Runという機能もあり。 Bamboo https://www.atlassian.com/software/bamboo 2008年7月24日 Atlassian社提供。JiraとかConfluenceで有名な会社。 Circle CI https://circleci.com/ 2011年 クラウドとインストールバージョンの両方が提供されているが、クラウド版の方が有名。 GitLabやBitBucketなどの

Measure Code & Improve Team Based Software Development

Introduction In this post, I'm going to write about "Why & How to measure your code of software project. And improve it." I am going to mainly write about this topic from the static code analysis point. Why Measure? There are number of reasons to measure your code. For me especially following reasons (or intentions). Daily Health Check Keep code base clean See impact on entire code base by your code change Detect problems as soon as possible Feel improvement! Let every team members show what happens Monitor test result status Follow coding standard Especially in team based software development, a lot of people change code for different task. And each developer is hard to know what each developer change the code for what purpose. If the source code measurement is public for everyone, it helps everyone to know affect of entire project which the other developers make. What to Measure? There are a lot of measurement is proposed but from static

Automated Testing: Pairwise Testing, Mutation Testing, CI, TDD

I Introduced basic techniques for automated testing in the following posts. Unit Test by JUnit Parameterized Test Mock Test Theory Test In this post, I mention some hints for software testing. Pairwise Testing It is unrealistic to test all the combination of parameters because the number of the tests increase explosively. Pairwise Testing aims to redeuce the number of tests with enough test quality and coverage by providing effective and enough combination of test parameters. This MSDN: Pairwise Testing in the Real World: Practical Extensions to Test-Case Scenarios helps your understanding Pairwise Testing. The article also introduces the tool for Pairwise Testing. Mutation Testing Change the logic in the test target code (for example, change reverse an inequality sign in the "if" condition check), and check if the test result is changed (= the test case can detect the code change). Mutation Testing is "Test for test" - verifying the effectiveness of

Continuous Integration

最近、継続的インテグレーション(CI:Continuous Integration)の環境の構築に励んでいるので、CIツールを紹介したいと思います。 TeamCity JetBrains 社が販売している分散ビルド管理(Distributed Build Management)と継続的インテグレーション(Continuous Integration)のためのサーバフレームワークです。 メリット とにかくRemoteRunが非常に便利、コミット前にCIServerでテストできるのはありがたいです。 UIがかっこいい(個人的な感想ですが。)  Jenkins 恐らく、2012年現在、CIサーバはJenkinsとTeamCityとの一騎打ち感じではないでしょうか? メリット 豊富なプラグイン! フリー!  2011年末に以下の書籍が発売されたので最近購入しました。初めてCI環境を経験、構築する人にはお勧めできます。私はTeamCityで既に実践(実戦?)経験があり、知っていた部分も多かったので、ちょっと物足りなかったです。ただプラグインの紹介やプラグインの開発の章は参考になりました。CIを初めて体験する方にお勧めします。 O'reillyからもJenkinsの書籍が出ているようです。 CruiseControl フリーの継続的インテグレーションツールです。 恥ずかしながら使ったことはありません。。。ちなみに.Net版の CruiseControl.NET もあるようです。 Sonar このツール自体は、CIサーバではありませんが、PMD、CPDなどのあらゆるCode Inspectionの機能を持ったサーバです。CIとは非常に親和性が高いので、導入をお勧めします。 特にコードの状態の可視化機能は圧倒的に優れていますので、大きなプロジェクトでは、是非導入したいところです。