テストでバグ発見!(6)電卓プログラムに潜むバグ【解答編】山浦恒央の“くみこみ”な話(148)(1/4 ページ)

提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。今回は、前回出題した電卓プログラム問題の解答編だ。演習問題としては大規模だが、正面からじっくり向き合い、適切にテスト設計すればバグを検出できるはず!

» 2021年12月16日 11時00分 公開
※本記事はアフィリエイトプログラムによる収益を得ています

1.はじめに

 このシリーズでは、バグを埋め込んだ仕様書とプログラムを筆者が提示し、読者がテストケースを設計し、実行してバグを見つけるものです。品質保証エンジニアが現実に実施している作業とほぼ同じだと思います。前回は問題編として、電卓プログラムの問題を出題しました。

 まだテストケースを設計・実行していない方は、前回記事を確認して実施し、「記述済みのテスト項目」「記述済みのバグレポート」「気付き事項リスト(もしあれば)」を作成してください。

⇒連載「山浦恒央の“くみこみ”な話」バックナンバー

 以下に、あらためて問題文を再度掲載しておきます。

【問題】電卓アプリケーション 制限時間:150分(再掲)

 下記に示す仕様および提示するプログラム(Python)からテスト項目を作成し、バグを検出せよ。また、バグを検出した場合は、バグレポートにまとめること※1)

提示物:問題のプログラム(Calculator.py):Python3.9.5で確認済み(Windows)

成果物:記述済みのテスト項目、記述済みのバグレポート、気付き事項リスト(もしあれば)

⇒Calculator.pyのダウンロードはこちらから

※1)使用するWebブラウザや設定によって、上記のリンクをクリックしてもソースコードが文字化けした状態で表示される可能性があります。その場合は、右クリックメニューから「名前を付けてリンクを保存」を選ぶことによってファイルをダウンロードできます。

 なお。電卓としての概要や機能要求、詳細設計、制限事項については、前回記事をご確認ください。

図1 図1 電卓アプリケーションのGUI

 それではお待ちかねの解答編です。

2.解答

2.1 問題の意図

 今回の問題の意図は、「一定の規模感がある問題からバグを検出できるか」です。

 今回は、過去数回と異なり、一定の規模を持っています。200行程度のプログラムなので、現実のデバッグやテストの10分の1以下ではありますが、演習問題としては大規模です。そんな大規模プログラムですが、正面からじっくり向き合い、適切にテスト設計すると、バグを検出できます。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.