From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

​테스트 관리 소프트웨어가 대응식 개발을 방지하는 방법

개요

​​디바이스가 더욱 복잡해짐에 따라 테스트 팀은 제품을 출시해야 하는 시간적 압박에 더 시달리고 있으며, 이에 따라 최적화된 테스트 전략이 그 어느 때보다 중요해지고 있습니다. 테스트 엔지니어는 이전 테스트 장치를 유지 관리하면서 후속 제품에 대한 테스트 장치를 빌드해야 하는 힘겨운 작업을 맡고 있습니다. 이 백서에서는 테스트 엔지니어의 당면 과제를 살펴보고, 테스트 프레임워크를 사용하여 생산성을 높이고 재작업과 유지 관리를 줄임으로써 문제를 해결하는 방법을 설명합니다. 마지막으로 테스트 프레임워크를 빌드하고 유지 관리하는 상용 솔루션으로서 NI TestStand를 소개하면서 리스크 감소, 유연한 개발, 기능 구현이라는 추가 장점을 강조합니다.

내용

테스트 설계의 악순환

테스트 엔지니어의 우선순위는 작업 중인 제품을 최종 고객에게 전달하는 것입니다. 그러나 제품이 점점 더 복잡해지면서 테스트도 복잡해지고 있습니다. 전구를 예로 들어보겠습니다. 스마트 전구에는 Wi-Fi 및 블루투스 기능이 내장되어 있고 심지어 스피커가 내장된 경우도 있습니다. 지난 몇 년 동안 테스트 팀에는 파워 일렉트로닉스, 무선 연결 및 음향 테스트가 추가되었습니다.

연장된 제품 개발 시간 다이어그램

그림 1: 고급 제품 기능이 개발 시간을 연장하여 테스트 개발에 사용할 수 있는 시간이 단축됐습니다.

그림 1은 각 단계에서 계획한 시간과 현실과의 차이를 보여줍니다. 기한은 같기 때문에 초기 단계에서 발생한 지연으로 인해 테스트 개발 시간이 줄어들게 되면 테스트 엔지니어는 단기간에 더 많은 기능을 테스트해야 합니다. 테스트 개발 단계의 시간이 줄어들면 테스트 엔지니어에게 사전 대책을 강구하기보다는 대응식으로 행동하도록 요구하게 됩니다. 테스트 엔지니어에게는 효율적인 접근 방식을 고려할 시간이 없습니다.

대응식 테스트 개발의 비용

짧은 기간에 많은 테스트를 수행하는 이러한 추세는 몇 년 동안 지속되었지만 이러한 유형의 대응식 개발의 비용은 즉각적으로 명확하지 않기 때문에 간과되는 경우가 많습니다. 대응식 개발의 한 가지 중요한 부작용은 유연성 부족입니다. 이러한 유연성 부족은 비대하고 유연성 없는 테스트 장치에 기능을 추가할 방법을 찾는 데 시간을 낭비하면서 테스트 엔지니어의 생산성 손실로 이어질 수 있습니다. 어떤 점에서는 동일한 테스트 장치를 계속 빌드하는 것은 비효율적입니다. 엔지니어에게 다시 시작해서 이전과 같은 기능을 다시 빌드하는 데 시간을 낭비하도록 강요하게 됩니다. 

많은 양의 재작업으로 이어질 뿐만 아니라 유지 관리해야 할 테스트 장치 수도 늘어나게 됩니다. 유지 관리 단계는 특히 테스트 장치를 빌드하는 엔지니어가 해당 장치를 충분히 설명하는 문서를 남기지 않고 퇴사하는 경우 문제가 발생합니다. 전체 시스템을 다시 빌드해야 할 수도 있습니다.

확장 가능한 프레임워크를 사용하여 테스트

이러한 대응식 사이클을 벗어나는 방법은 테스트 프레임워크를 만드는 것입니다. 테스트 프레임워크는 자동화된 테스트 시퀀스의 개발, 실행, 배포 및 보고에 사용되는 상위 레벨 소프트웨어 어플리케이션입니다.

TestStand를 사용하여 절약된 시간의 백분율

그림 2: 조직에 TestStand를 통합한 NI 고객이 절약한 시간 백분율.

자세한 내용은 빌드 또는 구매 가이드를 참조하십시오.

조직이 이러한 유형의 프레임워크를 활용하면 개발 시간을 최대 75%까지 절감하고 유지 관리 시간을 최대 67%까지 줄일 수 있습니다.

좋은 프레임워크의 요건

테스트 장치에는 공통된 요소와 고유한 요소가 있습니다. 공통된 요소는 테스트 조직에서 사용하는 재사용 모델의 기반입니다. 예를 들어 대부분의 테스트 장치에는 사용자 인터페이스가 필요하지만, 인터페이스는 사용자의 기호와 역량에 맞아야 합니다.

공통:

테스트 관리 소프트웨어

  • 운영자 인터페이스
  • 사용자 관리
  • 테스트 흐름 제어
  • 한계 확인
  • 병렬 스레드 관리
  • 결과 처리

고유:

