連載
テストでバグ発見!(3)単位取得判定プログラムに潜むファイル入力のバグ:山浦恒央の“くみこみ”な話(145)(2/4 ページ)
提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。第3回は、大学の単位取得を判定するプログラムから、ファイル入力に潜むバグを見つけ出しましょう。
※本記事はアフィリエイトプログラムによる収益を得ています
3.2 詳細
3.2.1 ファイル入力
プログラム起動時に、点数データ(Score.csv)を入力する。
Score.csvのデータのフォーマットは、後の表2に示す点数データを参照すること。また、形式に合致しない場合は、「入力エラー」と表示し、プログラムを終了する。
3.2.2 成績評価
成績評価は、グレード(S、A、B、C、/)で判定する。なお、評価基準は表1に従うこと。
グレード | 評価基準 | 備考 |
---|---|---|
S | (中間テスト+期末テスト)が180〜200点 | 中間テストと期末テストのそれぞれの最高得点は100点として考える |
A | (中間テスト+期末テスト)が160〜179点 | |
B | (中間テスト+期末テスト)が140〜159点 | |
C | (中間テスト+期末テスト)が120〜139点 | |
/ | (中間テスト*期末テスト)が119点以下 | |
表1 評価基準 |
3.2.3 成績評価の出力結果
出力結果は、入力ファイルの末尾にグレード(S、A、B、C、/)を追記し、Result.csvとして出力する。
3.3 データ設計
3.3.1 点数データ
データ設計を表2に示す。
No. | 項目 | 型 | 形式 | 入出力 |
---|---|---|---|---|
1 | 学籍番号 | int型 | 半角数字8桁 | 入力・出力 |
2 | 中間テストの点数 | int型 | 0〜100 | 入力・出力 |
3 | 期末テストの点数 | int型 | 0〜100 | 入力・出力 |
4 | グレード | 文字型 | 半角英数字1文字 | 出力 |
表2 点数データ |
3.3.2 入力ファイル(Score.csv)
入力ファイルの例を以下に示す(リスト1)。
#学籍番号,中間テストの点数,期末テストの点数 12345678,100,100
リスト1 入力ファイルの例(実際のファイルには1行目は含めないこと)
3.3.3 出力ファイル(Result.csv)
出力ファイルの例を以下に示す(リスト2)。
#学籍番号,中間テストの点数,期末テストの点数,グレード 12345678,100,100,S
リスト2 出力ファイルの例(実際のファイルには1行目は含めないこと)
3.4 制限事項
問題の都合上、下記の制限に従うこと。
- 入力するCSVファイルのデータは1列のみとする(解答が説明しにくくなるため)
- 入力するCSVファイルのディレクトリパスは、必ずプログラムの直下で、ファイル名は「Score.csv」とする
- 成績の判定方法はさまざまあるだろうが、問題の都合上、3.2.2に従うものとする
- 入力するScore.csvは、必ずカンマ区切りのデータを入力し、文字コードはシフトJISで、改行コードはCRLFとすること
Copyright © ITmedia, Inc. All Rights Reserved.