테스트와 검증의 차이점은 무엇입니까?


15

내가 본 모든 교과서는 테스트검증 이 서로 다른 개념 이라는 사실을 크게 강조합니다 . 그러나 그들 중 어느 것도 분명한 (또는 마침내 나에게 충분히 명확한) 구별을 제공하지 않습니다.

컨텍스트를 제공하기 위해 하드웨어 디자인 언어 (HDL)를 사용하여 디지털 하드웨어 디자인을 검증하는 데 관심이 있습니다.

"물리적"또는 "실제적인"차이에 의존하는 몇 가지 설명을 보았습니다. 제조 된 장치에 관한 것이라면 테스트 중입니다. 이것이 전체 이야기입니까? 그렇다면 왜 "테스트"라는 단어가 검증에서 자주 나오는가 (특히 기능 검증에서 우리는 테스트 케이스, 테스트 벤치, DUT (테스트 대상 장치), 직접 테스트, 무작위 테스트 등에 대해 이야기합니다.)

답변:


21

Qualcomm의 ASIC 설계 검증 엔지니어였습니다. 가장 간단한 방법으로 설명 할 수 있습니다.

테스트 : 제품을 만든 후 제품이 작동하는지 확인 (QA 생각)

확인 : 제품을 만들기 전에 제품이 작동하는지 확인하십시오.

둘 다 테스트 중입니다. 제품이 존재하기 전에 테스트하는 방법을 찾아야하고 실제로 제품이 나오면 사양대로 설계되고 작동하는지 확인해야하기 때문에 검증이 더 복잡하다는 것입니다.

예를 들어, 인텔은 다음 프로세서를 설계하고 사양과 회로도 및 시뮬레이션을 갖추고 있습니다. 그들은 제조 및 제조를 위해 10 억 달러를 소비합니다. 그런 다음 칩이 돌아와서 테스트하여 작동하지 않는지 확인합니다. 그들은 방금 창밖으로 많은 돈을 버렸습니다.

검증 검증 : 검증 엔지니어는 칩의 동작을 시뮬레이션하는 모델을 생성하고 해당 특정 모델을 테스트 할 테스트 벤치를 생성합니다. 이러한 모델의 결과를 얻은 다음 RTL (하드웨어 디자인 언어로 작성된 회로 모델) 결과와 비교합니다. 그것들이 일치하면 (보통) 괜찮습니다.

검증 프로세스에는 여러 가지 방법론이 있으며, 가장 보편적 인 방법UVM (Universal Verification Methodology) 입니다.

이 분야에는 많은 깊이가 있으며 사람들은 전체 경력을 그 분야에서 보낼 수 있습니다.

또 다른 무작위 정보 : 일반적으로 설계 엔지니어 1 명에 대해 3 명의 검증 엔지니어가 필요합니다. 어쨌든 현장의 모든 사람들이 말하는 것입니다.

편집 : 많은 사람들이 검증을 테스트 역할로 생각하지만 그렇지 않습니다. 설계자처럼 IC의 모든 복잡성을 이해해야하고, IC의 모든 기능을 다루는 모델, 테스트 벤치 및 모든 테스트 케이스를 설계하는 방법을 알아야하기 때문에 이는 자체적으로 디자인 역할입니다. 가능한 모든 비트 조합에 대해 모든 한 줄의 RTL 코드를 작성하려고합니다. 오늘날 프로세서는 더 작고 더 작은 (현재 14nm) 제조 공정으로 인해 수십억 개의 트랜지스터를 가지고 있음을 기억하십시오.

또한 인텔, AMD, Qualcomm 등과 같은 대기업에서는 설계자가 실제로 칩을 설계하지 않습니다. 일반적으로 아키텍트는 모든 사양을 정의하고 특정 요구 사항 (예 : 속도, 해상도 등)으로 특정 기능을 얻기 위해 함께 필요한 조각 유형을 레이아웃 한 다음 디자이너가이를 RTL로 코딩합니다. 그것은 결코 쉬운 일이 아니며, 학교에서 나오는 많은 엔지니어들이 생각하는 것만 큼 많은 디자인이 아닙니다. 모두가 원하는 것은 건축가이지만, 그 시점에 도달하려면 많은 교육과 경험이 필요합니다. 많은 건축가들이 박사 학위를 가지고 있으며 디자이너로서 15-20 년의 현장 경험이 있습니다. 이들은 자신이하고있는 일을 수행 할 자격이있는 훌륭한 사람들이며 때로는 미쳤습니다. 내가 작업 한 첫 번째 칩의 건축가는 약간 어색했고 실제로는 사회적 규범을 따르지 않았지만 칩과 관련하여 붙어있는 모든 것을 해결할 수 있었으며 때로는 머리에서 문제를 해결하고 말해주었습니다. 하나의 신호를보고 "도대체 어떻게 그렇게 했습니까?" 그리고 당신은 그에게 설명해달라고 요청하고 그렇게합니다. 내가 이미 졸업했지만 교과서를 읽도록 실제로 영감을주었습니다.


