TestonoBlog

Softwaretest,QA

仕様を読むときはここを狙う!

こんにちは、とのの(@tonono2587)です。

本記事はソフトウェアテストの小ネタ Advent Calendar 2020 4日目の記事です。

qiita.com

今回のテーマ:仕様を読むときのポイント

仕様を読んで実装前にバグをつぶすの大好きです。
(ほんとうはあとから言われて手間がかかるのが嫌なだけです。)
書かれている仕様のなかでもとくにバグが出やすい表現があるので、
3つあげてみようと思います。

その1:以上(以下)

「○○以上」「○○以下」という表現は境界値になるのでバグが出やすいです。
以上と以下が重なってしまってどっちをとったらいいかわからなくなっていたり、
指した範囲と反対のところが定義されていなかったり、
考慮漏れが起きやすかったりもします。
仕様を書くひとは「3000円以上送料無料」と書いたら満足してしまい、
クーポンを使って0円になるときの決定を忘れてしまうのです。

その2:必ず

"必ず"は感情的な表現です。
必ず生きて帰る、絶対に勝つ、約束は必ず守る…
信頼している間柄、人付き合いにおいては信用できる言葉になるかもしれません。
一方でソフトウェアにおいて必ずという表現は不要です。
「3000円以上は必ず送料無料」は、
決定さえすればそう動くはずなのに、あえて"必ず"を使うということは
そうじゃない場合が起きてほしくないという要件が隠れています。疑いましょう
クーポンを使って割り引きされていても送料無料にしてあげたいのです。

その3:文が長い

これはまず読むのが難しく、長ければ長いほどいろんな解釈ができてしまい、
実装にブレが発生しやすくなります。
「ユーザーの注文がクーポンを使って割り引きされ注文の本体価格の合計が3000円以上になったとき、受け取り方法を店舗受け取りではなく配送に指定すると送料が無料になる」
なんて??????
その機能でやりたいことも不明瞭となるので、ユーザーに伝わらずよいサービスにはなりません。

まとめ

仕様を読むときは、以下のような表現に注目してみましょう!

  1. 以上/以下
  2. 必ず(絶対)
  3. 文が長い

f:id:tonono:20201202011629p:plain:w300

他にもありそうなのでいつか書きたいなぁ
以上、小ネタ4日目「仕様を読むときはここを狙う!」でした!