リモートワーク・ご商談等のオンライン対応について

ギークスジョブの掲載案件はリモートワークでの参画がご相談可能です。
また、現在実施している個別説明会、各種イベント、顧客企業様との商談打ち合わせはオンラインでご対応いただけます。

今夜わかる!テストケース作成手法!

作成日:2020/09/24 (木) TECH

この記事は公開から1年以上経過しているため、情報が古い可能性があります。

今夜わかる!テストケース作成手法!

「テストってなんのためにやるのだろう…」そんなことを考えているエンジニアの方、いませんか?テストは単調的で本当はすごく楽しくて生産的な作業なんです。今回は、ソフトウェア開発におけるテストの重要性や、様々なテストケース作成手法をご紹介していきます。

テストはどうして必要なのか?

エンジニアの皆様、コーディングは好きですか?きっと、これを読んでいる方は好きな方が多いのではないでしょうか。それでは…テストは好きですか?コーディングと比較すると好みが分かれるかもしれません。しかし、ソフトウェア開発におけるテストは、コーディングと同じくらいに重要なものとなります。

リリース後に致命的なバグが見つかりサービスが継続不可となったり、ユーザに多額の損失を与えてしまう事例は後を絶ちません。テストでそれらのバグを全て潰すことは出来ません。けれど、適切にテストを実施していれば、そのうちの何割かは防ぐことが出来たのではないでしょうか。テストは、システムに障害が発生するのを防ぐ「防波堤」としての役割を担っています。

テストケース作成手法ってどうして必要なの?

それでは、テストを語る上で外すことの出来ない「テストケース作成手法」はなぜ必要なのでしょうか?
例として、あなたの上司が職場でこのような言葉をかけてきたとします。


「ユーザ登録画面のテストケースを作ったよ。入力値の組み合わせが11 × 10 × 8パターンあるんだけど、明日の朝10時までにやってもらえるかな?」


全部で何パターンあるかすぐに分かりましたか?正解は880パターンです。きっと真面目なエンジニアは、サボらずに全てのパターンを打鍵することでしょう。仮に1つのテストに5分かかるとして、880パターン × 5分 = 4400分!とても明日の朝10時までに終わりそうにありませんね。


これは極端な例ですが、テストケースを作るのに慣れていないエンジニアは以下のような失敗をしてしまいがちです。

1.不必要なテストパターンが多すぎる

「全ての組み合わせを網羅しなくては」と考えてしまうあまり、意味のないテストケースをたくさん作り込んでしまうタイプです。先ほどの例で示したように、組み合わせが多くなるとあっという間に天文学的なパターン数になってしまいます。

2. 異常系テストが足りていない

「数値の項目にカタカナを入力したら」「データベースに接続出来なくなったら」のような、異常なパターンのテストがそもそも足りていないタイプです。実際のシステム運用では、想定していない事態は頻繁に起こり、異常系テストが足りていないと、そのような時にすぐ壊れる脆弱なアプリケーションになってしまいます。

過不足なく適切なテストケースを作成するには、その手法を体系的に学ぶ必要があります。
次の章からは、具体的にそれらの手法を見ていきましょう!

テストケース作成手法 – 同値分割

同値分割とは、起こりうる全ての事象をいくつかのグループに分け、各グループから代表値を選ぶ手法です。


例として、以下のような仕様を持ったアプリケーションがあるとします。


・ユーザの年齢をテキストボックスに入力する
・年齢は0~200までの数値が入力可能である
・入力後、「チェック」ボタンを押す
・入力された値に応じて、異なるメッセージボックスが画面上に表示される

0~19が入力された場合:「未成年です」というメッセージボックス
20~99が入力された場合:「成人しています」というメッセージボックス
100~200が入力された場合:「とても長生きですね」というメッセージボックス


このアプリケーションにおいて、入力可能な数値の種類はたくさんありますが、
実はそのグループは3つしかないことが分かります。


つまり、以下の図のようなグループです。

テストケース作成手法 – 同値分割の画像

同値分割では、これら各グループの中からそれぞれ10、80、150のように代表値を選び、テストを実施します。

テストケース作成手法 – 境界値分析

