5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

私は元QAで開発チームに配属されました。
そして、コードレビューに参加すること幾星霜、全く発言できない状態を改めようと考えました。

コードの良し悪しがわからない!

一番の問題点です。
if文とfor文くらいはわかるので、時間をかけて読めばどんな動きをしているのかはわかります。
しかし、

  • それが最適なのか
  • 問題は無いのか
  • もっとよくできないのか

といった点はさっぱりでした。
他の人の指摘には感心するばかりです。

コードで考えるのをやめた

眼前のコードを眺めても、何も思いつきません。
しかしながら、いざ私がテストをすると、ちらほら不具合は出てきます。
不具合があるから、コードが修正されます。
ロジックはわかるので、不具合と紐づきます。
テストから考えていけば、不具合の起きるロジックに気付けました。

この瞬間「私なら言えることあるのでは?」と至りました。
目の前のコードを読んで考えるのではなく、そのロジックを頭の中でテストすればよい、と。

QAのスキルをフル活用

熟練のテスト設計者が扱えるテスト手法に「探索的テスト」というものがあります。
端的に言えば「頭の中でテスト設計しながらテスト実行」です。
また、類似のテスト手法に「アドホックテスト」というものがあります。
端的に言えば「直感的に不具合が出そうな操作を実行」です。

レビューの短い時間では瞬発力を高めるため、
探索的テストの思想でテスト設計し、
アドホックテストの嗅覚でテストケースを選出し、
そのケースを脳内検証、ロジックに問題ありそうなら指摘ができます。

脳内検証の時間が不十分であったり、答えが出ない場合は、
「これこれこういうケースが考えられますが、その場合はどうなりますか?」
と聞きます。
考慮されているのであれば教えてくれますし、そうでなければ追加検証の場合もあります。
もちろん、聞いている最中に「あ、こんなケースやっぱりないんで大丈夫です」となる場合もあります。

正解は「テスト駆動開発」

この手法は、私の苦肉の策であり、属人的で再現性が無いので、再現性のある手法に置き換えたいな、と思っています。
テストからロジックを見ているので、実質テスト駆動レビューです。
この世界にテスト駆動開発が満ち溢れれば、きっとこの頭の使い方もしなくてよくなるはずです。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?