Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date 2012-10-25 Team Information Sanghyun Yoon shyoon.dslab@gmail.com Dependable Software Laboratory 1
Table of Contents 1 Introduction... 4 1.1 Objectives... 4 1.2 Background... 4 1.3 Scope... 4 1.4 Project plan... 4 1.5 Configuration management plan... 4 1.6 References... 5 2 Test items... 5 3 Features to be tested... 6 4 Features not to be tested... 6 5 Approach... 7 6 Item pass/fail criteria... 7 7 Unit test design specification... 8 7.1 Test design specification identifier... 8 7.2 Features to be tested... 8 7.2.1 Processes in SRA... 8 7.3 Approach refinements... 8 7.3.1 Brute force testing... 8 7.4 Test identification... 8 7.5 Feature pass/fail criteria... 9 8 Unit test case specification... 9 Dependable Software Laboratory 2
8.1 Test case specification identifier... 9 8.2 Test items... 11 8.3 Input specifications... 11 8.4 Output specifications... 11 9 Testing tasks... 11 10 Environmental needs... 11 11 Unit Test deliverables... 12 11.1 Unit test plan... 12 11.2 Unit test design specification... 12 11.3 Unit test case specification... 12 11.4 Unit test summary report... 12 12 Schedules... 12 Dependable Software Laboratory 3
1 Introduction 1.1 Objectives 본문서는 digital watch system 의 unit test 를수행하기위한계획문서이며다음과같은목 적을갖는다. (1) Digital watch system 의 unit test 를수행하기위해필요한홗동및자원을정의한다. (2) Digital watch system 의 unit test 를수행하기위한 test approach 및 techniques 을정의한 다. (3) Digital watch system 의 unit test 를수행하기위한홖경적인요구사항및 test 도구들을정 의한다. 1.2 Background Digital watch system은현재시각을알려주는기본기능외에도알람, 스톱워치등의다양한기능을가지고있는시계이다. 이시스템은여러개의입력을가지고있으며실행시갂, 반응시갂등도시스템의성능을좌우하는중요한 feature들이다. Unit test는시스템을구성하는최소단위모듈들을대상으로하는 test이며, 시스템의성능을좌우하는 feature들이요구사항을만족하는지를확인할수있는기본적인 test approach이다. 1.3 Scope 이계획문서는 digital watch system의 unit test를수행하기위한모든것을포함한다. Digital watch system 의 unit test를수행하기위한자원과절차, test approach와 technique과필요로하는홖경및도구등을정의한다. Digital watch system의 unit test는시스템을구성하는최소단위의모듈들을대상으로하며, 구현된모듈이요구사항을만족하는지를 test한다. 1.4 Project plan 1.5 Configuration management plan Digital watch system 의 program source code 및 unit test 를위한 test code 는 CTIP (Continuous Testing & Integration Platform) 홖경에서이루어지며, program source code/test code 의변경및수정사항은지속적으로통합되고 test 된다. (1) Program source code 의변경 Program source code 에변경및수정발생시, 이를통합하고수동적으로 unit test 를 Dependable Software Laboratory 4
수행한다. (2) 일정주기 CI server 에의해관리되는 program source code 는일정주기를가지고자동적으로 build 및 unit test 를수행한다. 1.6 References Test plan 은다음문서들을기반으로작성되었으며, unit test 수행을위한자원으로서사용된 다. DS.2012.DWS.SRS-2.0 T3_SRA T3_ SDS IEEE 829-1998 Standard for Software Test Documentation IEEE 1012-2012 Standard for System and Software Verification and Validation 2 Test items Digital watch system 을구성하는최소단위의모듈들이 unit test 의대상이된다. 각모듈의요구 사항을만족하는지를 test 하며, test item 은다음자료들로부터작성되었다. (1) Functionality of modules T3_SRA: Process specification, DFD 아래그림은그일부를참조한것임. Dependable Software Laboratory 5
(2) Module interface T3_SRA: Process specification, Structure chart 3 Features to be tested (1) Processes in SRA: 각프로세스가가지고있는요구사항을만족하는지를 test 한다 (2) Modules in SDS: 각모듈이가지고있는데이터인터페이스를 test 한다. <Table 1 테스트 할 Process (DFD) 리스트 > 의 Process name 참조 Table 1 테스트할 Process (DFD) 리스트 ID Name Description 2.1.4.3 Stop Time Increase 현재 Stop Time 을 Tick 마다 0.01 초씩증가시킨다. 2.1.4.4 Stop Watch initiate Stop Time 을 0 분 0.00 초로초기화시킨다. 2.1.3.1 Setting Distributer Setting 모드가홗성화되면 input data 에따라각 setting process 를동작시킨다. 2.1.3.2 Second Setter 초를증가시킨다. 2.1.3.3 Hour Setter 시를증가시킨다. 2.1.3.4 Minute Setter 분을증가시킨다. 2.1.3.5 Month Setter 월을증가시킨다. 2.1.3.6 Date Setter 날짜를증가시킨다. 4 Features not to be tested (1) Processes in SRA: 외부장치드라이버, 단순데이터전달프로세스등은 test 에서제외한 다. 또는 SRA, SDS 문서와다르게실제구현에서는 unit 으로나누어있지않은프로세스를제 Dependable Software Laboratory 6
외한다. (2) Modules in SDS: <Table 2 테스트하지않을 Process (DFD) 리스트 > 의 Process name 참조 Table 2 테스트하지않을 Process (DFD) 리스트 ID Name Description 1 Input Converter 각버튼의입력에따라다른모듈에서구분할수있는형태로 Input 을가공하여준다. 4 Display Parser Display Data 를분석하여 Display 모듈에직접표시할 Display Command 를생성한다. 2.1.1 Mode Control Button Input 에따라적절한 Mode Process 를 Enable/Disable 시킨다. (Unit 을찾기가어려워생략 ) 2.1.2 Time Keeper Current Time 을 Tick 마다 Display Data 로바꾸어 Display Process 에전달한다. 3.1 Back Light Control d button input 이들어오면 Back Light On 을 Enable 시킨후 2tcik 이지난이후에 Back Light On 을 Disable 시킨다. (Unit 을찾기가어려워생략 ) 3.2 Back Light On SRA 에 3.1 과설명이중복. 수정필요. Mode Control 의상태와 input data 에따라 Stop Watch 에 2.1.4.1 Stop Watch Control 관렦된 Process 를컨트롤한다. (Unit 을찾기가어려워 생략 ) 2.1.4.2 Up Line Display Stop Watch 의윗줄의 Display Data 를생성한다. 2.1.4.5 Display Refresh tick 마다 Stop Time 을가져와 Display Data 를전송하여 Display 를 Tick 마다 Refresh 시킨다. 2.1.4.6 Refresh Once Tick 마다 Stop Time 을가져와 Display Data 를전송하여 Display 를 1 회 Refresh 시킨다. 2.1.3.7 Setting Display 각 process 에서전달해준 Blink Element 에따라 Display Data 를생성한다. 2.1.3.8 Year Setter SRA 에 process spec 이없음. 5 Approach Digital watch system 의 program source code 및 unit test 를위한 test code 는 CTIP (Continuous Testing & Integration Platform) 홖경에서이루어지며, program source code/test code 의변경및 수정사항은지속적으로통합되고 test 된다. (1) Brute force testing: 각모듈의요구사항을만족하는지를확인할수있는 test case 를작성 한다. 그이외의예외상황에대해서는 test 하지않는다. 6 Item pass/fail criteria Dependable Software Laboratory 7
Functional test pass/fail criteria: 각모듈은요구사항을모두만족하여야한다. 7 Unit test design specification 7.1 Test design specification identifier DWS.UTD.00.00 7.2 Features to be tested 7.2.1 Processes in SRA <Table 1 테스트할 Process (DFD) 리스트 > 참조 7.3 Approach refinements 7.3.1 Brute force testing DWS 의각모듈이요구사항을만족하는지를확인하기위하여, 요구사항에정의된내용 에기반하여 test case 를작성한다. 그이외의예외상황에대해서는 test case 를작성하 지않는다. 7.4 Test identification Table 3 Test Design Identification Identifier Feature (Process ID in DFD) Valid/ Invalid value DWS.UTC.00.000 2.1.4.3 Stop Time Increase Stop time의 msec<99인상태에서 Tick이들어온다. DWS.UTC.00.001 2.1.4.3 Stop Time Increase Stop time의 msec=99인상태에서 Tick이들어온다. DWS.UTC.00.002 2.1.4.3 Stop Time Increase Stop time의 sec=59, msec=99인상태에서 Tick 이들어온다 DWS.UTC.01.000 2.1.4.4 Stop Watch initiate Trigger가들어온다. DWS.UTC.02.000 2.1.3.1 Setting Distributer Second Setting 상태에서 [a] 가들어온다. DWS.UTC.02.001 2.1.3.1 Setting Distributer Second Setting 상태에서 [b] 가들어온다. DWS.UTC.02.002 2.1.3.1 Setting Distributer Second Setting 상태에서 [c] 가들어온다. DWS.UTC.02.003 2.1.3.1 Setting Distributer Second Setting 상태에서 [d] 가들어온다. DWS.UTC.02.004 2.1.3.1 Setting Distributer Hour Setting 상태에서 [a] 가들어온다. DWS.UTC.02.005 2.1.3.1 Setting Distributer Hour Setting 상태에서 [b] 가들어온다. DWS.UTC.02.006 2.1.3.1 Setting Distributer Hour Setting 상태에서 [c] 가들어온다. DWS.UTC.02.007 2.1.3.1 Setting Distributer Hour Setting 상태에서 [d] 가들어온다. DWS.UTC.02.008 2.1.3.1 Setting Distributer Minute Setting 상태에서 [a] 가들어온다. DWS.UTC.02.009 2.1.3.1 Setting Distributer Minute Setting 상태에서 [b] 가들어온다. Dependable Software Laboratory 8
DWS.UTC.02.010 2.1.3.1 Setting Distributer Minute Setting 상태에서 [c] 가들어온다. DWS.UTC.02.011 2.1.3.1 Setting Distributer Minute Setting 상태에서 [d] 가들어온다. DWS.UTC.02.012 2.1.3.1 Setting Distributer Year Setting 상태에서 [a] 가들어온다. DWS.UTC.02.013 2.1.3.1 Setting Distributer Year Setting 상태에서 [b] 가들어온다. DWS.UTC.02.014 2.1.3.1 Setting Distributer Year Setting 상태에서 [c] 가들어온다. DWS.UTC.02.015 2.1.3.1 Setting Distributer Year Setting 상태에서 [d] 가들어온다. DWS.UTC.02.016 2.1.3.1 Setting Distributer Month Setting 상태에서 [a] 가들어온다. DWS.UTC.02.017 2.1.3.1 Setting Distributer Month Setting 상태에서 [b] 가들어온다. DWS.UTC.02.018 2.1.3.1 Setting Distributer Month Setting 상태에서 [c] 가들어온다. DWS.UTC.02.019 2.1.3.1 Setting Distributer Month Setting 상태에서 [d] 가들어온다. DWS.UTC.02.020 2.1.3.1 Setting Distributer Date Setting 상태에서 [a] 가들어온다. DWS.UTC.02.021 2.1.3.1 Setting Distributer Date Setting 상태에서 [b] 가들어온다. DWS.UTC.02.022 2.1.3.1 Setting Distributer Date Setting 상태에서 [c] 가들어온다. DWS.UTC.02.023 2.1.3.1 Setting Distributer Date Setting 상태에서 [d] 가들어온다. DWS.UTC.03.000 2.1.3.2 Second Setter Current time의 sec<59인상태에서 Trigger가들어온다. DWS.UTC.03.001 2.1.3.2 Second Setter Current time의 sec=59인상태에서 Trigger가들어온다. DWS.UTC.04.000 2.1.3.3 Hour Setter Current time의 hour<23인상태에서 Trigger가들어온다. DWS.UTC.04.001 2.1.3.3 Hour Setter Current time의 hour=23인상태에서 Trigger가들어온다. DWS.UTC.05.000 2.1.3.4 Minute Setter Current time의 min<59인상태에서 Trigger가들어온다. DWS.UTC.05.001 2.1.3.4 Minute Setter Current time의 min=59인상태에서 Trigger가들어온다. DWS.UTC.06.000 2.1.3.5 Month Setter Current time의 month<12인상태에서 Trigger 가들어온다. DWS.UTC.06.001 2.1.3.5 Month Setter Current time의 month=12인상태에서 Trigger 가들어온다. DWS.UTC.07.000 2.1.3.6 Date Setter Current time의 date<end_day인상태에서 Trigger가들어온다. DWS.UTC.07.001 2.1.3.6 Date Setter Current time의 date=end_day인상태에서 Trigger가들어온다. 7.5 Feature pass/fail criteria DWS 의각모듈 ( 프로세스 ) 은 SRA 에정의되어있는요구사항 ( 입력 / 출력및동작 ) 을모두 만족해야한다. 각모듈 ( 프로세스 ) 의입력 / 출력및동작은 SRA 의 process description 항목 을참조한다. 8 Unit test case specification 8.1 Test case specification identifier Dependable Software Laboratory 9
Table 4 Test Case Identification Test case identifier Input specification Output specification DWS.UTC.00.000 Trigger in/ stop_time->stop_msec=0 stop_time->stop_msec=1 DWS.UTC.00.001 Trigger in/ stop_time->stop_msec=99 stop_time->stop_msec=0 stop_time->stop_sec=1 DWS.UTC.00.002 Trigger in/ stop_time->stop_msec=99/ stop_time->stop_sec =59/ stop_time->stop_min=0 stop_time->stop_msec=0 stop_time->stop_sec =0 stop_time->stop_min=1 DWS.UTC.01.000 Trigger in stop_time->stop_msec=0 stop_time->stop_sec =0 stop_time->stop_min=0 DWS.UTC.02.000 [a]/set_state=1 set_state=0 DWS.UTC.02.001 [b]/set_state=1 set_state=1 DWS.UTC.02.002 [c]/set_state=1 set_state=2 DWS.UTC.02.003 [d]/set_state=1 - DWS.UTC.02.004 [a]/set_state=2 set_state=0 DWS.UTC.02.005 [b]/set_state=2 set_state=2 DWS.UTC.02.006 [c]/set_state=2 set_state=3 DWS.UTC.02.007 [d]/set_state=2 - DWS.UTC.02.008 [a]/set_state=3 set_state=0 DWS.UTC.02.009 [b]/set_state=3 set_state=3 DWS.UTC.02.010 [c]/set_state=3 set_state=4 DWS.UTC.02.011 [d]/set_state=3 - DWS.UTC.02.012 [a]/set_state=4 set_state=0 DWS.UTC.02.013 [b]/set_state=4 set_state=4 DWS.UTC.02.014 [c]/set_state=4 set_state=5 DWS.UTC.02.015 [d]/set_state=4 - DWS.UTC.02.016 [a]/set_state=5 set_state=0 DWS.UTC.02.017 [b]/set_state=5 set_state=5 DWS.UTC.02.018 [c]/set_state=5 set_state=6 DWS.UTC.02.019 [d]/set_state=5 - DWS.UTC.02.020 [a]/set_state=6 set_state=0 DWS.UTC.02.021 [b]/set_state=6 set_state=6 DWS.UTC.02.022 [c]/set_state=6 set_state=1 DWS.UTC.02.023 [d]/set_state=6 - DWS.UTC.03.000 Trigger in/ current_time->sec=0 current_time->sec=1 DWS.UTC.03.001 Trigger in/ current_time->sec=59 current_time->sec=0 DWS.UTC.04.000 Trigger in/ current_time->hour=0 current_time->hour=1 DWS.UTC.04.001 Trigger in/ current_time->hour=23 current_time->hour=0 DWS.UTC.05.000 Trigger in/ current_time->min=0 current_time->min=1 DWS.UTC.05.001 Trigger in/ current_time->min=59 current_time->min=0 DWS.UTC.06.000 Trigger in/ current_time->month=1 current_time->month=2 DWS.UTC.06.001 Trigger in/ current_time->month=12 current_time->month=1 DWS.UTC.07.000 Trigger in/ current_time->date=1 current_time->date=2 Dependable Software Laboratory 10
DWS.UTC.07.001 Set state Trigger in/ current_time->month=1/ current_time->date=31 current_time->date=1-0: initial, 1: Second Setting, 2: Hour Setting, 3: Minute Setting, 4: Year Setting, 5: Month Setting, 6: Date Setting 8.2 Test items <Table 3 Test Design Identification> 참조 8.3 Input specifications <Table 4 Test Case Identification> 참조 8.4 Output specifications <Table 4 Test Case Identification> 참조 9 Testing tasks Table 5 Testing tasks & Schedule Task Predecessor tasks Special skills Effort Finish date (1) Unit Test Plan 작성 DS-DWS-2012-SRS 작성 DS-DWS-2012-SRA 작성 DS-DWS-2012-SDS 작성 3 DWS 구현 (2) Test design specification Task 1 DWS 에대한이해 5 (3) Test case specification Task 2 DWS 에대한이해 5 (4) Test execution Task 3 Test code 작성 Test tools 에대한이해 4 (5) Test result report Task 4 1 (6) 개발팀에 report 전달 Task 5 1 10 Environmental needs Digital watch system의 unit test를위한홖경적요구사항은다음과같다. (1) Hardware & Platform, Eclipse IDE (Integrated Development Environment) gcc compiler/linker Dependable Software Laboratory 11
(2) CTIP (Continuous Testing & Integration Platform) Environment CI server SVN repository server CI/SVN server에접근가능한단말 PC Test tools CUnit unit test framework for C gcov code coverage measurement tool 11 Unit Test deliverables 11.1 Unit test plan 11.2 Unit test design specification 11.3 Unit test case specification 11.4 Unit test summary report 12 Schedules <Table 3 Testing tasks & Schedule> 참조 Dependable Software Laboratory 12