테스트 개발 소프트웨어

  • 계측기 제어
  • 자극
  • 측정
  • DUT 컨트롤
  • 디지털 신호 프로세서(DSP)

목록 1: 테스터의 공통 및 고유 요소 분석 예

테스트 시스템을 다시 빌드하는 것을 방지하기 위해서는 모든 공통 요소를 확인하여 모든 테스트 장치에서 다시 사용할 수 있는 프레임워크에 넣어야 합니다. 프레임워크는 공통 요소를 지원할 뿐만 아니라 현재와 미래에 고유한 요소도 지원할 만큼 충분히 유연해야 합니다.

테스트 프레임워크 사용의 장점

코드 재사용성 향상 

모든 테스트 팀이 단일 테스트 프레임워크를 표준화하고 나면 코드를 쉽게 공유할 수 있습니다. 공통 요소뿐 아니라 고유한 요소도 공유할 수 있습니다.

개선된 코드 재사용성을 보여주는 다이어그램

그림 3: 보드의 세 가지 배리언트로, 두 번째 보드에는 Bluetooth 기능이 추가되고 세 번째 보드에는 Wi-Fi 기능이 추가된다는 중요한 차이점이 있습니다.

예를 들어, 그림 3에는 세 가지 보드 배리언트가 있습니다. 배리언트 2와 3에 추가되는 기능은 나중에 더 늘어날 수 있지만 보드를 테스트하는 기본 방법은 그대로 유지됩니다. 대응식 테스트 조직이라면 동일한 기본 테스트 시스템을 세 번 개발해야 할 수 있습니다. 이러한 대응식 접근 방법은 테스트 장치에 대한 사전 투자 비용이 증가할 뿐만 아니라 장기적으로 유지 관리 비용에도 영향을 미칩니다.

생산성 향상

엔지니어는 가장 적격인 일을 하면서 시간을 보낼 때 생산성이 가장 높습니다. 그러나 사용자 인터페이스 빌드나 리포트 생성 같은 다른 작업을 하는 데 상당한 시간을 보내야 하는 경우가 종종 있습니다. 모든 테스트 장치에 대한 공통의 프레임워크를 만들면 새 테스트 장치를 개발하는 속도가 훨씬 빨라집니다. 모든 표준 구성 요소가 이미 빌드되어 있으면 테스트 엔지니어가 디바이스를 테스트하는 데 필요한 기능을 빌드하는 데 집중할 수 있는 시간이 확보되어 신제품 출시에 걸리는 시간이 단축됩니다.

유지 관리 작업 감소

유지 관리 단계는 테스트 장치의 수명 중 가장 긴 기간을 차지합니다. 유지 관리에는 새 테스트 추가, 소프트웨어 또는 OS 업그레이드와 호환성 유지, 버그 감지 등이 포함됩니다. Test Executive의 유지 관리는 문서 작성 영역까지로 확대됩니다. 테스트 장치 개발 단계에서 내린 결정으로 유지 관리 단계가 얼마나 시간이 걸릴지 또는 얼마나 불만스러울지가 결정됩니다.

NI TestStand의 장점

테스트 프레임워크 빌드의 난관은 이 작업을 수행하는 데 필요한 자격과 시간을 가진 사람을 찾는 것입니다. 그래서 NI가 TestStand를 개발했습니다. 모든 테스트 작업에 사용할 수 있는 맞춤형 상용 Test Executive입니다. TestStand는 모든 테스트 장치에 대한 공통의 프레임워크를 제공하여 향후 테스트 장치 개발을 간단하게 만듭니다. 표준 구성 요소가 모두 빌드되어 있으므로 테스트 엔지니어는 고유한 특정 테스트 기능을 만드는 데 집중하여 변동을 줄이고 제품 출시 기간을 단축할 수 있습니다.

프로그래밍 언어 유연성

테스트 엔지니어는 여러 다양한 언어에 능숙하며, 선호하는 언어로 테스트 수행 단계를 작성하는 데 집중할 수 있어야 합니다. TestStand는 언어에 상관없이 사용할 수 있습니다. 즉 테스트 조직은 Python, C/C++, .NET 등 다양한 언어로 프로그래밍하고 동일한 프레임워크에 모두 연결하고 함께 작동시킬 수 있습니다.

리스크 감소 

테스트 관리 솔루션 개발은 태스크의 시작일 뿐입니다. 소프트웨어는 일회성 비용이 아니라 지속적인 작업입니다. 소프트웨어는 다음 목표를 달성하도록 유지 관리되어야 합니다.

  • 필요한 기능 추가
  • 발견된 버그 또는 결함 수정 
  • 새 소프트웨어와 호환성 유지
  • 새로운 기술 발전 사항 확인 및 활용

이러한 유지 관리 작업은 중요하며 몇 달간의 개발 기간이 소요됩니다. 반면, NI TestStand처럼 바로 실행할 수 있는 Test Executive 패키지는 NI에서 정기적으로 업데이트하여 경쟁력과 실행 가능성을 유지합니다. 이러한 정책을 통해 적은 비용으로 최신 기술을 활용하고 버그 수정과 새 기능을 얻을 수 있습니다. 자세한 내용은 테스트 관리 소프트웨어 – 구현할 것인가 구매할 것인가? 가이드를 참조하십시오.

