Slide 1

Slide 1 text

テストの考え方 & 協力したテストのすすめ

Slide 2

Slide 2 text

自己紹介 松谷峰生 (まつやみねお) 社外活動 • テスト • JaSST Kyushu(ソフトウェアテストシンポジウム九州)共同実行委員長 • 機械学習方面 • QA4AI コンソーシアム発起人の一人 • マンガ・イラスト • 新人さんからわかるソフトウェアテスト解説マンガ「テスターちゃん」 • IVIA(IT検証産業協会)キャラクターイラスト • 他ソフトウェアテスト系マンガ、イラスト • 他 • 大学の授業(非常勤講師 / 特別講師)

Slide 3

Slide 3 text

この発表の前提 テストの人と開発者が 別れている組織の話

Slide 4

Slide 4 text

この発表の目的 テストの人と開発者で どう協力しながらテストを進めよう? と 考えるきっかけになれば嬉しい

Slide 5

Slide 5 text

テストって何?

Slide 6

Slide 6 text

テストって何? ソフトウェアテストとは 想定したことが 想定した通り動くことを チェックする 活動である

Slide 7

Slide 7 text

テストって何? だけではない

Slide 8

Slide 8 text

テストって何? テストによってそのシステムに 何らかの価値を付加するならば

Slide 9

Slide 9 text

テストって何? 品質・信頼性の向上

Slide 10

Slide 10 text

テストって何? 信頼性は バグを見つけ取り除くことで より向上させることができる

Slide 11

Slide 11 text

テストって何? ソフトウェアテストは バグを見つけるつもりで プログラムを実行する過程

Slide 12

Slide 12 text

テストって何? 想定した通り 動くか確認 想定外の 問題を 発見 + チェッキング テスティング

Slide 13

Slide 13 text

http://www.jasst.jp/symposium/jasst18kyushu/pdf/S6.pdf

Slide 14

Slide 14 text

テストって何? チェッキング 機械的なチェックが 比較的容易 人によるテストが 必要 テスティング +

Slide 15

Slide 15 text

よくあるテストのありかた

Slide 16

Slide 16 text

よく言われる形 ユニットテスト APIレイヤー のテスト ←end to endテスト マニュアルテスト テストの ピラミッド コスト高 テスト実行時間長さ テスト範囲の広さ テストの実行数

Slide 17

Slide 17 text

よくあるテストのありかた ←ユニットテスト ←APIレイヤーのテスト マニュアル テスト アジャイル開発に 耐えられない プロセス 手によるテスト範囲が多すぎて テストが間に合わない→人員増大でカバー

Slide 18

Slide 18 text

よくあるテストのありかた プロジェクトの 破綻 APIレイヤーの テスト

Slide 19

Slide 19 text

よくあるテストのありかたのよくある原因 「テスト」はテスト側のお仕事 という業務分担 (どうせシステムテストで全部通るしUTいいよね…) 開発側でチェックしているところも テスト側で重複チェック (全部見ないと不安…)

Slide 20

Slide 20 text

よくあるテストのありかたのよくある原因 「全体としてのテスト最適化」 に考えが及んでいない

Slide 21

Slide 21 text

じゃあ、どうしよう?の例 開発側とテスト側で 「テストどう分担します?」 を話してみる 「このリストの並び順はAPIのレスポンスでみます」 「バッチ処理自体は見ますが、システムをつなげて処理が上手に動くかは テスト側で見てもらっていいですか」 「ユーザーシナリオを通したテストはテスト側で見ます」 「探索的テスト(問題点を探索するテスト)を実施します」 「この導線はE2E自動テストのチェックが回っています」

Slide 22

Slide 22 text

松谷の理想論 • テスティング • どうしても手でしか見 れない場所 • UI APIレイヤー でのチェッキング ユニットテスト でのチェッキング 各レイヤーで 行うべきテストが 考慮されている バランスタイプ ピラミッド ↓ テストの ビルディング (松谷命名)

Slide 23

Slide 23 text

松谷の理想論 テストの ラミエル (松谷命名) ユニットテスト でのチェッキング • テスティング • どうしても手でしか見れない場 所 • UI 振る舞いを APIレイヤーで チェッキング ※発表後追記: あとから知ったことですが 「テスティングトロフィー」という 考え方があるそうです。

Slide 24

Slide 24 text

実際の取り組み例

Slide 25

Slide 25 text

削除ページ 以下参照です。 https://www.slideshare.net/next_developer/ltech6-lifullqa/14

Slide 26

Slide 26 text

最後にもろもろ •開発/テスト双方ともに基本知識がないと話がしにくい • テストレベルって何?探索的テストとは? • メソッドって何?CRUDとは? •ユニットテストをただふやすと、いつもどこかでユニットテストがコケて いる • ユニットテストを書くコストが増える • 修正するコストも増える

Slide 27

Slide 27 text

この発表の目的 テストする人と開発者で どう協力しながらテストを進めよう? と 考えるきっかけになれば嬉しい

Slide 28

Slide 28 text

Thank you