4
Profiling & Performance
- 요구사항 기반 빠른 코드 커버리지 추출
- 다양한 인터페이스 지원 및 커버리지 분석 가능
- C, C++, C#, Java 지원
코드 커버리지 분석을 통한 품질 향상
- 함수별 수행 시간 및 주기성 측정
- Core, Process, Thread별 부하 측정
- CPU Clock 및 Memory 사용량 측정
성능 개선을 위한 분석 및 프로파일링
- 복잡한 소스코드의 흐름 및 변수 값 파악
- TASK Switching 정보 수집 및 분석(확인)
- 장시간 SW Trace를 통한 디버깅
코드 흐름 파악 및 오류 확인
5
6
구현 단계
디버깅
소스코드 수행 시 문제되는
부분을 디버깅
요구사항
정의
설계
구현
(Coding)
단위
시험
통합
시험
인수
시험
상세설계
시스템
시험
Validation
소프트웨어 개발 프로세스
V Model
Verification
단위 / 통합 시험 단계
코드 커버리지 분석
Statement, Branch, MC/DC 및
Call Coverage, Function Coverage
시스템 시험 단계
성능 측정
함수 수행 시간과 성능 분석을
위한 데이터 수집 및 분석
7
실행 결과
1:
2:
3:
4:
5:
main() start...
main() : If(true)
func1() start...
func1() end...
main() end...
void main()
{
printf("main() start...n");
if (1==1) {
printf("main() : If(true)n");
func1();
}
else {
printf("main() : elsen");
func2();
}
printf("main() end...n");
}
소스 코드
void func1()
{
printf("func1() start...n");
printf("func1() end...n");
}
void func2()
{
printf("func2() start...n");
printf("func2() end...n");
}
8
테스트포인트 삽입
소스 코드에 테스트 포인트
자동 삽입
수정된 소스 코드 빌드
테스트포인트가 삽입된 소스에
DT10 드라이버 추가 및 빌드
SW 실행 및 결과 분석
실 타깃에서 소프트웨어 실행 후
커버리지 결과 분석
Target
DynamicTracer
Host PC
Data Writing
Ethernet
JTAG
CAN
UART
ASYNC
GPIO
SPI
I2C
SD I/F
USB2.0
9
PDF 형태 엑셀 파일 형태
11
메모리 사용률 90%
초과시 대응 코드
Exception 구문
아직 개발되지
않은 장비 필요
기타 등등
12
1번 버튼 이벤트 처리
2번 버튼 이벤트 처리
3번 버튼 이벤트 처리
4번 버튼 이벤트 처리
13
14
15
TRACE32 시험 도구 GUI
16
테스트 시나리오 엑셀 파일
17
테스트 결과 엑셀 파일
19
- 소프트웨어 통합 및 빌드 – 테스트 – 배포를
자동화하여 개발의 효율성과 생산성을 향상
- 통합 결과 리포트를 제공하여 추적 관리 용이
- 정적/동적 시험을 자동화하여 소프트웨어
품질 확보
- 비용, 일정, 예산 등의 위험 부담 요소 감소
형상관리 서버 CI 서버
자동화 스크립트
코드 컴파일
테스트
배포
…
웹 서버
결과 Report
Notification
등
결과 Report 확인
결과 Report 전송
개발자
개발자
20
Source Control
Repository
Project
Sources
Build
Static
Analysis
Binary
Release
Continues Integration
Test Point
삽입
동적시험
결과 분석
Coverage
Report
Coverage
Review
commit
update
checkout
commit
Download
테스트케이스
실행
테스트포인트
실행 결과 취득
Test
Report
한컴MDS_TRACE32를 활용한 DT10 커버리지 측정 방안

한컴MDS_TRACE32를 활용한 DT10 커버리지 측정 방안

  • 4.
    4 Profiling & Performance -요구사항 기반 빠른 코드 커버리지 추출 - 다양한 인터페이스 지원 및 커버리지 분석 가능 - C, C++, C#, Java 지원 코드 커버리지 분석을 통한 품질 향상 - 함수별 수행 시간 및 주기성 측정 - Core, Process, Thread별 부하 측정 - CPU Clock 및 Memory 사용량 측정 성능 개선을 위한 분석 및 프로파일링 - 복잡한 소스코드의 흐름 및 변수 값 파악 - TASK Switching 정보 수집 및 분석(확인) - 장시간 SW Trace를 통한 디버깅 코드 흐름 파악 및 오류 확인
  • 5.
  • 6.
    6 구현 단계 디버깅 소스코드 수행시 문제되는 부분을 디버깅 요구사항 정의 설계 구현 (Coding) 단위 시험 통합 시험 인수 시험 상세설계 시스템 시험 Validation 소프트웨어 개발 프로세스 V Model Verification 단위 / 통합 시험 단계 코드 커버리지 분석 Statement, Branch, MC/DC 및 Call Coverage, Function Coverage 시스템 시험 단계 성능 측정 함수 수행 시간과 성능 분석을 위한 데이터 수집 및 분석
  • 7.
    7 실행 결과 1: 2: 3: 4: 5: main() start... main(): If(true) func1() start... func1() end... main() end... void main() { printf("main() start...n"); if (1==1) { printf("main() : If(true)n"); func1(); } else { printf("main() : elsen"); func2(); } printf("main() end...n"); } 소스 코드 void func1() { printf("func1() start...n"); printf("func1() end...n"); } void func2() { printf("func2() start...n"); printf("func2() end...n"); }
  • 8.
    8 테스트포인트 삽입 소스 코드에테스트 포인트 자동 삽입 수정된 소스 코드 빌드 테스트포인트가 삽입된 소스에 DT10 드라이버 추가 및 빌드 SW 실행 및 결과 분석 실 타깃에서 소프트웨어 실행 후 커버리지 결과 분석 Target DynamicTracer Host PC Data Writing Ethernet JTAG CAN UART ASYNC GPIO SPI I2C SD I/F USB2.0
  • 9.
    9 PDF 형태 엑셀파일 형태
  • 11.
    11 메모리 사용률 90% 초과시대응 코드 Exception 구문 아직 개발되지 않은 장비 필요 기타 등등
  • 12.
    12 1번 버튼 이벤트처리 2번 버튼 이벤트 처리 3번 버튼 이벤트 처리 4번 버튼 이벤트 처리
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 19.
    19 - 소프트웨어 통합및 빌드 – 테스트 – 배포를 자동화하여 개발의 효율성과 생산성을 향상 - 통합 결과 리포트를 제공하여 추적 관리 용이 - 정적/동적 시험을 자동화하여 소프트웨어 품질 확보 - 비용, 일정, 예산 등의 위험 부담 요소 감소 형상관리 서버 CI 서버 자동화 스크립트 코드 컴파일 테스트 배포 … 웹 서버 결과 Report Notification 등 결과 Report 확인 결과 Report 전송 개발자 개발자
  • 20.
    20 Source Control Repository Project Sources Build Static Analysis Binary Release Continues Integration TestPoint 삽입 동적시험 결과 분석 Coverage Report Coverage Review commit update checkout commit Download 테스트케이스 실행 테스트포인트 실행 결과 취득 Test Report