みんなに役立つ「テスト」を学んでみよう!

2013/10/17
DevLove関西の勉強会
http://devlove-kansai.doorkeeper.jp/events/5586
忘れないうちにメモ

そもそも

  • そういえばテストを体系的に学んだことないよな
  • 「とりあえずユニットテストやって(Web開発なので)画面チェックすればいいや」、っていう軽い考え
  • 少なくともそれくらいはやっておくべきとも思っている(ユニットテストすらやってないプロジェクトもあるので)

構成

その1:テストの必要性と品質の考え方
その2:テストの技術をざっくり紹介
その3:テスト技法紹介 ~ワークを添えて

資料については公開はまだNGとのことです。

その1

JSTQBなるもの
「試験は受けなくてもいいけど勉強することが大事」みたいなこと言ってました

http://jstqb.jp/
Advanced Levelシラバスは80ページくらい、載ってる時間は何なんだろう??
Foundation Levelシラバスも80ページくらい、学習時間の目安も書いてある

テストについて考える際には品質関連のフレームワークがヒントをくれる
ソフトウェア品質モデル(ISO9126、ISO250XX)を使って分類できる
例えば、「機能性->正確性」「信頼性->成熟性」「利用品質->生産性」とか
「もやもやしている」ものを考えたり、整理するためのきっかけにできる
「ISOとりいれてますよ~~」とか偉い人に納得してもらえやすい、のかな?
狩野モデル

http://ja.wikipedia.org/wiki/ISO_9126
ちょっと何読めばいいのかわからない。。。
とりあえずはこういう分類があるってのを抑えておくべし

妥当性確認:「適切な」ものを作っているか?
検証:「適切に」ものを作っているか?
単純に検証するだけじゃダメ、さらに上位の狙いや目的に合致していることを意識!

納得。
個人的には出来てると思う。

その2

用語だけでもいっぱい

確かに、、、そりゃ、とっつきにくいはずです
分かったつもりでいる単語も、ちゃんと理解しているかって言われると不安です

テストレベル

JSTQBでは「受入テスト」「システムテスト」「統合テスト」「コンポーネントテスト」。
SLCP2007(V字モデル)では「SW的確性確認テスト」「結合テスト」「単体テスト」。
Beizerさんの定義では「システムテスト」「統合テスト」「コンポーネントテスト」「ユニットテスト」。

いろいろあるんですね。。
普段考えているのがどのモデルに近いのかくらいはあとで確認しておこうと思います。

結合テストといったって、一気に全部まとめてエイッてわけには行かない。
階層わけるとか、段階的に。
塗り絵:段階的に「塗りつぶす」ようにテスト

段階的にってのは確かにそうですね。
普段ユニットテストしか考えて(ry
塗り絵とか積み木って話は絵がないと理解しにくいかも、というより説明しにくいです。

テストタイプ

テストをグループ化したもの
品質特性(ISO)ベース
Myersのシステムテストカテゴリ
「抜けなく」「効率的に」「状況に応じて」

http://snsk.hateblo.jp/entry/20120227/p1
紹介されてた様にマインドマップとかで1個ずつ広げていくと考えやすそうです。

その3

三色ボールペン法
同値分割
境界値分析
デシジョンテーブル
有則の組み合わせ検討技法(CEG, CFD)
無則の組み合わせ検討技法(直交表、All Pair)
状態遷移図

http://www.hayst.com/Pages/positioning.aspx
同値分割とか境界値分析は比較的わかりやすいのかなと。
有則とか無則ってのは、無則と思ってたのが有則だったりするとちょっと面倒です。
油->OK、卵->OK、お酢->OKだけど混ぜてマヨネーズにするとNGみたいな。
ちょっと分かりにくいか。。。
講義の中でも「安易にパターンを減らすことが出来る技術じゃない」って説明だったけどもう少し詳しく理解しといたほうがいいと思いました。

ワークショップ

三色ボールペン法の実践
まだ表面的な理解です。


以下、参考文献です

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

Googleのテスト本って言ってたのはこれかな
テストから見えてくるグーグルのソフトウェア開発

テストから見えてくるグーグルのソフトウェア開発

そのほか
ソフトウェアテストの基礎:ISTQBシラバス準拠

はじめて学ぶソフトウェアのテスト技法

ソフトウェア・テスト PRESS 総集編

マインドマップから始めるソフトウェアテスト

体系的ソフトウェアテスト入門

知識ゼロから学ぶ ソフトウェアテスト

現場の仕事がバリバリ進む ソフトウェアテスト手法


Web

http://www.jasst.jp/archives/jasst09e/pdf/A7-6.pdf