デブサミ2014行ってきた:テスト自動化を見直そう!自動化への投資が開発チームを クリエイティブにする。
taketnakのメモ&覚書です。
間違いその他ある場合があります。
13-B-L テスト自動化を見直そう!自動化への投資が開発チームを クリエイティブにする。
コベリティジャパン株式会社 安竹由紀夫氏
イントロダクション
自社業務説明、静的解析ツール、セキュリティ製品なども力を入れ始めてる。
本題
自動化をはじめる人、始めてる人向けに実業務例例からの話。
Covenrity Connect
Selenium WebDrvを使用した画面テストを実施している。3000ケースぐらい
単体テスト、コード解析までも自動化しようと思ったときの進め方
5つに分けて説明。
No.5 本当に自動化が解決策?
同じテストを4回繰り返すと自動化構築コストがペイできる
実例1
FireFoxのバグを修正するプロセスに要する時間 ⇒9.9人日
人をアサインするまでに10日弱かかってしまっていた・・
実例2
Linuxのテストをどのように効率化するか(2013年)
6月ぐらいから品質担当が変わった。 不具合検出からどれくらいで解決するかの
グラフにて説明。
新規障害を早く片付ける方針とした。すると、修正までのスパンが短縮した。
なるべく客観的なデータを見る、コンポーネント毎に経過日数をチェックなど。
コベリティの場合、
プラットフォーム違いのテストケースが多い。
プラットフォーム毎にJenkinsで自動化。
No.4 テスト自動化のスキルセット
担当者のスキルセットは正しいか
当初はうまくいかない。スキルセット、(海外で開発のため)時差もあり。
QA担当にプログラミングスキルがない。
↓
カナダテストチームに変更。
プログラミングスキルが高い → 改善
No.3 コードカバレッジの罠
コベリティ静的解析エンジンは・・
とまどう質問「コベリティツールを使うとC1品質100%が保てるか」
デッドコード、構造的に通らないところを発見することができるが、
コード例に挙げたように「 コピペの処理の変数書き換え忘れ」など
コードカバレッジ100%だけどバグがあるケースは存在する。
コードカバレッジとテスト品質は一致しない。
No.2 優先度を設定しているか
コベリティでも機能優先度はある。顧客要求など・・
ただ、新しく追加されたコードからテストするよう方針変更、
追加されたソース、更新されたソース周辺のテストを優先して実行、
更新されたソース周辺に絞ると20万ある処理から該当部分は800程度。
バグ検出の効率が上がった。
NO.1 クリーンなコードになっているか
メソッド毎のつながりを意識して結合レベルのクリーン度を上げる。
チェンジインパクト解析を取り入れた自動化ワークフロー
コーディング→構成管理登録→他の人のソースと結合した時点で自動テスト
コード追加・変更で新しいテスト
PRQA、BLACKQUCK、COVERITY、NTO、EZ SOURCE、FindBugsなど
競合ではあるが協力体制となっている。
まとめ
テスト自動化の5つのポイントは
- テスト自動化が解決策か?
- テスト自動化のスキルセット
- コードカバレッジの罠
- 優先度を設定しているか
- クリーンなコードになっているか
感想:
落ち着いたペースで内容確認しながら聴くことができた。
実例の話なので参考となった。