1. HOME
  2. サービス・料金
  3. 集合トレーニング
  4. テスト駆動によるリファクタリング実践トレーニング

テスト駆動によるリファクタリング実践トレーニング

トレーニングの着地

問題の発見と評価は客観的な解析方法を用いる

経年劣化を防ぐものなので、抜本的な原因分析は行わずに、解決策の立案を行う

コード変更の前後で振舞いが変わっていないことを保証する

日常的な活動として「リファクタリング」を実施できるよう効率化する

テスト自動化ツール「Google Test」によるTDD(テスト駆動開発)とCI(継続的インテグレーション)フレームワークである「Jenkins」を使った演習を通じて、「組込みシステム」を安全に「リファクタリング」する方法やポイントを学ぶトレーニング・セミナー①問題の発見:問題の発見と評価は客観的な解析方法を用いる②解決策の立案:経年劣化を防ぐものなので、抜本的な 原因分析は行わずに、解決策の立案を行う③変更前のテスト:コード変更の前後で振舞いが変わっていないことを保証する④解決策の実施(コード変更):日常的な活動として「リファクタリング」を実施できるよう効率化する⑤変更後のテスト⑥結果の評価

トレーニング内容

現在の組込みソフトウェア開発の現場は、多くの製品バリエーションと短い周期でのバージョンアップに追われています。長期間、保守されてきたコードは、多くの人が追加修正し、今では「なぜこうなっているのか?」誰も説明できないものも数多くあります。今のコードを使い続けるべきか、一度捨てて再構築するのか...グローバルに競争が激化した今の経営環境では、再構築を選ぶ余地はなく、大規模あるいは小規模な「リファクタリング」を続けながら、少しずつコードを改善し、状況も改善していく...それが唯一残された道と言えます。
しかし、「リファクタリング」への一歩を踏み出すのは、容易なことではありません。その理由としては、次の3つがあげられます。

・開発に忙しく、時間が取れない
・「リファクタリング」するためのノウハウがない
・検証に不安がある

これらが解決されないまま「リファクタリング」をしてしまうと、「リファクタリング」が失敗に終わるだけでなく、プロジェクト自身にも大きなダメージを与えてしまいかねません。

テスト自動化ツール「Google Test」によるTDD(テスト駆動開発)とCI(継続的インテグレーション)フレームワークである「Jenkins」を使った演習を通じて、「組込みシステム」を安全に「リファクタリング」する方法やポイントを学ぶトレーニング・セミナー【1日間】ソフトウェアの品質とは→「リファクタリング」の手順→『練習問題』関数内の保守性の問題発見と解決策の検討→『総合演習・リファクタリング演習』以下の環境を使って演習します。テスト自働化ツール:Google Test、CI(継続的インテグレーション)フレームワーク:Jenkins

サービスや料金について
詳しく知りたい方はこちら

基本情報

対象者 ・人のコードを引き継ぎ、「リファクタリング」の実践が必要な人
・現状のコードベースの開発を少しでも良くしていきたいと考えている人
・修正による副作用が心配で、「リファクタリング」に踏み切れない人
受講前提 C言語による開発経験
必要時間 1日間

テスト駆動開発を実施

~自動テストフレームワーク"Gooqle Test"~

「リファクタリング」は、Before/ Afterで振舞いを変えないことが鉄則です。それを保証するために、テスト駆動のプロセスを使います。

「リファクタリング」をする前に、「リファクタリング」対象範囲の振る舞いを確認するためのテストプログラムを作成し、実行したログを保存しておきます。そこで保存したログが、「リファクタリング」後に満たすべき振舞いの目標となります。

本トレーニングでは、自動テストフレームワークとして "GoogleTest"を使います。

テスト自動化ツール「Google Test」によるTDD(テスト駆動開発)とCI(継続的インテグレーション)フレームワークである「Jenkins」を使った演習を通じて、「組込みシステム」を安全に「リファクタリング」する方法やポイントを学ぶトレーニング・セミナー|テスト駆動開発を実施します ~ 自動テストフレームワーク 「GoogleTest」~「リファクタリング」beforeのプログラム・「リファクタリング」afterのプログラム=テスト結果は同じ

継続的インテグレーションの有効性を理解

~CIフレームワーク"Jenkins"~

~自動テストフレームワーク"Gooqle Test"~

継続的インテグレーション(Continuous Integration = CI)とは、開発における品質と生産性の向上のために、ビルドからテストまでの一連の動作をシステムを使って自動化し、関係者で情報共有して早期に問題賭け欠をする、開発の習慣を指します。

テスト駆動開発による「リファクタリング」では、一連の作業をCI(継続的インテグレーション)により自動化することで、「リファクタリング」を効率的に実施することを狙いとしています。

