やって分かった自動テスト

21

description

初めてテストを自動化してみて分かった事。

Transcript of やって分かった自動テスト

Page 1: やって分かった自動テスト

やって分かった自動テスト

Page 2: やって分かった自動テスト

自己紹介● 德納 弘和 (とくのう ひろかず)● 某社の工場のITシステム部門● 39才にして IT部門へ移動して4年目

– 遅れを取り戻すべく日夜勉強中● 少し覚えた言語

– VBA, SQL, JavaScript, Java, Perl, Shell...● コードを極力書かないのがお気に入り

– Pentaho ETL, Oracle APEX, Mojolicious

Page 3: やって分かった自動テスト

2013年の学びと挑戦● ユニケージ開発手法● Perl, Mojolicious● Jenkins● 自動テスト jUnit, Mockito, shUnit2● Twitter Bootstrap, Google Maps APIなど● 勉強会の楽しさ!

– エフスタ!– オープンデータカフェ会津– JAWS-UG会津

● CODE for AIZU参加

Page 4: やって分かった自動テスト

2014年の学びと挑戦● LODチャレンジ応募● Hack for Town in Aizu参加● Meteor(Node.js, MongoDB) on Nitrous.IO● GitHubデビュ〜● Amazon DynamoDB● DevLOVE大阪デビュ〜

Page 5: やって分かった自動テスト

はじめに

ここに述べられている見解は

執筆者個人の責任で発表するものであり、

所属する組織としての見解を

示すものではありません。

Page 6: やって分かった自動テスト

テストって

Page 7: やって分かった自動テスト

テストの作業データを用意

処理

結果を確認

結果を記録

条件を変更

Page 8: やって分かった自動テスト

頭を使わない単純作業

Page 9: やって分かった自動テスト

全然楽しく無い

Page 10: やって分かった自動テスト

テストの本質● 入力と出力の確認

入力 出力処理

Page 11: やって分かった自動テスト

テストの本質● 大きなシステムも入力と出力処理の固まり

入力

出力

処理 処理 処理

処理 処理 処理

処理 処理 処理 処理

Page 12: やって分かった自動テスト

インストールしないでJenkins

Page 13: やって分かった自動テスト

やった事 その1

● Shellで自動テスト● 定義ファイルを動的に変更

Windows PC

開発用DB

shUnit2 定義

Linux Server

Page 14: やって分かった自動テスト

やった事 その2

Selenium Grid

● この辺を使ってJavaでWebアプリをテスト

Page 15: やって分かった自動テスト

Selenium Grid

Windows PC

バージョン管理システム

Hub

Selenium Grid

Tomcat

Node Node

Page 16: やって分かった自動テスト

何処をテストする?

Database

Data Access Object

Service/Logic

(Web) Controller

Presentation (JSP)

Model

Controller

View

テストは簡単バグは少ない

テストは難しいバグは中程度

テストは簡単バグは多い

O/R Mapper

● Database~Serviceの一括テストが効果的か?

テストは簡単バグは多い

Projectによって大きく変わります

Page 17: やって分かった自動テスト

何処をテストする?

Database

Data Access Object

Service/Logic

(Web) Controller

Presentation (JSP)

Model

Controller

View

テストは簡単バグは少ない

テストは難しいバグは中程度

テストは簡単バグは多い

O/R Mapper

● Database~Serviceの一括テストが効果的か?

テストは簡単バグは多い

Projectによって大きく変わります

Page 18: やって分かった自動テスト

良い点● Excelの自動変換や見間違いによるバグの見逃しが無くなった

● 早い時期にテスト– バグが早く見つかる

● 早く終わるのでテストの実行回数が増える– バグが見つかりやすい

● テスト条件を増やすコストが低い– 条件を変えてのテストが増やしやすい

● 急いでいてもCoverageを下げない● テスト条件が明確

Page 19: やって分かった自動テスト

課題● 導入/教育コストが高い● 追加コーディングが必要● テスト修正コストが追加● レビューの為の書類との二重管理● Webのテストは遅い

自動化し過ぎない

Page 20: やって分かった自動テスト

まとめ● 繰り返して使う場合だけ自動化● 繰り返しても手の方が早いなら自動化しない● テスト専用のデータを用意する● 頻繁にテストする

安い物流が小売店を変えた様に安いテストが開発を変える

Page 21: やって分かった自動テスト

ご清聴ありがとうございました