![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
IT業界の研修生です。
単体試験についてご質問したいことがあります。
どういう内容を試験すべきかという内容です。
以下の3パターンの場合どういう試験項目を作成すべきでしょうか?
【パターン1】
private void Run()
{
FormatCheck();
AutoRun();
}
【パターン2】
private void Run()
{
//g_Lenghtはグローバル変数
g_Length = 10;
AutoRun();
}
【パターン3】
private void Run()
{
//g_Length、rec_Length共にグローバル変数
g_Length = rec_Length;
AutoRun();
}
【パターン4】
private void Run()
{
if(g_Length == 10)
{
g_Length = rec_Length;
}
else if(g_Length == 4)
{
g_Length += 1;
}
}
【パターン5】
private void GetString(string c)
{
return c + "\n";
}
私の考えではパターン4以外は試験が必要ないような気もするのですが
認識はあっていますでしょうか?
No.4ベストアンサー
- 回答日時:
何となくお考えになっていることがわかりますが、そもそも単体は
何か、何のためにやるのかを考えておくべきでしょう。
1) 詳細仕様と同じロジックになっていればOK なのか
想定された結果と合致していればOKなのか?
2) 自分が作った各モジュールの個別の試験までが単体何が、
それらの組み合わせのある程度の検証までが単体なのか?
3) 試験とは、詳細設計をなぞることなのか、詳細設計の問題点を探ることなのか?
結構立場によって答えが違ったりしますが(^^;
よく考えれば自ずと答えが出ると思います。
はずしていたらすいません。
No.3
- 回答日時:
1の回答者です。
研修課題(?でしょうか?)の内容がよくわからないのですが、質問に書かれているソースコードが課題の題材ではないということなのですね。
そうであれば、2の回答者様が仰るように、テスト項目はプログラムの設計書から起こすものなので、この情報では不十分です。
No.1
- 回答日時:
PG兼SEです。
どんな簡単なプログラムでも、処理を行うコード(ソースコード)にはテストが必要です。
例えば一番簡単なパターン5。(関数の戻り値はvoidではなくStringですね)
1. cに文字列が設定された場合
2. cに空文字列が設定された場合
3. cにnullが設定された場合
など、設定される可能性があるパターンはすべてテストします。(ここまでが基本)
さらに、この関数を呼ぶ側がcにどんな文字列を設定する可能性があるのかをプログラムの用途から考え、テスト項目に追加します。
例えばこの関数では末尾に改行コードを付加していますが、画面に出力するための編集でしょうか?ファイルに出力するためでしょうか?ファイルだとしたらテキストファイルでしょうか?csvあるいはxmlでしょうか?
用途により「正しく末尾に改行が付いているかどうか」を確認するためのテスト項目の書き方が変わってきます。
また設定される文字種も考慮します。
機種依存文字が設定される可能性があるのならそれもテストするし、といった具合です。
他のパターンも同様です。テスト項目作成には想像力が必要です。
・どんなケースが考えられるか
・最も一般的な正常ケースは何か
・一般的ではないが論理上可能な正常ケースにはどんなケースがあるか
・どんなエラーケースが考えられるか
処理を行うプログラムである限り、テストが不要ということはあり得ません。
研修中との事ですので、今の段階で求められている成果物がどこまでのレベルのものなのかがわかりませんが、基礎は絶対に手を抜かずにご自分でどんどん書籍や学習サイトで勉強なさって下さい。
二年後三年後、力の差が誰の目にも明らかになってきます。
この回答への補足
回答ありがとうございます。パターン5は記述ミスです。すいません。この全例文は質問時に想像で描き上げたものなので、意味はありません。
>・どんなケースが考えられるか
>・最も一般的な正常ケースは何か
>・一般的ではないが論理上可能な正常ケースにはどんなケースがあるか
>・どんなエラーケースが考えられるか
こちらの概要的な内容は重々承知なのですが、この上記のような内容を考える力が今なくて今回質問させていただきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- FX・外国為替取引 pine scriptのコードが動作しない 1 2023/02/01 19:03
- 英語 SPECS の所の LENGTH というのは、BARREL LENGTH なのか?全体の長さなのか? 1 2022/04/27 20:05
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- 英語 An increase in implant length (7.5 mm) did not exh 1 2022/07/20 13:43
- 統計学 生物統計学の質問 7 2022/05/17 13:59
- 英語 Length stoppers are provided in the kit and their 4 2022/04/22 00:51
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(悩み相談・人生相談) 好きな人がかつて国家試験の受験生だった、現在も好きな人が国家試験の受験生であるという方に質問です。 1 2023/05/05 14:43
- 運転免許・教習所 仮免許取得済みの場合の一発試験受験方法を教えてください。 自動車教習所に通っており、 第一段階は修了 5 2023/03/22 15:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムは組めないけど設計...
-
UMLによるシステム設計について
-
システム連絡表とは?
-
単体テストのテストケースの考...
-
DFDについて
-
vncとultravncとrealvncの3つ...
-
VBAからIPアドレスを取得...
-
ASP.NetでWebアプリ開発の経験...
-
QTシリアル通信
-
テストせずにクライアントに投...
-
Accessでナビゲーションウィン...
-
ubuntu(Linux)でWindowsのWin32...
-
VC++ ver6.0 って 現役ですか?
-
日本はこれから防衛産業に力を...
-
日本が世界に誇れる技術!!!
-
「自然開発」って何ですか?
-
トランジスタとICの発明が行わ...
-
これから10年使えるおすすめメ...
-
プロフェッショナル版とアカデ...
-
生殖医療の現状と課題について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報