テスト自動化ツール「Google Test」によるTDD(テスト駆動開発)とCI(継続的インテグレーション)フレームワークである「Jenkins」を使った演習を通じて、「組込みシステム」を安全に「リファクタリング」する方法やポイントを学ぶトレーニング・セミナー|継続的インテグレーション(CI)を体験します ~ CI(継続的インテグレーション)フレームワーク「Jenkins」 ~【CI(継続的インテグレーション) System】単体テスト(Google Test、xUnit、C++Test、WinAMS)/回帰テスト(ユーザによる開発)/静的解析(QAC、Adlint、ccfinder)/プロジェクト管理(statsvn、redmine)/Build(コンパイラ+make)/CI(継続的インテグレーション) framework(Jenkins)/linux simulator(cygwin)

継続的インテグレーション(CI)を実現するためには、自動化ツールが不可欠です。上図で示しているのは、コードの構成管理も含めたシステムの例です。このよに、複数のツールを連携し、CIフレームワーク上にさまざまなツールを組み込むことで、CI(継続的インテグレーション)を実現します。
下図はJenkinsのダッシュボードの画面です。このように、品質の状況とトレンドをすぐに把握することができます。
本トレーニングでは、CIフレームワークとしてJenkinsを例に、リファクタリング・品質改善の活動にどのように役に立つのかを具体的に説明します。

テスト自動化ツール「Google Test」によるTDD(テスト駆動開発)とCI(継続的インテグレーション)フレームワークである「Jenkins」を使った演習を通じて、「組込みシステム」を安全に「リファクタリング」する方法やポイントを学ぶトレーニング・セミナー|継続的インテグレーション(CI)を体験します ~ CI(継続的インテグレーション)フレームワーク「Jenkins」~ビルド結果の履歴・単体テスト結果の履歴・静的解析結果の履歴

サービスや料金について
詳しく知りたい方はこちら

お客様の声

テスト駆動によるリファクタリング実践トレーニング受講者の声

2018年9月

リファクタリングと単体テストの関係性が良く分かりました。

 

役立ち度

テスト駆動によるリファクタリング実践トレーニング受講者の声

2018年9月

今まで手動でテストしていた部分の時間が短くできそうです。

 

役立ち度

テスト駆動によるリファクタリング実践トレーニング受講者の声

2018年9月

リファクタリングに対する基本姿勢、考え方をおさらいできた。

 

役立ち度

テスト駆動によるリファクタリング実践トレーニング受講者の声

2018年10月

改造案件が多いので、体系だった手法があるのはとても助かる。

 

役立ち度

テスト駆動によるリファクタリング実践トレーニング受講者の声

2018年9月

どの観点から修正すべきなのか、演習を通して理解することが出来た。

 

役立ち度

集合トレーニング

USDM入門/実践トレーニ.. システムアーキテクチャ設.. MATLAB/SimulinkによるMB.. XDDP入門/実践トレーニン.. テスト駆動によるリファク..モデリングスキル強化トレ.. 思考整理トレーニング モデリキ基礎トレーニング モデリキ応用トレーニングSPLトレーニング

レガシーリファクタリングの関連サービス

適用支援

レガシーリファクタリング実施支援サービス

ソースコード診断による問題の把握から、あるべき姿への改善まで、設計技術支援とプロセス設計によって、レガシーコードの改善を総合的に支援します。

適用支援

要求仕様書作成サービス

「要求仕様書」を作成したいのに作成する工数が取れないといったお客様に向けて、エクスモーションが制御仕様書や機能仕様書などの既存資料の調査や開発者へのヒアリングを行って「要求仕様書」を作成します。

適用支援

レガシーシステム開発救済診断

「レガシー開発」の良し悪しを、定量・定性の両面で、経験豊富なコンサルタントが診断し、救済への道筋を提示します。

適用支援

レガシーシステム開発
レスキュー隊派遣サービス

「レガシー開発」を救済するためのプロジェクトを主導していく、通称『レスキュー隊』を派遣します。経験豊富なコンサルタントが、救済プロジェクトを主導していくとともに、「見える化」・「自働化」・「リファクタリング」など、ソフトウェア開発技術の知見と経験を併せ持つレスキュー隊が、実際に手を動かして、「レガシー開発」を救済いたします。

リファクタリング関連ソリューション

レガシーリファクタリング

レガシーリファクタリング

「派生開発」で肥大化・複雑化したシステムを救済するために欠かせない「リファクタリング」の失敗しないためのポイントと進め方。静的解析による問題の特定と、経験豊富なコンサルタントによる、プロセス・環境・人材をトータルで改善する「失敗しないリファクタリング」

レガシー救済プロジェクト

レガシー救済プロジェクト

「テスト駆動」「CI(継続的インテグレーション)」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済します。理想的な開発をあえて目指さず、リスクが低減した制御可能なプロジェクトを目指します。