ソフトウェアエンジニアリング実験--テスト例の設計

3033 ワード

一、実験目的:
今回の実験を通じて所定のテーマのプログラムコードを完成し、等価類区分と境界値分析などのブラックボックス試験方法を用いて試験用例の設計を行い、試験結果の分析と総括を学ぶ.
二、実験環境:
コンピュータ、Windows 7オペレーティングシステム
三、実験内容及び結果:
タイトル:
あるプログラムの機能仕様の説明は以下の通りです.日付(*年*月*日)を入力し、その日付の前日日付を計算して出力します(例えば、1999-3-6を入力すると、1999-3-5を出力します).受信した入力日の有効範囲を1900年から2050年の間の日付とする.入力日が無効な場合、出力日の値は年0、月と日は入力日の値と同じとします(たとえば、1990-5-32と入力すると0-5-32が出力されます).
要件:
1、プログラミングは上述の機能を実現する.プログラムコードは次のとおりです.
 
import datetime
while True:
    date_A = input('     (  :yyyy-mm-dd):')
    #          
    year = int(date_A[0:4])
    month = int(date_A[5:7])
    day = int(date_A[8:])


    # print(year)
    # print(month)
    # print(day)
    def erro():
        date_Aa = '0000' + date_A[4:]
        print("NO PASS")
        print(date_Aa)


    def errorrr():
        if month == 2:
            if (year % 4 == 0 & year % 100 != 0) | (year % 400 == 0):
                if day > 29:
                    return True
            else:
                if day > 28:
                    return True
        elif (month == 1) | (month == 3) | (month == 5) | (month == 7) | (month == 8) | (month == 10) | (month == 12):
            if day > 31:
                return True
        else:
            if day > 30:
                return True


    if (year < 1900) | (year > 2500) | (month > 12) | (month < 1) | (day < 1):  #    ()
        erro()
        # print("      :"+date_Aa.strftime('%Y-%m-%d'))
    elif (errorrr()):
        erro()
    else:
        dayA = datetime.datetime.strptime(date_A, '%Y-%m-%d')
        delta = datetime.timedelta(days=1)
        dayB = dayA - delta
        print("         :" + dayB.strftime('%Y-%m-%d'))

2、機能規格の説明に基づき、等価類区分法と境界値分析法を総合的に使用し、ブラックボックス試験用例設計を行う.設計したテスト例を使用してプログラムをテストし、最後にテスト結果を分析してまとめます.
(1)分析プログラムの機能仕様説明、有効等価クラスと無効等価クラスをリストし、同時に可能な境界状況をリストする.
Ø有効等価類及び境界状況は以下の通り:
D 1:2<=day<=今月最終日
D2:day=1,month=2~12
D3:day=1,month=1
M1:1<=month<=12
Y1:1990<=year<=2050
Ø無効な等価類及び境界状況は以下の通りである:
D4:day<1
D 5:day>今月最終日
M2:month<1
M3:month>12
Y2;year<1900
Y3:year>2050
(3)設計試験用例は,すべての等価クラスおよび境界状況をカバーし,試験用例を実行する.実行結果分析プログラムの機能が要求に合っているかどうかによって、次の表を完成する.
テストケース番号
入力データ
上書き
予想出力結果
実績出力結果
1
2018-04-27
有効等価クラスD 1,M 1,Y 1
2018-04-26
2018-04-26
2
2018-04-01
有効等価クラスD 2,M 1,Y 1
2018-03-31
2018-03-31
3
2018-01-01
有効等価類D 3,M 1,Y 1
2017-12-31
2017-12-31
4
2018-04-00
無効等価クラスD 4
0000-04-00
0000-04-00
5
2018-04-32
無効等価クラスD 5
0000-04-32
0000-04-32
6
2018-00-27
無効等価クラスM 2
0000-00-27
0000-00-27
7
2018-13-27
無効等価類M 3
0000-13-27
  0000-13-27
8
0000-04-27
無効等価クラスY 2
0000-04-27
  0000-04-27
9
20000-4-27
無効等価クラスY 3
0000-04-27
  00000-4-27