「わたし、定時で帰ります」の感想考察エントリばかりになってなんか切ない気持ちになってきたので、別のこと書いてみる。今日の作文ノルマも終わったし(謎)
ここをご覧の多くはWebとかIT系の人かなと思っているんですが、そうでない人もたくさんいることでしょう。そうでしょう。そうでしょう。きっとそうでしょう(いてほしい)。
さて、「テスト仕様」とか「テスト設計」という言葉をご存じだろうか。知っている人は知っている。知らない人はマジで知らない。たぶんウチのお母さんは知らない。きっとこれを見ているあなたの友達も知らない。だからあなたも知らない(論理破綻)。
いや、とはいえ知らなくてもみんな学生時代は定期テストなるものを通って来ただろう。それに普段の仕事でも「これちゃんとチェックした?(怒)」なんて、言ったり言われたり言わされたりしているでしょう。そやで、言われてるんよおまいさんは。言われてる。僕は知っている。知らないけど知っている。
だが、だいたいこれは前提をすっ飛ばしている。っていうことを一般の方々は意外に知らない。システムエンジニアの人とかは「ははーん、そういうことやな?」と思っただろう。きっとその想像を1ミリも超えないけど画面を閉じないで欲しい。
今日はべつに素敵なテスト設計の話をしたいわけじゃないから!っていうかそれなら一般の人向けに書かないから!
~どんな悲劇に埋もれた場所にでも、幸せの種は必ず植わってる~
そうそれはテスト仕様に植わってる
そんなわけで、うぇぶぎょうかいのむめいでぃれくたーのお時間です。
テストには正解がある
なにを当たり前のことを、と思うかもしれない。
たしかに、学校の定期テストには正解があり、そしてそれはたいてい"絶対的"な正解。同じ問いであれば学校ごとに答えが違う、なんてことはないですね。言い換えれば「世の中に答えがすでにある」と言ってもいいかもしれない。
たとえば仕事の場合、世の中に答えがあるわけではない。ただ、資料のチェックの場合はだいたい誤字脱字とか項目の抜け漏れになる。なので、作った本人が「間違いないがないかなー」「ミスがないかなー」という観点でチェックをすることが多い。だから、おおきなおおきな大前提を忘れがちになる。
それは、
「果たしてそれは正解なのか?」という問いを立てること。
開発には「正解を定義する」という工程が存在する
これが、一般の人には意外と知られていない。
「チェック」も「テスト」も広義ではほぼ同じ目的のために存在する。でも単純な資料作成の場合は、正解を定義することがそれほど重要視されていない。なぜなら、いちいち定義しなくてもわかるから。資料の目的があり、それを達成するための項目が抜け落ちてたらわかるし、誤字脱字、数字の間違いもチェックすればわかる。
しかし、システム開発はそうじゃないんですよ。正解がわからない。とくに業務システムになると、導入企業ごとにその正解が変わる。承認フローが必要なものもあれば、スピードを重視するために機能をカットすることもある。
ここで「つくったものに問題が無いかテストをする」というのはどういうことかというと、「どういう状態が正解なのか」を定義することから一連のテスト対応が始まるわけです。
たとえばネットショップの商品検索結果について、それが「新着順」なのか「値段が安い順」なのか。そのショップの要件として「新着順」が求められているとして。その場合、テストでも新着順になっているなら「OK」。そうでないなら「NG」というテスト結果を記入することになる。
ゆえに、先に正解が定義されてないとテストなんざできるはずもないのです。なにが成功(正解)なのかというのがきちんと定義されているからOKとかNGというテスト結果が返せるわけで、正解がなきゃOKもNGもない。
それは本当に"失敗"なのか
お問い合わせフォームがエラーになってお問い合わせできないとなると、これは明確な"失敗"でしょう。一方で、「入力後の確認画面をすっとばして、完了画面が表示される」。これはどうだろう?(最近、こういうフォームも増えてきた)。
お察しのとおり、事前の定義による。
そのフォームの仕様(要件)が「確認画面なんて面倒だからすっ飛ばしてしまおう」というものなら、正解。「ちゃんと確認画面でユーザーに内容確認させてほしい」なら、失敗。
失敗は正解(成功)の定義次第だし、正解がなきゃ失敗も何もない。
つまり「失敗は成功が定義されること」で生まれる。
「こうなったら成功=正解」が定義されることで初めて、失敗という概念が生まれるんですよ。成功(正解)と失敗は、絶対的に成功が主で、失敗が従なのです。
これは人生にも言えるのではないか
僕はもうあと数年で40歳になろうというのに結婚をしていない。
これは失敗だろうか。
でも、僕は独身でそれなりにお金もあって毎日自由に生きている。
これは失敗なのだろうか。
そんなことはないんよね。「結婚できない」とはよくいうけど、それは結婚を「成功」だと思うからできないことが「失敗」になる。結婚を成功と定義しなければ結婚できないことも失敗じゃない。
結婚は素敵なことだけど、結婚したって離婚する人もいるし、子供が生まれたってその子がずっと重犯罪を起こさないとも限らない。何かがあった時パートナーが支えてくれるけど、それは同時に何かが起きる可能性が二倍に増えることも意味するわけで。
だから結婚なんて幸せとは言えないよ、と言いたいわけじゃなくて(もちろん)。結婚しないことは悪いことではないし、できないことも決して失敗じゃない、ということが言いたい。
これはもちろん他のことにも言えるわけで。
年収が低いから人生失敗してるわけでもないし、お金持ちだから大成功とも限らない。「お金がたくさんあることが成功だ」と定義するから「お金が無いことが失敗」になるだけで。ともすれば1億円の借金があっても、幸せならそれは失敗じゃないのかもしれない。
もう一度書きましょう。
「失敗」は「成功」が定義されることで生まれる。
恋人がいないからダメなのか。仕事ができないからダメなのか。
そんなことはないはずなんですよ。
だって、恋人がいないことが即悪いことではないもの。いることで失うものもあるし。
僕は、性格なのかキャラクターなのかわからないけど、割といろんな人に相談をされやすい。そして、そのときにいつも問うてることがあります。
「なるほどねぇ・・・。んで、えーと、なんでそれができないと辛いんだっけ?」
「仕事ができないのは辛い」
「はて、なんで辛いんだっけ?」
「周りに評価されないから?」
「周りに評価されないとなんで辛いんだっけ?」
「いやだってそれは・・・やっぱり評価されないと・・・。」
「べつに、周りに評価されるために生きてるわけじゃないじゃん?」
「そうですけど、でもやっぱり男は仕事ができないと・・・。」
「仕事ができないと?でも、自分より仕事ができる人なんて世の中たくさんいるじゃん」
「それはまあ、そうですけど」
「まあ、気持ちの良いもんではないけどさ、仕事に負けたらなんでダメなんだっけ」
「いやダメっていうか・・・」
「んなこと言ったら、君より凄い人、世の中にたくさんおるやん。僕だってそうだし」
「いや、それはだって年齢とかあるじゃないですか」
「年齢が近いと負けたらダメなの?同じ歳でも億万長者もいるじゃん」
「それはなんていうか、そもそも違うじゃないですか」
「じゃあ実力が近しい人とか同じ会社の人だと負けたらダメってことかな」
「それは、そうなんじゃないですか?」
「ほー、なんで?」
「えっ・・・うーん、なんでダメと言われると・・・。そうだ、だって仕事じゃないですか。ちゃんとやらなきゃダメじゃないですか」
「そうだね。それで君は仕事ちゃんとしてないの?手抜き?」
「いやそんなことはないですが!」
「だよねぇ。もらってる給料に見合う仕事してればいいんだし、そもそもそれ決めるの会社だしね」
「ま、まあ、そうですが。え、あれ?なんで負けちゃだめなんでしょう・・・」
・・・なんて会話をすることが多い。
いや、誤解の無いように書いておくと、そりゃ周りから評価されないのは辛い。気分の良いものじゃないですね。
でも、それは「仕事で周りから評価されることが成功だ」と定義しているから、そうなるんですよ。でも、仕事なんて、所詮は仕事ですよ。べつに精神を病むほどのことではない。仕事をテキトーにやって、テキトーに稼いで、週末昼間から飲んだりしてもいい。そんな人生だってきっと楽しい。
その程度のことなんですよ。本当は。
誰かに負けるのは気分の良いことではないけど、負けちゃいけないわけじゃない。負けたって良い。
開発のテストでは最終的にOK、NGをつけるけど、それはべつに凹むことでもない。NGが出たならなおせばいいだけ。
人生だって、それでいいじゃんと思うわけです。なにかでNGがついたなら、またやりなおしてOKにすればいい。もしくは「NGのままでいいじゃん」だっていい。はたまた、成功の定義を後から変えたっていい。
「すげー仕事できるようになりたかったけど、俺そこまで才能無さそうだし、まあいっか。人生楽しければ」・・・だっていいじゃんね。
社会は制約や偏見ばかりだけど
結婚してない奴はなにか問題がある、いい歳した夫婦なのに子供がいないのはどちらかに問題がある、安月給の奴は底辺、ブサメンは性格が悪い、イケメンはちやほやされてきたから性格が悪い。
さまざまな価値観や偏見はあるけど、それに付き合うかどうかは自分次第かなと思うんよ。どうでもいいやつのどうでもいい偏見なんて(それが仮に家族でも)放っておけばいいと思う。いや、親にはちゃんと説明して理解してもらった方が良いと思うけどw
モテない、仕事ができない、空気が読めない。それで病んでしまう人がたくさんいる。でも、実はそれは、その前に自分自身が「モテないやつはダメだ」「仕事ができるのが成功だ」と決めつけちゃってると思うんよ。
辛いことはあるけど、へこんだ時は一度その定義した成功を外してみると良い。すると、意外なほど自分が世の中の価値観にとらわれていたことに気づくから。
僕らは生きているだけでさまざまな偏見にさらされる。でも、自分までそれに付き合わなくていいと思うんですよね。
どの偏見と付き合うかは、自分で決められる。
だから、最近僕はこう思うんよ。
「社会は制約や偏見ばかりだけど、世界は自由だ」
いいんよ、何ができなくても。
自分の幸せのために生きてるんだから。
開発のテスト仕様でここまで脱線したことが書けるなんて、僕はまあまあ変な奴で幸せな奴だと思う。うん。