CH4. 테스트 자동화 및 테스트 보강

김유찬·2023년 4월 9일
0

소프트웨어 공학

목록 보기
4/12
post-thumbnail

■ 테스트 자동화

  • 단위 테스트
    -세부 구현 클래스나 메서드에 대한 검증

  • 통합 테스트
    -컴포넌트간 기능 연동을 검증

  • 시스템 테스트
    -배포 환경에 대한 점검, 비기능 요소(성능, 안정성, 확장성)에 대한 검증

  • 인수 테스트
    -고객이 최종적으로 요구 사항 축족에 대한 검증을 수행

■ 테스트 보강(정적 검증)

□ 설계 원칙(상세)

1a. 단일 진입 및 단일 종료에 한정해야 함
-프로그램 가독성을 높이고 구현 실수의 가능성을 축소

1b. 동적 객체/변수의 사용을 자제하거나 생성시 안전성 검사를 수행해야 함
-메모리 누수, 데이터 불일치, 메모리 고갈을 유발할 수 있음
-안전성 검사를 수행하는 코드 추가

1c. 모든 변수는 초기화한 후 사용해야 함
-유효한 값이 없는 초기화 되지 않은 변수를 사용할 경우 undefined behavior 유발

1d. 항상 유일한 이름을 갖는 변수를 사용
-C 언어의 경우, 가장 가까운 범주에서 정의된 변수로 간주되어, 찾기 어려운 오류의 원인

1e. 가능한 전역 변수를 사용하지 않아야 함
-전역 변수는 여러 곳에서 동시에 접근이 가능하여 많은 결함의 원인
-전역 변수가 필요한 경우, static 키워드를 이용하여 접근을 효과적으로 제어

1f. 포인터는 제한적으로 사용
-부주의한 사용으로 할당되지 않은 메모리, 영역을 접근할 경우 다양한 결함의 원인

1g. 암묵적인 타입 변환은 사용하면 안 됨
-묵시적 변환 후 값이 대입될 경우 의도하지 않는 값이 들어갈 수 있음

1h. 숨겨진 데이터 혹은 제어 흐름은 사용되어서는 안 됨
-프로그램의 이해를 어렵게 해서 오류를 증가시킴

  • RTE/코딩률 검증
    -S/W 단위 설계와 구현의 검증 방법

1j. 재귀 호출은 사용하면 안 됨
-재귀함수 호출은 스택 공간을 초과하는 위험을 줄 수 있기 때문에 Overflow 오류를 발생시킬 수도 있음

1i. 무조건 점프문은 사용하면 안 됨
-goto는 프로그램의 흐름을 복잡하게 만들어 가독성을 떨어뜨리고 유지보수를 어렵게 함

  • RTE/코딩룰 검증
    -S/W 단위 설계와 구현의 검증 방법

profile
eukddan

0개의 댓글