どんな業界でも、”作りモノ”の品質を上げるためには「テスト」をします。
もちろん、ソフトウェアにおいてもテストをします。
もしかすると、ソフトウェアのテストって
「Aを入れたらBとなる。パターンが網羅できればOKだよね。」
みたいなイメージかもしれません。
しかし、そんなワケはないのです・・・
今回は、そんな、ちょっとマニアなお話です。
ソフトウェアのテストって?
一般的には、どのようにプログラミングをするかを設計し、
プログラミング後、想定通りに稼働するかを確認します。
もの凄く身近なイメージでいきますと・・・Excelの数式でもよいでしょう。
セル A1 + A2 の結果を、セル A3 に表示する。
と作ったとしましょう。
A1、A2に値を入れて、A3に正しい結果が表示されるかを確認するのがテストです。
この場合、A1やA2に
- 小数点も含めて入れる
- 数字以外(文字など)を入れる
- 数式を入れる
- 何も入れない
など、色々なパターンを確認するわけです。
フレイキーテスト
前述したようなシンプルな内容・環境でしたら、おかしな結果が出ることはないでしょう。
1+2は、必ず3と表示されるでしょう。
しかし、これが複雑な環境におけるテストとなると、状況が変わってきます。
コードを変えていなくても、テストが成功したり失敗したりするのです。
※実行結果が不安定なテスト = フレイキーテスト と呼ばれています。
以下、面白い記事がありましたのでリンクいたします。
世界中のITエンジニアが悩まされている問題の1つに、テストが原因不明で失敗する、いわゆる「フレイキーテスト」があります。…
この記事(出典元はGoogle)だと、7つのテストを行うとすると、1つは何らかのフレイキーが発生しているとのこと。
こうした原因は?
原因が追いづらい、というのが特徴ではありますが、例えば以下のようなケースはありえるでしょう。
Aというシステムに、「〇〇データを取得する」機能を追加して、テストしようとしたとします。
処理としては、Bというシステムの機能を呼び出し、そのBは、実はさらにその先のシステムを呼び出し・・・としたとします。
10回同じ処理を実行したところ、1回失敗したとします。
さて、原因は何で、プログラミングを修正すべきでしょうか?
・・・みたいなお話です。
ネットワークがどこかでつながらなかったのかもしれません。
OSなどのバグにかかったのかもしれません。
ちょうどそのタイミングで、何かの上限値にかかったり、メモリ不足になったりしたのかもしれません。
稼働しているハードウェアに、何か問題が起こったのかもしれません。
※かならずシステムログがうまく出ているとも限りません。
さらに、昨今のクラウド化により、確認できないブラックボックスも増えています。
こうしたフレイキーは、環境などが複雑になればなるほど、難易度が増していきます。
一概に「再度実行して上手くいけば、それでいいや」とするわけにもいきません。
もしかしたら、プログラミング自体が本当に誤っているのかもしれません。
そうなってくると、
- エラーが発生することを前提として、処理を組み立てる
- 発生頻度を見極めて、どうするかを検討する
- 絶対に失敗できない処理なので、徹底的に原因を追及する
など、ルール一辺倒では判断できない、経験が物を言う世界になってきます。
システム開発を依頼する上で気にすべきこと
話は少し変わりますが、もし、あなたがシステム開発を他社様に依頼するとします。
そうした時に、気にしておくべきポイントを簡単にまとめます。
- ソフトウェアのテストもそうした環境下にあり、絶対にエラーが起こらないシステムなんて作れないと認識すること
- どこまで品質を上げる(テストをする)かは、コストとの兼ね合いでもある。適切な判断をすること
- どれくらいの品質であるかは、専門家であるシステム開発会社に、責任を持って説明してもらうこと(そして、理解するように努めること)
※もちろん、状況によって気にすべきポイントは様々です・・・
メルマガ登録
『メルマガ Professional's eye』
週1回、3分で楽しめます。
詳細はこちら >>>
広告を含むご案内のメールをお送りする場合があります。