Recommended
PPT
PDF
PDF
PPTX
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
ODP
PDF
PDF
Free cad 0.19.2 and cfdof (Japanese Ver.)
PDF
PPTX
第1回concrete5初心者向け勉強会 環境構築
PPT
How to manage Cakephp @CakePHP_Fukuoka_2
PDF
Nc3開発環境(vagrant)構築(Windows編)
PDF
Engine Yardで作る NetCommons3のクラウド環境
PPTX
13016 n分で作るtype scriptでnodejs
PDF
PDF
PDF
20210515 of4 wi&paraview 5.9.0_motorbike
PDF
PDF
大規模な負荷でもドキドキしない為のJava EE
PDF
PPT
PDF
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
PDF
PDF
20210515 cae linux_install_vb
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
PPTX
1分で分かるdeveloperWorks Premium
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PDF
More Related Content
PPT
PDF
PDF
PPTX
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
ODP
PDF
PDF
Free cad 0.19.2 and cfdof (Japanese Ver.)
PDF
What's hot
PPTX
第1回concrete5初心者向け勉強会 環境構築
PPT
How to manage Cakephp @CakePHP_Fukuoka_2
PDF
Nc3開発環境(vagrant)構築(Windows編)
PDF
Engine Yardで作る NetCommons3のクラウド環境
PPTX
13016 n分で作るtype scriptでnodejs
PDF
PDF
PDF
20210515 of4 wi&paraview 5.9.0_motorbike
PDF
PDF
大規模な負荷でもドキドキしない為のJava EE
PDF
PPT
PDF
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
PDF
PDF
20210515 cae linux_install_vb
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
PPTX
1分で分かるdeveloperWorks Premium
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
Similar to CruiseControl.NET設置
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PDF
PPTX
PPTX
PDF
Hello. Continuous Integration
PDF
PDF
「継続的デリバリー」読書会 第3章 継続的デリバリー
PDF
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
PDF
Agile japan2010 rakuten様プレゼン資料
PDF
PDF
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
PDF
PDF
継続的デリバリー読書会 第 7 章 コミットステージ
PDF
PDF
CEDEC2015講演 チーム開発をスムーズにするために
PDF
PDF
【Agile Conference tokyo 2010】 Going Agile with Tool
PDF
PDF
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
PDF
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
More from Kuniaki Igarashi
PDF
my_everyday_life_with_ruby
PDF
PDF
PDF
「学生さんと一緒に Rubyイベントを つくっている←イマココ 」
PDF
PDF
PDF
高専カンファレンス014tokyo 実行委員長挨拶
PDF
PDF
World Wide Ruby Conferences
PDF
PDF
PDF
PDF
高専カンファレンスについて @kosenconf-012hachinohe
PDF
高専カンファレンス2009秋in東京 実行委員長挨拶
PDF
PDF
PDF
RubyKaigi Lightning Talks TwYM episode2
PDF
RubyKaigi Lightning Talks TwYM episode1
PDF
197x Timer with Your Messages
PDF
CruiseControl.NET設置 1. 自動 Test と CruiseControl.NET Kuniaki IGARASHI 2006.8.21 http://igarashikuniaki.net/ 2. 3. 4. バグ早期発見のメリット 理由 コスト バグ修正にとりかかるまでの時間が長くなればなるほど、修正にかかるコストは(時間においても金額においても)高くなる スケジュール見積もり バグが存在している場合、スケジュールの見積もりは非常に困難。既存のバグを修正する時間よりも、新機能を実装する時間の方が遙かに見積もりし易い ゼロ欠陥法 ( 某 M$ 社 ) 「いかなる場合でも新しいコードを書く前に バグを取り除くことを最優先とする」 -> バグを発見する手段の 1 つが テスト である。 5. 6. UnitTest メソッドを実行し、 戻り値、副作用が妥当であることを確認するテスト ツール : CppUnit, JUnit, NUnit など CAddition cadd; // 引数の和を返し、メンバ変数 m_lastResult に結果を格納するクラス int result = cadd.arg2(2,3); // テスト対象のメソッドを実行して CPPUNIT_ASSERT_EQUAL((int) 5, result); // 結果を確認 CPPUNIT_ASSERT_EQUAL((int) 5, cadd.m_lastResult); // 結果を確認 UnitTest の Code 例 閾値に関する UnitTest をしっかり書けば、 バグの出やすい閾値付近でのバグ発生率減少 リファクタリング時には UnitTest は必須 7. UnitTest – テスト駆動開発 メリット テストコードを書くことで仕様が固まる インターフェイスの曖昧さが解消 テストし易いコードを書ける テスト駆動開発 実装する前にテストを書く 8. 9. 常時結合 メリット リポジトリ上ソースのビルド失敗を早期発見 CVS add 忘れやソリューション構成変更忘れなどを早期検出可能。 他の開発者への影響を最小限で防ぐ -> リポジトリ上のソースがビルドできない場合、 時差のある 2 拠点開発では最悪丸 1 日仕事不能 バグ発生箇所の追求が容易 ビルドアーカイブを保管することで、 過去のある不明な時点で発生したバグを二分検索可能 テスト担当とのスムースな連携 テスト担当者が常に最新のビルドを手にいれることができる 定期的にテストを行うためには、 常時 、 自動 でビルド ( 結合 ) する必要があります。 10. 11. 12. CruiseControl.NET 概要 OpenSource の定期テスト実行ツール (Apache Software License, BSD License) 定期的なビルド、テストが実行可能 Multi Platform 対応 .NET 環境の CruiseControl.NET JAVA 環境の CruiseControl CruiseControl.NET(CC.NET) 常時結合ツールの 1 つ 13. CruiseControl.NET で できること 定期的なコマンド実行 定期的なソース取得、差分確認 定期的なビルド メール、web、アプリケーションでのビルド結果報告 複数マシンでの分散ビルド環境構築 パトライトでエラー時に警告するシステムを 構築している人もいます。 14. CruiseControl.NET を使う 6 つの理由 毎日テストを実行することにより、 直前 24 時間の新規実装で発生したバグを発見 できます 別環境でビルドすることで CVS add 忘れなどを早期発見 できます エラー処理やタイムアウトが可能 (bat ファイルやスクリプトでは途中で処理が止まってしまった場合に後続の処理まで影響を受ける ) 複数マシンでの 分散ビルドが可能 MulitPlatform 展開 する場合に、テストパターンの書き換えが容易 (Path の書き換え程度 ) テスト OK によって得られる 安心感 - Priceless 15. 16. 動作環境 All 32-bit MS Windows (95/98/NT/2000/XP) Visual Studio .NET CVS Client (CVSを使用する場合) IIS (Webレポートを使用する場合) SMTP (メールレポートを使用する場合) 17. 18. インストール - IIS ContorolPanel -> プログラムの追加と削除 -> Windows コンポーネントの追加と削除 より インターネットインフォメーションサービス (IIS) をインストールします。 http でアクセスできるように設定してください。 ファイアーウォールの設定にも注意。 19. インストール - CC.NET http://sourceforge.net/projects/ccnet/ から Download してインストールしてください。 注意点: Web レポート機能を使う場合は、 IIS を先にインストールした方が設定が楽です。 20. インストール – IIS の設定 管理ツールのインターネットインフォメーションサービスで CC.NET web dashbord が加えられていることを確認してください。 また、 asp.net(aspnet_client) も必要です。 入っていない場合は以下のコマンドを実行してインストールしてください。 > %windir%\Microsoft.NET\Framework\v1.1.xxxx\aspnet_regiis.exe -i xxxx にはインストールされたバージョンが入ります。 21. Windowsサービス設定 ■ Windows サービスの起動設定 ・デフォルトでは手動起動の設定となっているので、自動起動に変更 ・ログオンの項目で適切なユーザーを指定しないと、認証ができず CVS の実行で失敗します。 ・ CC.NET サービスが起動していると、コマンドラインからは実行できないので注意。 ( CC.NET は 1 つしか起動できない。) ■ コマンドラインから手動で起動する場合 > [CruiseControl.NET Path]\server\ccnet.exe -config:ccnet.config ■ CVS 認証 ・サービスで指定したユーザーで、 CVS login コマンドを実行して認証をしておきます。 > cvs.exe -d :pserver:[user]:[repository] login 22. CC.NET 設定ファイル ビルドの指示は以下の xml ファイルに記述します。 C:\Program Files\CruiseControl.NET\server\ccnet.config --- 例 ( 概略 )--- <5 分ごとに CVS 監視 > < 変更があれば以下のタスクを実行 > < ソースディレクトリを削除 > <CVS CheckOut> <Build> <Mail 送信 > Examples フォルダ以下に設定ファイルの例が置いてあります。 23. CC.NET 設定ファイル <project name="BuildProject"> <name> BuildProject </name> <workingDirectory>D:\CruiseControlWork\Src</workingDirectory> <artifactDirectory>D:\CruiseControlWork\Src</artifactDirectory> <modificationDelaySeconds>60</modificationDelaySeconds> <publishExceptions>true</publishExceptions> workingDirectory : ソースをチェックアウトするパス artifactDirectory : ビルドログを格納するパス modificationDelaySeconds : 最後のチェックインから x 秒間はビルドを開始しない publishExceptions : CVS などが応答しない場合の Exception エラーを通知 24. CC.NET 設定ファイル トリガー各種 Interval Trigger <intervalTrigger name="continuous" seconds="30" buildCondition="IfModificationExists"/> 30 秒ごとにソースリポジトリを監視、変更があればタスク実行 Schedule Trigger <scheduleTrigger time="23:30" buildCondition="ForceBuild“/> 決まった時間にタスク実行 Url Trigger <urlTrigger url="http://server/page.html" seconds="30" buildCondition="IfModificationExists"/> URL で指定したファイルを監視、変更があればタスク実行 Project Trigger <projectTrigger serverUri="tcp://server:21234/CruiseManager.rem" project="Server“/> 他の CC.NET プロジェクトの状態を監視、条件にあえばタスク実行 25. CC.NET 設定ファイル Visual Studio Task ー VS でビルド実行 (Release, Debug など指定可 ) Build Publisher ー ビルド生成物をコピー NAnt Task – NAnt を実行 Executable Task ー 実行ファイルを実行 ForceBuildPublisher ー 他の CC.NET プロジェクトを実行 NUnit Task ー ユニットテスト実行 Email Publisher – mail 送信 タスク各種 26. CC.NET を使った分散ビルド Project Trigger <projectTrigger serverUri="tcp://server:21234/CruiseManager.rem" project="Server“/> 他の CC.NET プロジェクトの状態を監視、条件にあえばタスク実行 ForceBuildPublisher <publishers> <forcebuild> <project>AcceptanceTestProject</project> <serverUri>tcp://buildserver2:21234/CruiseManager.rem</serverUri> </forcebuild> </publishers> 他の CC.NET プロジェクトを実行 CC.NET マシンが他の CC.NET マシンを統率または監視してタスクを指示できる。 監視 指示 27. 28. CruiseControl.NET で できないこと、困ること まっさらな状態からの CVS Chekout 解決案 -> CVS Command を実行する bat で実行 -> NAnt(Build ツール ) と連携 CVS Checkout でロックをかけている ? ローカル各マシンでの commit が遅くなる 解決案 -> CVS の機能を使ってコミット時に連絡用ファイルを作成、連絡用ファイルを監視 29. 30. 31. テストの基本はお手本との差分 差分比較ツール Fc - Windows 標準コマンドラインツール Diff - Unix, Linux ExamDiff - Windows GUI ツール シェアウェア では、具体的にどんなテストができるか見ていきましょう。 テスト出力結果 正しい出力結果 ソース変更後、意図しない差分がないか調べる 32. 33. ログ比較テスト ソースコードの要点にログ書き出しを仕込んで置く。 変数 Dump や、 関数の In/Out など。 変数の内容や処理経路が異なる場合に発見できる。 下回りのライブラリが置き換えられた場合も、 自分たちのコード上を通る経路が 変わる場合は違いに気づける。 Output テスト対象 ソースコード Log お手本 Log 差分比較 Input 34. 35. 36. 37. マルチプラットホームテスト 多くのプラットホーム、 OS でのテストも自動なら簡単 こんなことを発見できます。 API の OS Ver. 依存 Windows のホームディレクトリなど OS Ver. 依存の設定 アクセス権依存のコード ( 制限ユーザーで実行など ) 変数 bit 量の違いによる不具合 エンディアネス(リトルエンディアン、ビッグエンディアン) 38. 39. 40. 参考文献 http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET – Download site http://confluence.public.thoughtworks.org/display/CCNET/Configuring+the+Server - configuration file reference http:// www.archway.co.jp/tabid/71/Default.aspx - 解説 PDF とパトライト ( 日本語 ) http://tsune.japan.webmatrixhosting.net/NWiki.aspx?page=CruiseControl.NET1.0 – 日本語 wiki 達人プログラマー / デビッド・トーマス著 ISBN:475614599X ( 同名の別書があるので注意 ) Joel on Software / Joel Spolsky 著 ISBN:4274066304 41. 42. 43. NAnt とは何が違うの? レイヤーが違います。 CC.NET は統合ツール Mail 機能、 web ページ作成機能などがあります。 NAnt はビルドツール CC.NET でも NAnt の豊富な機能を利用してビルドなどの作業を行うことができます。 CC.NET でも簡単なビルド指示は出すことができます。