いつも心にバーレーワイン

ExcelのvbaとかeccubeとかECサイトのリスティング広告設定とかよろずやってます。Laravelはじめました。

デブサミ2014行ってきた:テスト自動化を見直そう!自動化への投資が開発チームを クリエイティブにする。

taketnakのメモ&覚書です。

間違いその他ある場合があります。

 

13-B-L  テスト自動化を見直そう!自動化への投資が開発チームを クリエイティブにする。

コベリティジャパン株式会社 安竹由紀夫氏

イントロダクション

 自社業務説明、静的解析ツール、セキュリティ製品なども力を入れ始めてる。

 

本題

自動化をはじめる人、始めてる人向けに実業務例例からの話。

Covenrity Connect

Selenium WebDrvを使用した画面テストを実施している。3000ケースぐらい

単体テスト、コード解析までも自動化しようと思ったときの進め方

 

5つに分けて説明。

No.5 本当に自動化が解決策?

同じテストを4回繰り返すと自動化構築コストがペイできる

実例1

FireFoxのバグを修正するプロセスに要する時間 ⇒9.9人日

人をアサインするまでに10日弱かかってしまっていた・・

実例2

Linuxのテストをどのように効率化するか(2013年)

6月ぐらいから品質担当が変わった。 不具合検出からどれくらいで解決するかの

グラフにて説明。

新規障害を早く片付ける方針とした。すると、修正までのスパンが短縮した。

なるべく客観的なデータを見る、コンポーネント毎に経過日数をチェックなど。

コベリティの場合、

  • 6ヶ月毎のリリースサイクル。
  • 開発者総数100人(全社員300人)
  • スクラム、2weekスプリント
  • Selenium使用、プラットフォームは多数の言語・環境多数。

プラットフォーム違いのテストケースが多い。

プラットフォーム毎にJenkinsで自動化。

No.4  テスト自動化のスキルセット

担当者のスキルセットは正しいか

当初はうまくいかない。スキルセット、(海外で開発のため)時差もあり。

QA担当にプログラミングスキルがない。

カナダテストチームに変更。

プログラミングスキルが高い → 改善

 

No.3 コードカバレッジの罠

 コベリティ静的解析エンジンは・・

  • どの関数がどの関数を呼ぶかを図示化(コールグラフ
  • File I/Oなどの忘れを検出

とまどう質問「コベリティツールを使うとC1品質100%が保てるか」

デッドコード、構造的に通らないところを発見することができるが、

コード例に挙げたように「 コピペの処理の変数書き換え忘れ」など

 コードカバレッジ100%だけどバグがあるケースは存在する。

 

コードカバレッジとテスト品質は一致しない。

 

No.2  優先度を設定しているか

コベリティでも機能優先度はある。顧客要求など・・

ただ、新しく追加されたコードからテストするよう方針変更、

追加されたソース、更新されたソース周辺のテストを優先して実行、

更新されたソース周辺に絞ると20万ある処理から該当部分は800程度。

 

バグ検出の効率が上がった。

 

NO.1 クリーンなコードになっているか

メソッド毎のつながりを意識して結合レベルのクリーン度を上げる。

チェンジインパクト解析を取り入れた自動化ワークフロー

コーディング→構成管理登録→他の人のソースと結合した時点で自動テスト

コード追加・変更で新しいテスト

 

PRQA、BLACKQUCK、COVERITY、NTO、EZ SOURCE、FindBugsなど

競合ではあるが協力体制となっている。

 

まとめ

テスト自動化の5つのポイントは

  • テスト自動化が解決策か?
  • テスト自動化のスキルセット
  • コードカバレッジの罠
  • 優先度を設定しているか
  • クリーンなコードになっているか

 

感想:

落ち着いたペースで内容確認しながら聴くことができた。

実例の話なので参考となった。