표제지
논문개요
목차
I. 서론 14
II. 관련 연구 16
1. 소프트웨어 테스트 방법론 16
1) V-Model 16
2) 소프트웨어 단위 테스트 17
2. 임베디드 시스템의 펌웨어 테스트 20
1) 펌웨어의 정의 및 특징 20
2) 펌웨어 테스트의 특성 23
3. 펌웨어 단위 테스트 사례 35
1) 동적 분석을 이용한 인터페이스 기반 임베디드 소프트웨어 테스트 35
2) 테스트 도구를 사용한 펌웨어 단위 테스트 37
3) 실시간 임베디드 시스템의 펌웨어 테스트를 위한 자동화 도구 설계 39
4) 요약 41
III. 통합 개발 환경(IDE)를 활용한 펌웨어 단위 테스트 43
1. IAR Embedded Workbench의 기능 43
2. IAR Embedded Workbench 기능 활용 방안 47
1) C-SPY Debugger 48
2) C-STAT Static analysis 50
3) C-RUN Runtime Analysis 51
3. 기존 펌웨어 단위 테스트와의 비교 54
IV. 실험 및 결과 55
1. 실험 목표 55
2. 실험 방법 55
3. 통합 개발 환경(IDE)을 이용한 지연 함수 단위 테스트 57
1) 펌웨어 테스트 단위의 구분과 테스트 케이스 설계 57
2) 정적, 동적 분석 기반의 테스트 수행 및 결과 63
4. CUNIT을 활용한 지연 함수 단위 테스트 70
1) 펌웨어 테스트 단위의 구분과 테스트 설계 70
2) 테스트 수행 및 결과 76
5. 통합 개발 환경(IDE)을 이용한 온도 측정 함수 단위 테스트 81
1) 펌웨어 테스트 단위의 구분과 테스트 설계 81
2) 정적, 동적 분석 기반의 테스트 수행 및 결과 84
6. CUnit을 이용한 온도 측정 함수 단위 테스트 90
7. 테스트 결과 및 비교 91
8. 실험 결과 93
V. 결론 94
참고문헌 95
부록 : 설문지 97
Abstract 99
표 1. 일반 소프트웨어와 펌웨어의 비교 23
표 2. CUnit 의 Assertion 함수 38
표 3. 단위 테스트의 테스트 케이스 관리 양식 45
표 4. 단위 테스트 결과표 양식 46
표 5. C-SPY Debugger의 주요 기능 49
표 6. C-STAT Static Analysis 의 주요 기능 51
표 7. C-RUN Runtime Analysis 의 주요 기능 52
표 8. 기존 펌웨어 단위 테스트 사례와 제안한 단위 테스트 비교 54
표 9. 지연 함수 코드 57
표 10. IDE 활용의 지연 함수 단위 테스트의 설계1 58
표 11. IDE 활용의 지연 함수 단위 테스트의 설계2 60
표 12. IDE 활용의 지연 함수 단위 테스트의 드라이버 함수1 61
표 13. IDE 활용의 지연 함수 단위 테스트의 드라이버 함수2 62
표 14. IDE 활용의 지연 함수 단위 테스트의 결과 보고서 1 64
표 15. IDE 활용의 지연 함수 단위 테스트의 결과 보고서 2 67
표 16. 수정된 지연 함수 69
표 17. CUnit 활용의 지연 함수 단위 테스트의 설계1 70
표 18. CUnit 활용의 지연 함수 단위 테스트의 설계2 71
표 19. CUnit 활용의 지연 함수 단위 테스트의 드라이버 함수1 72
표 20. CUnit활용의 지연 함수 단위 테스트의 드라이버 함수2 76
표 21. CUnit 활용의 지연 함수 단위 테스트의 결과 보고서 1 77
표 22. IDE 활용의 지연 함수 단위 테스트의 결과 보고서 2 79
표 23. 온도 측정 함수 코드 81
표 24. IDE 활용의 온도 측정 함수 단위 테스트 설계 82
표 25. IDE 활용의 온도 측정 함수 단위 테스트의 드라이버 함수 84
표 26. IDE 활용의 온도 측정 함수 단위 테스트의 결과 보고서 86
표 27. IDE와 CUnit 활용의 지연 함수 단위 테스트 시간 비교 91
표 28. IDE와 CUnit 활용의 단위 테스트 특징 비교 92
그림 1. 국내 사물인터넷 시장 전망 14
그림 2. V-Model 개발 방법론 17
그림 3. 프로젝트 진행에 따른 버그 해결 비용 증가 18
그림 4. 단위 테스트 프로세스 19
그림 5. MCU 제어를 위한 펌웨어 20
그림 6. 제품 개발에 사용되는 MCU 변화 22
그림 7. 일반적인 펌웨어의 테스트 방법 24
그림 8. 임베디드 소프트웨어 테스트 구조 25
그림 9. 설문 결과: 종사 기업의 규모 27
그림 10. 설문 결과: 기업 업종의 구분 27
그림 11. 설문 결과: 설문자의 업무 28
그림 12. 설문 결과: 제품의 Software 형태 28
그림 13. 설문 결과: 테스트관련 프로세스 유무 질문 응답 29
그림 14. 설문 결과: 단위 테스트관련 실행 유무 질문 응답 30
그림 15. 설문 결과: 단위 테스트 계획서 작성 질문 응답 30
그림 16. 설문 결과: 단위 테스트의 테스트 케이스 관리 질문 응답 31
그림 17. 설문 결과: 단위 테스트 보고서 작성 질문 응답 31
그림 18. 설문 결과: 단위 테스트를 위한 도구 사용 질문 응답 32
그림 19. 설문 결과: 단위 테스트 업무의 비중 질문 응답 32
그림 20. 설문 결과: 테스트관련 프로세스 개선 필요의 질문 응답 33
그림 21. 설문 결과: 단위 테스트의 중요도관련 질문 응답 34
그림 22. 설문 결과: 단위 테스트의 업무 비중관련 질문 응답 34
그림 23. 스마트폰 드라이버와 자동차 인포테인먼트 테스트 결과 36
그림 24. 별도의 테스트 도구를 사용하는 펌웨어 단위 테스트 방법 37
그림 25. 실시간 임베디드 시스템의 펌웨어 테스트 자동화 도구 아키텍처 40
그림 26. 통합 개발 환경(IDE)을 활용한 단위 테스트 43
그림 27. IAR Embedded Workbench 의 구성도 47
그림 28. C-SPY Debugger 의 동작 모습 49
그림 29. 단위 테스트 진행 과정의 통합 개발 환경 사용 53
그림 30. 통합 개발 환경을 활용한 펌웨어 단위 테스트 실험 구성 55
그림 31. 단위 테스트 실험을 위한 하드웨어 구성 56
그림 32. CUnit을 활용한 펌웨어 단위 테스트 실험 구성 56
그림 33. 지연 함수 단위 테스트의 C-STAT 정적 분석 결과 63
그림 34. 지연 함수 단위 테스트의 C-RUN 동적 분석 결과 64
그림 35. 온도 측정 함수 단위 테스트의 C-STAT 정적 분석 결과 85
그림 36. 검사된 C-STAT 분석 항목의 상세 내용 85
그림 37. 검사된 C-STAT 분석 항목의 상세 내용 86