마지막 발언에 대해 +1 감사합니다, 우리는 (대부분의 엔지니어들에게 더 매력적인 RTL 및 설계 엔지니어링 소리, 나는 생각하지만) 필드가 참으로 중요하다는 것을 볼 수 있습니다
VHDL 중독자

완벽을 기하기 위해 테스트 케이스 란 무엇입니까?
VHDL Addict

디자인 역할이 더 매력적이라는 첫 번째 의견으로 인해 실제로 검증이 무엇인지에 대한 의견을 추가했습니다. 그들은 둘 다 좋은 역할입니다, 당신이 좋아하는 것에 달려 있습니다. 테스트 케이스의 경우 Snapdragon과 같은 SoC는 수만에서 수십만 개의 테스트 케이스를 가질 수 있으며 수백만 건의 임의 테스트가 가능합니다. 간단히 말해서 : 입력 비트 세트를 적용하고 많은 모듈을 거치면서 변경되며 모델의 결과와 비교 한 결과로 일부 출력 비트를 얻습니다. 휴대 전화에 표시되는 사진을 테스트하는 것만 큼 간단합니다.
PGT

많은 수의 테스트 케이스. 모바일 화면에 단일 픽셀을 표시하려고한다고 가정하십시오. 필드 외부의 누군가가 생각하는 것은 흰색에 1 비트를 적용하고 검정에 0을 적용하는 것입니다. 실제 모바일 세계에서이 픽셀은 크기, 강도, 회전, 색상 형식 (YUV ###, RGB ### 등)에 따라 다를 수 있습니다. 그리고 아마도 입력에 함께 적용되는 비트 세트 내에서 1 비트를 테스트하고있을 것입니다. 다른 비트는 검은 색이기 때문에 0이거나 전송 모드, CLK, 활성화 / 비활성화, 트리거, 멋진 것들을 처리하는 방법과 같은 다른 정보를 처리하기 때문에 1 일 수 있습니다.
PGT

6

필자의 책에서 검증 (Verification)은 "작업을 수행"하도록 설계 한 것, 즉 "장치"가 수행해야하는 일련의 작업이 있는지 확인하는 것입니다.

그러나 테스트는 "장치"가 수행하는 작업이 올바르게 수행되고 있는지 확인합니다. 기능 세트가 있으며 각 기능을 테스트하여 기능이 올바르게 수행되는지 확인하십시오.

간단히 말해, Verification은 디자인을 확인하고, Testing은 제품을 확인합니다.


이해하기 시작한 것 같습니다 ... 각각의 예를 제공해 주시겠습니까?
VHDL Addict

구현 계획 과 기능이 올바른지 확인 하는 검증 계획에 어떻게 부합 합니까? 함수가 작동하지 않으면 함수를 구현하거나 해제하는 데 거의 쓸모가 없습니다.
VHDL Addict

@ Majenko-인증에 관한 책을 썼습니까? 그것에 대해 더 자세한 내용을 공유 하시겠습니까?
Michael Karas

4

ASIC (하드웨어) 설계 배경에서 나온 검증 , 검증테스트 라는 세 가지 중요한 용어가 있습니다 . 이전 답변은 일반적으로 이러한 용어 중 하나 또는 두 가지에 대해 이야기하지만 세 가지 방법을 모두 명확하게 대조하지는 않습니다. 내가 그들을 이해하는 방법은 다음과 같습니다.

  • 검증 : 사양 (종종 C 모델)이 시장 또는 고객 요구 사항을 충족합니까?
  • 확인 : 구현 (RTL, netlist 또는 GDS2)이 사양과 일치합니까?
  • 테스트 : 제조 된 장치가 구현과 일치합니까?

넷리스트와 GDS2 시뮬레이션이 다른 결과를 줄 수 있습니까?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
@CiroSantilli 巴拿馬 文件 六四 事件 法轮功, 게이트 대 트랜지스터의 동작에 대해 질문한다고 가정합니다. 정상적인 디지털 전압 및 파형의 경우 동일한 결과를 제공한다고 말합니다. 그러나 전력 / 접지 변화 또는 신호 전하 공유와 같은 이상적인 게이트에서는 고려되지 않은 "아날로그"효과가있을 수 있습니다. 이러한 효과가 존재한다면 이상적인 디지털 행동이 사실이 아닐 수 있습니다.
윈스턴 스미스

1
@CiroSantilli 新疆 改造 中心 法轮功 六四 事件 그렇습니다, 그들은 상당히 다른 결과를 줄 수 있습니다. 거기에 있었고, 그 실수를했다.
Elliot Alderson

1

테스트는 사양이 충족되는지 확인하기 위해 설계되었습니다. 장치가 설계 입력, 즉 모든 사양을 충족하는지 확인해야합니다. 더 많은 해석이 있다고 가정하지만 이것이 FIA 지침 문서에서 본 것입니다.


나는 둘 다 프로세스임을 분명히하기 위해 문구 를 테스트 에서 테스트 로 약간 변경했습니다 . 나는 개별 테스트에 대한 단어 있음에 동의 테스트 : (... 나는이 용어 질문에 명백한을 재 작성 것 같은 때로는 느낌) 적합
VHDL 중독자

1

우리는 검증 테스트와 검증 테스트를 구별합니다. 일부 장비를 냉각시키는 팬을 설계한다고 가정 해 봅시다. 팬이 모든 설계 요구 사항을 충족하는지 확인 테스트가 수행됩니다. 따라서 공기 흐름, 열 사이클링, 진동 등을 테스트 할 수 있습니다.

검증 테스트는 설계 요구 사항이 올바른지 확인합니다. 팬에 대한 디자인 입력이 실제로 원하는 팬을 제공 했습니까? 예를 들어 팬이 장비를 의도 한대로 식히도록합니다.


이것이 내가 읽은 소프트웨어 엔지니어링에 관한 책에서 용어를 이해하는 방법입니다. 검증 = 요구 사항이 올바른지 확인합니다 (고객, 규정 등으로 확인). 검증 = 확실히 제품 (사양에 대한 시험이) 잘되어 있는지 확인
WOUTER 반 Ooijen

1

ISO9000은 검증 및 검증에 대해 설명합니다. ISO9000 검증의 맥락에서 프로토 타입 디자인을 테스트하여 기능 및 성능 기대치를 충족하는지 확인하십시오. 검증은 첫 번째 생산 실행 테스트도 설계 기대치를 충족한다는 의미입니다. 먼저 확인하고 나중에 확인하는 것이 사물의 순서를 기억하는 작은 방법입니다.

여러 소프트웨어 표준이 확인 및 확인 순서를 반대로하여 실제로 혼란을 야기 할 수 있으므로이 점에 유의하십시오.

결론은 ... 무엇을 테스트하고 있습니까? 프로토 타입 디자인 인 경우 품질 표준이이 검증이라고 부르는 경향이 있습니다. 프로덕션 운영을 처음 테스트하는 경우 하드웨어 담당자가이 유효성 검사를 호출합니다.

내 개인적인 경험.


0

이 답글을 읽음으로써 현재 "테스트"가 업계의 "확인"과 어떻게 다른지에 대한 정해진 정의가 없다는 것을 깨달았습니다.

HW 설계 (VHDL 프로그래밍이 아닌 PCB의 재료와 같은 "실제"HW 설계)로 작업 할 때는 검증 및 검증 단계와 생산 테스트 단계 (실제로 생산 테스트 자체를 설계하여 생산 현장에 전달)를 거칩니다. -검증-(1) 프로토 타입 / 대량 생산 품목이 HW 요구 사항을 충족하는지 확인합니다. (2) SYS 요구 사항과 비교하여 HW 요구 사항을 확인합니다. -생산 테스트-연기 테스트 및 단순화 및 빠른 검증 테스트 사례는 1 년에 생산되는 각 500000 개 단위에 대해 전체 검증 프로세스를 거치지 않고 대량 생산 결함을 차단합니다.

따라서 특정 다국적 기업에서 "테스트"는 생산 테스트를 말하며 그 이상은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.