ソフトウェアテストについて話す(パート1)

    ソフトウェアテストは、ソフトウェアのライフサイクルにおいて重要な位置を占めています。現在、ソフトウェアテストは業界に発展しています。多くの国際的に有名なIT企業では、ソフトウェアテスターとソフトウェア開発者の比率は1:1に近いです。Microsoftではソフトウェアの比率ソフトウェア開発者に対するテスターは1.5〜2.5:1であるため、ビルゲイツ氏はかつて、マイクロソフトはソフトウェア開発会社だと多くの人が考えていると述べていました。実際、マイクロソフトはソフトウェアテスト会社です。これは、ソフトウェアテストがソフトウェアの品質に影響を与えることを示しています。保証の重要性。 

    プログラムが所定の機能を完了したかどうかを確認するために(所定の効果を達成するために)、通常はプログラムをテストしますが、現在でもソフトウェアテストはソフトウェアの欠陥を見つけてソフトウェアの品質を保証するための効果的な手段です。 

質問:プログラムテストの基本的な方法は何ですか?

[注]与えられた入力データと出力データのセットは、テストケースと呼ばれます。 

[注]時間とコストの制約により、すべての入力データをテストすることはほとんど不可能で非現実的です。したがって、プログラムをテストするには、非常に代表的な入力データをいくつか選択する必要があります。 

質問:テストケースを選択する方法は?

    テストデータは、プログラムのすべてのブランチ(パス)を可能な限りカバーし、繰り返しのカバレッジを最小限に抑える必要があります。これに基づいて、合法的な入力データだけでなく、違法な入力データやさまざまな境界条件も考慮する必要があります。例として、入力データ{-5、-10,105,110}は不正な入力データです。この不正なデータのセットをプログラムに入力したところ、入力データ{-5,105}の実際の結果が期待どおりではないことがわかりました。一貫性-現時点では、プログラムに問題が見つかりました。すべての可能な入力データをテストすることは不可能であるため、テスト用にいくつかの代表的な入力データを選択する必要があります。したがって、プログラムテストは実際にサンプリング検査を実行します。

質問:プログラムテストの目的は何ですか?

 

質問:テスターの主なタスクは何ですか?

質問:プログラムのテスト方法の分類は何ですか?

この記事の冒頭のプログラムに戻ります。

    プログラムの内部論理構造を十分に理解した後、典型的なホワイトボックステスト方法である上記の入力データを示します。典型的な境界テスト方法である入力データ{-5、105}を示します。 

質問:現在のバグに合わせてプログラムを変更するにはどうすればよいですか?

    最初に、入力スコアが正当であるかどうかを判断できます。そうでない場合は、「入力エラー」を直接出力します。正当である場合は、mark = score / 10の手順を実行してから、switch()構造を入力して判断します。これは回避できます。入力スコアが[-9、-1]∪[101、109]の間隔にある場合、出力は期待を満たしていません。

#include<stdio.h>
int main()
{
    int score, mark;
    printf("Please input score:");
    scanf("%d", &score);
    if(score>=0&&score<=100)//确保数据的合法性
    {
        mark=score/10;
        switch(mark)
        {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5: printf("grade:E\n"); break;
            case 6: printf("grade:D\n"); break;
            case 7: printf("grade:C\n"); break;
            case 8: printf("grade:B\n"); break;
            case 9:
            case 10: printf("grade:A\n"); break;
        }
    }
    else
    {
        printf("Input error!\n");
    }
    return 0;
}

[注]上記のテストケースでテストした後、新しいバグは見つかりませんでした。 

 

おすすめ

転載: blog.csdn.net/weixin_42048463/article/details/115078491