いきなり話がそれるのですが、Practice Sessionsがあるの良いですね。今はざっと読み進めている段階ですが、時間をとってPractice Sessionsに取り組もう。
第二章は、よく不具合が発生しやすいポイントを付け加える。
また、GUI越しの、ユーザ視点のテストとして使える方法を並べている。
Part2 Adding Dimensions
Vary sequence and interactions
操作を実際に観察しながら、変化させていくことで振る舞いを観察する
Nouns and Verbs
- 名詞(Nouns)と動詞(Verbs)の組み合わせを入れ替えたりすることで、例えばユーザがある対象に対して行う操作に多様性(Variety)を持たせる
- システムにおける名詞と動詞を識別する
| Nouns | Verbs |
|---|---|
| Message | Send |
| Header | Recieve |
| Draft | Edit |
| Attachment | Save |
| Signature | Export |
| Folder | Move |
などなど
2. 上記をもとに、Nounsに対してVerbsを行う。これをランダムに行うことで、ユーザ操作を変化させていき、探索的に不具合を探していく手がかりとしていく
Random Navigation
適当にGUIを操作する。これも、探索的に不具合を探すための観察を行うことが目的。
– What are all the ways you can close the current window ?
– What are all the ways you can go back from your current location to the previous window or view ?
などなど
Personas
ペルソナを定義し、その人が実際に行いそうな操作を想定して操作する。
これは、アジャイル要求などでいう主ペルソナ、副ペルソナだったり、さらに厳密にxx歳、yyのような性格、などを定義していく。
Explore Entities and Their Relationships
ソフトウェアは”モノ(Things)”が関係する。そのモノに対してcreate/update/deleteなどの操作を実施する。
Nouns and Verbsでは名詞と動詞に注目したが、ここではEntitiesに注目していく。
Recognizing Entities, Attributes, and Dependencies
- システムにおけるEntitiesを探していく
– 例えば、GUIでいう”クッリクできるplus icon”など
2. EntitiesはAttributesを持つ
– emailメッセージEntityとしたら、そのsender, subject, bodyなどがAttributes
Finding Nonobvious Entities
- 多くの場合、Entitiesは自明なことが多いけれど、自明ではないEntitiesもある
– 何らかのシステムにログインしたときに張られるSession
2. それらの関係を知るところから初める
Mapping Relationships
ER図を使い、洗い出したEntitiesの関係性を構築していく。
ここはデータベースのER図と同じですね。
Entity A Entity B Entity C 1 n n 1
CRUD: Create, Read, Update, Delete
CRDBは、Databaseの基本操作からきている。
データに対する操作は基本的にはこの4つ。これらの操作を、様々なデータや方法、依存関係のあるものに対して実施する。
- ファイルを作成する/削除する
- xxの処理を行っているときにファイルを削除する
Following the Data
通常、Entitiyはライフサイクルを持っている。そのライフサイクルに対してCRUDを適用してみる。
Discover States and Transitions
不具合に出会ったとき、その状態や移り変わりを探っていく。何がきっかけなのか、など。
状態やイベントを知っていく。
- xxxをしている間などの振る舞い
- イベントの発生契機
状態遷移を作成するなどし、設定のON/OFFを切り替えてその振る舞いを観察するように、遷移する状態を観察していく。
状態の遷移を妨げる行為に対しても注意する。
Explore the Ecosystem
エコシステム全体の関係、境界などを図示し明確にしていく。
その論理/物理的な境目となる箇所に注視する。例えば、ネットワークの接続状態やファイルの状態なんか。