桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

第54回 SEA関西 プロセス分科会 テスト駆動開発による組込みプログラミングの実践 に行ってきた

d:id:youandi:20130607:p4
参加しました。SEA関西 プロセス分科会に参加するのは2回目。

第54回 SEA関西 プロセス分科会 テスト駆動開発による組込みプログラミングの実践
http://kokucheese.com/event/index/125949/

今回の講師は、こちらの書籍の監訳をされた蛸島さん。愛知県にある会社にお勤め。

開会

講師を含めて17名が参加。自分は50分遅れで参加・・・。

講演「組込み開発におけるアジャイル実施事例」

演習「例題によるC言語テスト駆動開発の体験」

高田さんのLinuxPC上のEclipseペアプロしました。

    • お題は・・・
      • Myersの三角形問題
        • 3つの整数を入力
        • 3つの整数はそれぞれ3角形の辺の長さを表す

事前にある程度関数が実装されたプロジェクトが配布されており、それに実装を加えている流れ。

最初にどんなケースがあるのかを考えて、まず入力チェックの方の実装を行ってしまいましたが、上記の流れでTDDしながら実装を行いました。
演習はポモドーロ・テクニックで2ポモドーロやりました。

ディスカッション「テスト駆動開発導入に向けての課題」

    • Q1 : CppUTest, GoogleTest, etc...とあるが、CppUTestを選んだ理由は?
    • A1 :
      • 蛸島さん:書籍で紹介されているから。
      • 久保さん:CppUTestは環境依存の部分が綺麗に分かれているので、組み込みで使いやすい。
    • Q2 : 3層レイヤー化設計になどによる性能への影響は?
    • A2 : 関数マクロ化して、テスト時と実行時とで切り替える事で回避出来る。
      • 性能も大事だが、適切なステージで不具合を見つける事が重要。
        • 書籍の「リンクによる切り替え」の項など。
      • XDDP(eXtreme Derivative Development Process)なども有効な考え方。
    • Q3 : テストの維持が負担にならないか?
    • A3 : 書籍のアンチパターンを行わないようにする。
    • Q4 : 仕様間違いを見つけられるか?
    • A4 : テストケース漏れなどは見つけやすい
      • どちらかと言えば、BDD(Behavior Driven Development)の分野になるかも。
    • Q4 : TDDを組み合わせてやった方が良いプラクティスは?
    • A4 : CI、ペアプロ、各ステージで見つけるべき不具合を見つける
      • 元々、TDD前提で開発している会社にいたので、TDDをやるのは当たり前という認識。それなので今の職場でもあるべき姿にしたまで。
    • Q5 : TDD導入について上司の理解を得るには?
    • A5 : 信頼貯金する。

閉会

会場の原状復帰して解散。

懇親会 (於:船場 とり萬(本町・堺筋本町/鳥料理(鶏料理)) - ぐるなび)

懇親会参加者が3人だったので、参加する事にしました。
世話人の小林さんに前回気になったSEAという組織について質問したりしました。
あとは参加者が少なかった分、講師の蛸島さんとじっくりとお話出来て良かったです。