소프트웨어 테스팅에서 임베디드 테스팅이란 무엇입니까?
임베디드 시스템이란 무엇입니까?
임베디드 시스템은 소프트웨어와 하드웨어가 긴밀하게 결합된 전자 제어 장치입니다. 임베디드 시스템에는 다양한 컴퓨팅 장치가 포함될 수 있습니다. 이는 애플리케이션별 기능을 작동하기 위해 다른 장치에 통합된 PC입니다. 최종 사용자는 일반적으로 이러한 장치의 존재조차 알지 못합니다.
임베디드 테스트
임베디드 테스트 임베디드 시스템의 소프트웨어와 하드웨어 모두의 기능적, 비기능적 속성을 확인하고 최종 제품에 결함이 없는지 확인하기 위한 테스트 프로세스입니다. 임베디드 테스트의 주요 목적은 임베디드 하드웨어 및 소프트웨어의 최종 제품이 고객의 요구 사항을 충족하는지 여부를 확인하고 검증하는 것입니다.
임베디드 소프트웨어 테스트는 해당 소프트웨어의 품질이 좋고 충족해야 하는 모든 요구 사항을 준수하는지 확인하고 확인합니다. 임베디드 소프트웨어 테스트는 의료 장비, 철도, 항공, 자동차 산업 등과 같은 중요한 애플리케이션의 보안을 보장하는 탁월한 접근 방식입니다. 소프트웨어 인증을 부여하려면 엄격하고 신중한 테스트가 중요합니다.
임베디드 소프트웨어 테스팅을 수행하는 방법
일반적으로 다음 네 가지 이유로 테스트합니다.
- 소프트웨어에서 버그를 찾으려면
- 사용자와 회사 모두에 대한 위험을 줄이는 데 도움이 됩니다.
- 개발 및 유지 관리 비용 절감
- 성능을 향상시키려면
임베디드 테스트에서는 다음과 같은 활동이 수행됩니다.
1. 소프트웨어에는 일부 입력이 제공됩니다.
2. 소프트웨어의 일부가 실행됩니다.
3. 소프트웨어 상태가 관찰되고 출력이 예상 결과와 일치하는지 여부, 요구 사항 준수 및 시스템 충돌이 없는지와 같은 예상 속성이 있는지 출력을 확인합니다.
임베디드 소프트웨어 테스트 유형
기본적으로 임베디드 소프트웨어에 적용할 수 있는 테스트 레벨은 XNUMX가지입니다.
소프트웨어 단위 테스트
단위 모듈은 함수 또는 클래스입니다. 단위 테스트는 개발팀, 주로 개발자가 수행하며 일반적으로 피어 리뷰 모델에서 수행됩니다. 모듈 사양에 따라 테스트 사례가 개발됩니다.
통합 테스팅
통합 테스트는 두 가지 부문으로 분류될 수 있습니다.
- 소프트웨어 통합 테스트
- 소프트웨어/하드웨어 통합 테스트.
마지막으로 하드웨어 도메인과 소프트웨어 구성 요소의 상호 작용이 테스트됩니다. 여기에는 내장된 주변 장치와 소프트웨어 간의 상호 작용을 검사하는 작업이 포함될 수 있습니다.
임베디드 소프트웨어 개발은 소프트웨어가 실행되는 실제 환경에 초점을 맞춰 일반적으로 소프트웨어와 병행하여 생성되는 독특한 특성을 가지고 있습니다. 이는 시뮬레이션된 조건에서 종합적인 테스트를 수행할 수 없기 때문에 테스트에 불편을 초래합니다.
시스템 단위 테스트
이제 테스트할 모듈은 완전한 소프트웨어 코드와 추가로 모든 요소로 구성된 전체 프레임워크입니다. 실시간 운영 체제(RTOS) 인터럽트, 작업 메커니즘, 통신 등과 같은 플랫폼 관련 부분. Point of Control 프로토콜은 더 이상 함수 호출이나 메소드 호출이 아니라 RTOS 메시지 대기열을 활용하여 전송/수신된 메시지입니다.
임베디드 시스템 실행을 지원하는 시스템의 능력을 평가하기 위해 시스템 리소스를 관찰합니다. 이 측면에 대해서는, 그레이박스 테스트 선호하는 테스트 방법입니다. 조직에 따라 시스템 단위 테스트는 개발자의 임무이거나 전담 시스템 통합 팀의 임무입니다.
시스템 통합 테스트
테스트할 모듈은 단일 노드 내의 구성 요소 집합에서 시작합니다. 제어 및 관찰 지점(PCO)은 네트워크 관련 통신 프로토콜과 RTOS(예: 네트워크 메시지 및 RTOS 이벤트)의 혼합입니다. 구성 요소 외에도 가상 테스터는 노드 역할도 수행할 수 있습니다.
시스템 검증 테스트
테스트할 모듈은 완전한 구현을 갖춘 하위 시스템이거나 완전한 임베디드 시스템입니다. 이 최종 테스트의 목적은 외부 엔터티 기능 요구 사항을 충족하는 것입니다. 외부 엔터티는 사람이거나 통신 네트워크의 장치이거나 둘 다일 수 있습니다.
차이점: 임베디드 테스팅과 소프트웨어 테스팅
소프트웨어 테스팅 | 임베디드 테스트 |
---|---|
소프트웨어 테스팅은 소프트웨어에만 관련됩니다. | 임베디드 테스트는 소프트웨어와 하드웨어 모두와 관련이 있습니다. |
전 세계적으로 수행되는 테스트 중 90%는 순전히 수동 블랙박스 테스트입니다. | 임베디드 테스트는 임베디드 시스템이나 칩에서 수행되며 블랙박스 테스트 또는 화이트박스 테스트가 될 수 있습니다. |
테스트의 주요 영역은 GUI 검사, 기능, 검증 및 일정 수준의 데이터베이스 테스트입니다. | 테스트의 주요 영역은 XNUMX번 하드웨어의 동작입니다. 그것에 주어진 입력의. |
소프트웨어 테스트는 주로 클라이언트-서버, 웹 및 모바일 기반 애플리케이션에서 수행됩니다. | 임베디드 테스트는 일반적으로 하드웨어에서 수행됩니다. |
예: 구글 Mail야후 Mail, Android 분야의 다양한 어플리케이션에서 사용됩니다. | 예: 의료 분야의 기계, 컴퓨터에 사용되는 마이크로컨트롤러. |
과제: 임베디드 소프트웨어 테스트
임베디드 소프트웨어 테스트 중에 직면할 수 있는 몇 가지 과제는 다음과 같습니다.
하드웨어 종속성
하드웨어 종속성은 하드웨어에 대한 제한된 액세스로 인해 임베디드 소프트웨어 테스트 중에 직면하는 주요 어려움 중 하나입니다. 그러나 에뮬레이터와 시뮬레이터는 실제 장치의 동작을 정확하게 나타내지 못할 수 있으며 시스템 성능과 응용 프로그램의 유용성에 대해 잘못된 느낌을 줄 수 있습니다.
오픈 소스 소프트웨어
임베디드 소프트웨어 구성 요소의 대부분은 본질적으로 오픈 소스이며 내부에서 생성되지 않았으며 이에 대한 완전한 테스트가 불가능합니다. 다양한 테스트 조합과 결과 시나리오가 있습니다.
소프트웨어와 하드웨어 결함
또 다른 측면은 새로 생성된 하드웨어용 소프트웨어를 개발할 때 이 프로세스 중에 높은 비율의 하드웨어 결함이 식별될 수 있다는 것입니다. 발견된 결함은 소프트웨어에만 국한되지 않습니다. 하드웨어와도 관련이 있을 수 있습니다.
재현 가능한 결함
임베디드 시스템의 경우 결함을 재현/재생산하기가 더 어렵습니다. 이는 임베디드 테스트 절차가 모든 결함 발생을 표준 사례보다 상당히 높게 평가하도록 강제하는 반면, 결함의 기초를 찾기 위해 시스템을 변경하는 데 필요한 만큼의 데이터를 수집하는 것은 강제하지 않습니다.
지속적인 소프트웨어 업데이트
임베디드 시스템은 커널 업그레이드, 보안 수정, 다양한 장치 드라이버 등과 같은 정기적인 소프트웨어 업데이트가 필요합니다. 소프트웨어 업데이트 영향으로 식별된 제약 조건은 버그 식별을 어렵게 만듭니다. 또한 빌드 및 배포 절차의 중요성이 커집니다.
제품 개요
임베디드 소프트웨어 테스팅에는 일반적인 소프트웨어 테스팅보다 더 어려운 몇 가지 어려움이 있습니다. 가장 근본적인 문제는 소프트웨어와 동시에 준비되고 신뢰할 수 있는 소프트웨어 테스팅을 수행하는 데 정기적으로 필요한 하드웨어 환경에 대한 긴밀한 의존성입니다. 때로는 사용자 정의 도구 없이 소프트웨어를 테스트하는 것이 어려울 수도 있는데, 이는 쉽게 후반 단계에서 테스팅에 집중하는 것을 매우 매력적으로 만듭니다.
가장 중요한 것 중 하나는 자동화된 소프트웨어 테스트를 자주 선택해야 한다는 사실입니다. 내장된 자동화 테스트는 완료하는 데 몇 시간이 걸리는 더 빠른 프로세스이며, 이런 식으로 소프트웨어 문제가 해결됩니다.