쉬운것 부터 하나씩.
1. MISRA_C_2012_12_01 : 수식 내부에 사용된 연산자의 우선순위가 명확한지 검사
- 연산자 == 는 괄호가 필요함
- 연산자 != 는 괄호가 필요함
- 연산자 -는 괄호가 필요함
- 연자 /는 과호가 필요함
- 연산자 %는 괄호가 필요함
2. MISRA_C_2012_08_03 : 동일한 객체 또는 함수의 모든 선언은 같은 이름과 타입 한정자를 사용해야 함.
3. MISRA_C_2012_15_06 : 반복문이나 선택문이 복합문인지 검사
- if 문의 tehn 또는 else 절이 복합문이 아님
- while 문의 body가 복합문이 아
※ 복합문을 만들기 위해서는 중괄호를 사용한다. {;}
4. MISRA_C_2012_DIR_04_04 : 코드 섹션 주석 처리 금
5. MISRA_C_2012_DIR_04_06 : 크기와 부호를 나타내는 typedefs는 basic numerical type 대신에 사용되어야 함.
- stdint.h 헤더에 정의 되어 있으나, 헤더를 사용하지 못할 경우는 별도로 정의해 줘야 함.
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef signed long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long uint64_t;
typedef float float32_t;
typedef double float64_t;
typedef long double float128_t;
#include <stdbool.h>
typedef _Bool bool_t; // true:1, false:0
6. MISRA_C_2012_10_04 : 일반 산술변환이 수행되는 연산자의 두 피연산자들은 필히 같은 essential 타입 분류에 속하는 타입이어야
- 일반 산술변환의 두 피연산자가 다른 essential type
7. MISRA_C_2012_08_02 : 함수는 이름 있는 파라미터로 구성된 프로토타입 형태여야 함.
- 함수 XXX 의 파라미터가 없지만 명시적인 void 타입 파라미터를 선언하지 않음.
8. MISRA_C_2012_08_07 : 함수나 객체가 하나의 번역단위에서 참조된다면 외부참조(external linkage)로 정의되면 안됨
- 하나의 Translation unit에서만 쓰인 파일 scope 변수 XXX 는 static으로 선언되어야
9. MISRA_C_2012_02_05
10. MISRA_C_2012_17_07
10. MISRA_C_2012_07_02
'소프트웨어 신뢰성 시험' 카테고리의 다른 글
소프트웨어 동적시험(Dynamic Testing) 이란? (3) | 2025.02.02 |
---|---|
Open Source 검사 (ScanCode) (0) | 2024.08.29 |
소프트웨어 정적 시험(Static Testing) 이란? (0) | 2024.02.17 |