システムテスト自動化カンファレンス2015(4)「広告システム刷新よもやま話 -テストが当たり前となるまでにやったこと-」
2015/12/13(日)にテスト自動化研究会(STAR)主催のシステムテスト自動化カンファレンス2015に参加しました。
本blogでは、聴講したセッションから数回に分け、メモとしてまとめたものを紹介します。
セッション
講演内容は、下記セッションです。
(※<資料>にリンクを貼りましたので、参照下さい。)
1.テスト自動化のスキルを考えよう! ~テスト自動化エンジニアに求められるスキル、期待される役割~ 早川 隆治(テスト自動化研究会)/テスト自動化スキル標準 AutomationTest.SSF 考えてます。 コヤマン(テスト自動化研究会), →<資料1>/<資料2>
2.自動家は見た~自動化の現場の真実~ /".reviewrc"→"おいしが" →<資料1>/<資料2>
3.広告システム刷新よもやま話 - テストが当たり前となるまでにやったこと - /森下 大介(ヤフー株式会社MSC開発本部マーケッターPF開発部) →<資料>
4.楽天の品質改善を加速する継続的システムテストパターン /荻野 恒太朗(楽天), 菊川 真理子(楽天) →<資料>
5.キーワード駆動によるシステムテストの自動化について /小井土 亨(SQiP 運営委員会メンバー、株式会社OSK) →<資料>
6.Testing Tools for Mobile App /松尾 和昭(クックパッド) →<資料>
7.パネルディスカッションLIVE! テスト自動化”エンジニア” の今とこれから/登壇者:森下 大介(ヤフー株式会社), 荻野 恒太朗(楽天), 小井土 亨(SQiP 運営委員会メンバー, 株式会社OSK),松尾 和昭(クックパッド), AAA(review.rc)メンバ, モデレータ:浅黄 友隆(ヒューマンクレスト), 松木 晋祐(ベリサーブ)
今回は、「3.広告システム刷新よもやま話 -テストが当たり前となるまでにやったこと-」について紹介します。
3.広告システム刷新よもやま話 -テストが当たり前となるまでにやったこと-/森下 大介(ヤフー株式会社MSC開発本部マーケッターPF開発部)
(1)B to B でエンプラシステム
データ登録の比重が大きい。
(2)困ったこと「妙につらい」
- 小改修だが...
- 大規模かつ複雑化
- 結合が...
- 道具とやり方が合わない
- なんとなく動いていて...
- 積み重なる技術負債
(3)組織変更のタイミング
(組織変更後の)部門長「いちから全部変えろ!」というきっかけがあった。
(4)目指したもの
- 3倍早い開発スピード
- 変わるべきは「自分たち」
- システム刷新は「結果」
(5)やったこと
(5-1)体制づくり
- リード役の配置
部付きで刷新活動に集中できる環境へ - 仲間づくり
同じ問題意識の人に声かけ。 - 部門長による宣言
刷新することをステークホルダや部内メンバに宣言した。
(5-2)プログラミング言語を変える
(5-3)テストできるアーキテクチャに
- テストできないときとは? 動作するための準備が大変など
- 現行システム→サーバー分割とAPI化でWebに(?)
- Dependecy Injenction
(5-4)テスト向けのDSL採用(Spock)
- JUnit
Java言語でテストを書くことになるが、Java言語はテストを表現する手段がない。 - 記述言語は、JVM言語のgroovy
テストを記述するためのDSLが構築されている。 - IDE
eclipseからInteliJに変えた。
(5-5)CI/CD、静的解析
- Cloverによるカバレッジ計測
- Coverityによる静的解析
- Quality Advisor
NullPointerExceptionを検出。 - Test Advisor
- Quality Advisor
(5-6)インターフェイス定義言語(IDL)
- テストと別の観点で、開発効率向上と品質向上のため、インターフェイス定義言語(IDL)を選択。
- OSSを利用できないか検証したが、以下の理由で一から作った。
- バリデーションが表現できない
- ドキュメントが生成できない
(6)ふりかえっての所感
- 問題検出をできるだけ前工程にもってくる
- テストできないと言い訳される要因を潰す
- 未熟でも早めに適用/フィードバック受けて磨く
- 部門長サポートと仲間が大事
所感
開発における課題を乗り越えるため、技術的に工夫することも大切ですが、組織の中でも部門長の後押しが無いと、自動テストシステムの開発や保守が頓挫するので、仲間作りも軽視できないと思いました。また、組織の体制や役割も適切に機能しないと、技術的に工夫することが難しくなるので、どのように組織のマインドを変えるか、クリアすべき課題に取り組むことも大切と思いました。