境界値分析は、同値分割によって分けられた各グループの境界値付近をテストする手法です。先ほどのアプリケーションですと、19と20、99と100がその境界値にあたります。

テストケース作成手法 – 境界値分析の画像

仕様書の「以下」と「未満」を取り違えたり、プログラムのif文中で不等号「<」と「≦」を誤るなどして混入したバグは、この手法を用いて検出することが出来ます。

テストケース作成手法 – エラー推測

エラー推測は、エラーが発生しそうなデータパターンを推測し、テストケースを作成する手法です。このようなデータパターンというのは、ある程度形式知化されています。


具体的には、以下のようなものがよく用いられます。

1.最大値・最小値、最大値より大きい値・最小値より小さい値

言語やアプリケーションの仕様によって、入力可能な数値や文字長の最大値・最小値は決まっています。その値を超えた場合に、どのような動作となるかを検証します。
※このパターンは、エラー推測ではなく境界値分析に分類されることもあります。

2.小数

浮動小数点数のように、桁数が大きなデータを扱うと丸め誤差が生じてしまうものをテストします。

3.空文字・スペース・ゼロ・NULL

プログラムは「データが存在しない場合」や「NULLを参照した場合」に誤動作が発生しやすくなります。

4.入力されることを意図していない文字種

数値の項目に「漢字を入力する」「氏名の項目に記号を入力する」など、
本来は入力されるべきでない文字種に対しバリデーションが機能していることを検証します。

5.うるう年、存在しない日付・時刻

日付の項目にうるう年を入力し、正しく扱えることを確認します。
また、「2015/14/12」「26:00:00」のように存在しない日付・時刻を入力してみることもあります。

おわりに

普段、あまりスポットが当たることのない「テスト」という作業。しかしそれは、より品質の高いソフトウェアを作るためになくてはならないものです。記事の中で登場した手法を活用し、効率的かつ効果の高いテストケース作成を実現してみませんか?

ギークスジョブはITフリーランス専門エージェントとして20年以上にわたり、ITフリーランスのご支援を行っています。
フリーランスを初めて検討される方はもちろん、現在フリーランスとしての今後に不安を感じている方、今よりもっと充実したフリーランス生活を楽しみたい方は、ぜひお気軽に相談ください。ITフリーランス専任のキャリアアドバイザーがマンツーマンでサポートいたします。


▽ 無料登録(エントリー)はこちら
https://geechs-job.com/entry


まだフリーランスになることに迷いがある方へは、独立のご相談から承ります。これまでのご経歴やキャリアの目標をお伺いしながら、お一人おひとりに寄り添ったキャリアプランのご提案をいたします。


▽ 独立相談会への無料エントリーはこちら
東京:https://geechs-job.com/event/details/1
大阪:https://geechs-job.com/event/details/2
福岡:https://geechs-job.com/event/details/3
名古屋:https://geechs-job.com/event/details/189

その他のおすすめ記事

フリーランスのクラウドエンジニア需要は堅調。マイグレーションとDX加速で拍車|ITフリーランスをサポートするギークスジョブ

ITフリーランスの方のための『お役立ち情報』をご紹介しています。この情報のテーマはフリーランスのクラウドエンジニア需要は堅調。マイグレーションとDX加速で拍車です。geechs job(ギークスジョブ)では、「フリーに生きる」ためのノウハウをご紹介し、ご希望のキャリアやライフプランを実現できるように、サポート致します!

シェア

スキルを収入上昇につなげよう

日本最大級のITフリーランス専門エージェント ギークスジョブ

無料登録はこちら

いきなりフリーランスとして活動するのは不安...という方へ

業界・専門知識の豊富なコーディネーターが、関東、関西、福岡で無料セミナーを実施しています

こんなお悩みはありませんか?

  • 自分のスキルでフリーランスになれるか不安
  • 安定した収入を得られるのか不安
  • 税金や保険などの手続きがどうなるのか知りたい

まずは、ギークスジョブの無料イベントに参加してみませんか?
まだ本格的に活動する予定がない方も、情報収集の手段として活用されています。
不安や小さな不明点を解消する場として、是非ご利用くださいませ。

イベント一覧を見る
上に戻る