【メルマガ】テストって、難しい。(2022年06月28日)

どんな業界でも、”作りモノ”の品質を上げるためには「テスト」をします。

もちろん、ソフトウェアにおいてもテストをします。

もしかすると、ソフトウェアのテストって
「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などのバグにかかったのかもしれません。
ちょうどそのタイミングで、何かの上限値にかかったり、メモリ不足になったりしたのかもしれません。
稼働しているハードウェアに、何か問題が起こったのかもしれません。
※かならずシステムログがうまく出ているとも限りません。

さらに、昨今のクラウド化により、確認できないブラックボックスも増えています。

こうしたフレイキーは、環境などが複雑になればなるほど、難易度が増していきます。

一概に「再度実行して上手くいけば、それでいいや」とするわけにもいきません。
もしかしたら、プログラミング自体が本当に誤っているのかもしれません。

そうなってくると、

  • エラーが発生することを前提として、処理を組み立てる
  • 発生頻度を見極めて、どうするかを検討する
  • 絶対に失敗できない処理なので、徹底的に原因を追及する

など、ルール一辺倒では判断できない、経験が物を言う世界になってきます。

システム開発を依頼する上で気にすべきこと

話は少し変わりますが、もし、あなたがシステム開発を他社様に依頼するとします。

そうした時に、気にしておくべきポイントを簡単にまとめます。

  • ソフトウェアのテストもそうした環境下にあり、絶対にエラーが起こらないシステムなんて作れないと認識すること
  • どこまで品質を上げる(テストをする)かは、コストとの兼ね合いでもある。適切な判断をすること
  • どれくらいの品質であるかは、専門家であるシステム開発会社に、責任を持って説明してもらうこと(そして、理解するように努めること)

※もちろん、状況によって気にすべきポイントは様々です・・・

メルマガ登録


週1回、3分で楽しめるメルマガ『Professional's eye』。
デジタルに詳しくなり、さらにはご自身の意見が持てるようになります!

送信時点で「Privacy Policy」に同意したものとみなします。
広告を含むご案内のメールをお送りする場合があります。

バックナンバーを見る

>【発売中】情シスの定石(技術評論社)

【発売中】情シスの定石(技術評論社)


情報システム部門の担当者が「絶対に」押さえるべきノウハウを体系化!

・システムの企画から廃止まで、情シスが「何をすべきか」「どう動くべきか」がわかる
・失敗につながる「見えない要因」を明らかにし、成功に導くためのポイントを解説
・情報システム開発に携わるすべての人の必読書

■ こんな方にオススメ
現役「情シス」/ 異動で「情シス」へ / 転職で「情シス」へ
部下・新人育成にお悩みの方 / 業務部門の方
経営者 / 開発ベンダ勤務の方 / 就活生

CTR IMG