고급 기능 구현

사용자 정의 Test Executive 빌드와 관련된 가장 명백한 비용은 Test Executive의 모든 기능 구현과 관련된 사전 투자 개발 비용입니다. 다음 테이블은 테스트 프레임워크와 관련된 기능을 설명합니다. 이 테이블은 각 기능을 처음부터 구현하는 데 필요한 예상 시간과 NI TestStand를 사용하여 동일한 기능을 구현하는 데 걸리는 시간을 비교한 것입니다.

NI TestStand 로 절약된 시간을 보여주는 차트

그림 4: NI는 TestStand에서 표준 기능을 쉽게 구현할 수 있도록 테스트 전문가와 협력했습니다.

더 자세한 정보는 구현 또는 구매 가이드를 참조하십시오.

어느 때는 일부 조직과는 관련이 없지만 그렇다고 향후에도 관련이 없다는 의미는 아닙니다.

이 섹션에서는 병렬 실행, 리포트 생성, 데이터베이스 연결, 사용자 인터페이스, 도구 디버그/배포 등 TestStand에서 쉽게 추가할 수 있는 유용한 기능을 설명합니다. 

병렬 실행

병렬 테스트 실행을 보여주는 다이어그램

그림 5: 이 다이어그램은 여러 UUT(테스트 대상 유닛)를 한 번에 테스트할 수 있도록 시퀀스를 파이프라인하고 리소스를 자동 예약하는 TestStand의 기능을 보여줍니다.

테스트 처리량을 늘리는 방법은 여러 디바이스에서 테스트를 동시에 수행하는 것입니다. 병렬 실행을 수행할 수 있는 소프트웨어를 개발하는 데 걸리는 시간을 살펴보면 테스트 조직이 반드시 해야 하는 경우가 아니면 이 기능을 만드는 것을 피하는 이유를 분명히 알 수 있습니다. 병렬 실행은 상당한 개발 작업이 필요하므로, 조직이 필요성을 인식할 때는 구현하기에는 너무 늦은 경우가 많다는 것이 문제입니다. TestStand를 사용하면 병렬 시스템 개발이 훨씬 더 용이해져 대부분의 작업이 없어지고 병렬 시스템의 비용 효율성이 높아집니다.

리포트 생성 및 데이터베이스 연결

테스트 시스템을 빌드할 때는 테스트 결과 처리 방법을 고려해야 합니다. 그래서 TestStand에는 데이터베이스 연결 및 리포트 생성을 간소화하는 기능이 내장되어 있습니다. TestStand에서 리포트를 사용자 정의하는 것은 일반적인 작업이며, TestStand는 리포트 내용, 기능 및 스타일을 사용자 정의하기 위한 기능을 제공합니다. 

테스트 리포트는 테스트 실행의 통과와 실패에 관한 정보를 제공하는 유용한 작업이지만, 단일 또는 여러 테스트 스테이션에서 기록적인 테스트 결과를 조사하려는 경우에는 편리하지 않습니다. 대신, NI TestStand는 Oracle, SQL Server 또는 MySQL 같은 대부분의 ODBC(Open Database Connectivity) 시스템에 테스트 결과를 즉시 신속하게 로그할 수 있습니다.

디버그 및 배포 

TestStand에 내장된 기능을 사용하여 테스트 코드를 디버깅하는 시간을 줄일 수 있습니다. 시퀀스 전체 테스트 값과 실행 정지용 브레이크포인트에 대한 모니터링을 지원하는 도구를 활용하여 테스트 코드 섹션을 좀 더 자세히 조사할 수 있습니다.

테스트 코드 배포 다이어그램 

그림 6: 배포에는 원하는 테스트 스테이션에 배포하기 전에 배포 도구 또는 서버를 사용하여 필요한 모든 테스트 시스템 구성요소를 패키징하는 작업이 포함됩니다.

설치 프로그램 빌드와 배포를 자동화하는 유틸리티를 사용하여 프로덕션 머신에 테스트 코드를 배포하는 방법을 간소화할 수도 있습니다.

사용자 인터페이스 

운영자 인터페이스는 운영자가 테스트 시스템과 상호작용하는 디스플레이입니다. 사용자 정의 운영자 인터페이스 개발에는 특히 유용성과 일관성을 고려하는 경우 적지 않은 시간이 투자됩니다. TestStand는 배포된 시스템에서 테스트를 설정하고 실행할 수 있는 간단한 운영자 인터페이스를 제공합니다. 운영자가 테스트 시스템과 상호작용하는 방식을 더 잘 관리할 수 있도록 여러 프로그래밍 환경에 맞는 고유의 사용자 인터페이스를 직접 개발할 수도 있습니다.

공통:

테스트 관리 소프트웨어

  • 운영자 인터페이스
  • 사용자 관리
  • 테스트 흐름 제어
  • 한계 확인
  • 병렬 스레드 관리
  • 결과 처리

고유:

테스트 개발 소프트웨어

  • 계측기 제어
  • 자극
  • 측정
  • DUT 컨트롤
  • 디지털 신호 프로세서(DSP)