Test ve doğrulama arasındaki fark nedir?


15

Gördüğüm her ders kitabı, test ve doğrulamanın iki farklı kavram olduğu gerçeğini büyük ölçüde ortaya koyuyor . Yine de hiçbiri net (ya da benim için yeterince net) bir ayrım sunmuyor.

Bir bağlam sağlamak için, donanım tasarım dillerini (HDL) kullanarak dijital donanım tasarımlarının doğrulanmasıyla ilgileniyorum.

"Fiziksel" veya "somut" bir fark yaratan bazı açıklamalar gördüm: eğer üretilmiş bir cihazla ilgiliyse test ediyor. Bütün hikaye bu mu? Öyleyse, neden "test" kelimesi doğrulamada bu kadar sık ​​ortaya çıkıyor (özellikle fonksiyonel doğrulamada, test senaryoları, test tezgahları, DUT (test edilen cihaz), yönlendirilmiş testler, rastgele testler, vb.)

Yanıtlar:


21

Qualcomm ASIC Tasarım Doğrulama Mühendisiydi. En basit şekilde açıklayabilirim:

Test etme: Ürünü oluşturduktan sonra bir ürünün çalıştığından emin olun (KG'yi düşünün).

Doğrulama: Bir ürünün, oluşturmadan ÖNCE çalıştığından emin olun.

İkisi de test ediyor, sadece doğrulama daha karmaşık çünkü ürünü var olmadan önce test etmenin bir yolunu bulmanız gerekiyor ve tasarlandığı gibi çalıştığından ve gerçekten ne zaman ortaya çıkacağından emin olmanız gerekiyor.

Örneğin, Intel bir sonraki işlemcilerini tasarlıyor, özellikleri var, şemaları ve simülasyonları var. İmalat ve üretim için 1 Milyar Dolar harcıyorlar. Sonra çip geri gelir ve test eder ve çalışmadığını öğrenirler. Pencereden çok fazla para attılar.

Doğrulama mühendisleri çipin davranışını simüle eden modeller yaratırlar, bu belirli modelleri test edecek test tezgahı oluştururlar. Bu modellerin sonuçlarını alırlar ve daha sonra RTL (donanım tasarım dilinde devre yazma modeli) sonuçlarıyla karşılaştırırlar. Eğer eşleşirlerse, işler (genellikle) iyi olur.

Doğrulama işlemi için bir dizi farklı metodoloji vardır, popüler olanı Evrensel Doğrulama Metodolojisi'dir (UVM) .

Alanda çok fazla derinlik var ve insanlar tüm kariyerlerini burada geçirebilirler.

Başka bir rastgele bilgi paketi: Genellikle 1 tasarım mühendisi için 3 doğrulama mühendisine ihtiyacınız vardır. Zaten sahadaki herkes böyle söylüyor.

DÜZENLEME: Birçok kişi doğrulamayı bir test rolü olarak düşünüyor, ancak değil; kendi başına bir tasarım rolüdür çünkü bir tasarımcının yaptığı gibi IC'nizin tüm karmaşıklıklarını anlamanız gerekir ve daha sonra IC'nizin tüm özellik işlevlerini kapsayacak modelleri, test tezgahlarını ve tüm test vakalarını nasıl tasarlayacağınızı bilmeniz gerekir. ve tüm olası bit kombinasyonları için RTL kodlarının her bir satırına basmaya çalışmak. Günümüzde bir işlemcinin, daha küçük ve daha küçük (şimdi 14nm) izin veren üretim süreci nedeniyle milyarlarca transistöre sahip olduğunu unutmayın.

Ayrıca, Intel, AMD, Qualcomm, vb.Gibi büyük şirketlerde tasarımcılar aslında çipi tasarlamıyor. Genellikle mimar tüm özellikleri tanımlayacak, belirli bir işlevi (hız, çözünürlük vb.) İle belirli bir işlevi elde etmek için birlikte gitmesi gereken parça türlerini düzenleyecek ve daha sonra tasarımcı bunu RTL'ye kodlayacaktır. Bu hiç de kolay bir iş değil, okuldan çıkan birçok mühendisin düşündüğü kadar tasarım yapmak değil. Herkesin olmak istediği bir mimar ama o noktaya gelmek için çok fazla eğitim ve deneyim gerekiyor. Birçok mimarın doktoraları var ve tasarımcı olarak sahada 15-20 yıllık deneyim var. Bunlar, yaptıklarını yapmayı hak eden parlak insanlar (ve bazen çılgın) ve bu konuda iyiler. Üzerinde çalıştığım ilk çipin mimarı biraz garipti ve bazı sosyal normları gerçekten takip etmedi, ancak çiple ilgili sıkıştığınız her şeyi çözebilir ve bazen kafasında çözer ve size söylerdi bir sinyale bakmak için "nasıl cehennem yaptı?" Sonra ona açıklama yapmasını istersiniz ve o yapar ve bu başınızın üzerinden geçer. Aslında mezun olduğum halde ders kitaplarını okumama ilham verdi.


+1 Son açıklama için teşekkürler, alanın gerçekten önemli olduğunu görmemize yardımcı oluyor (RTL ve tasarım mühendisliği çoğu mühendis için daha cazip gelse de, sanırım)
VHDL Addict

Tamlık için, bir test çantasının ne olduğunu eklemeyi düşünür müsünüz?
VHDL Bağımlısı

Tasarım rolünün daha çekici olmasıyla ilgili ilk yorumunuz nedeniyle gerçeklemenin ne olduğuna dair bir ipucu ekledim; her ikisi de iyi roller, sadece ne istediğine bağlı. Bir test senaryosuna gelince, Snapdragon gibi bir SoC, milyonlarca on binlerce test vakasına ve rastgele testlerle milyonlara sahip olabilir. Basitçe söylemek gerekirse: bir dizi giriş biti uyguluyorsunuz ve bu birçok modülden geçerek değişiyor, sonuç olarak modelinizin sonuçlarıyla karşılaştırdığınız bazı çıkış bitleri elde edersiniz. Telefonunuzda gösterilen bir resmi test etmek kadar basit bir şey ...
PGT

çok sayıda test çantası. Mobil ekranınızda tek bir piksel göstermek istediğinizi varsayalım. Alanın dışında birisinin düşüneceği şey beyaz için 1 bit ve siyah için 0 uygulamaktır. Gerçek mobil dünyada, bu piksel boyut, yoğunluk, döndürme, renk biçimine (YUV ###, RGB ###, vb.) Göre değişebilir. Ve muhtemelen girdiye birlikte uygulanan bir bit kümesi içinde 1 bit test ediyorsunuz. Diğer bitler 0 olabilir, çünkü siyah olabilir veya 1 olabilir, çünkü iletim modunun nasıl işleneceği, CLK, etkinleştirir / devre dışı bırakır, tetikleyiciler, böyle süslü şeyler.
PGT

6

Kitabımda Doğrulama, tasarladığınız şeyin "işi yapmasını" sağlamaktır - yani, "cihaz" ın gerçekleştirmesi gereken bir dizi şey vardır ve doğrulama, bunları listeden çıkarır.

Ancak test etmek, "cihazın" yaptığı şeylerin doğru yapıldığından emin olmaktır. Bir dizi işleve sahipsiniz ve işlevin düzgün çalıştığından emin olarak her işlevi test ediyorsunuz.

Özetle, Doğrulama tasarımı kontrol ediyor ve Test ürünü kontrol ediyor.


Sanırım anlamaya başlıyorum ... Lütfen her birine birkaç örnek verebilir misiniz?
VHDL Bağımlısı

Bu , neyin uygulanması gerektiğini ve aynı zamanda işlevselliğin doğru olduğunu nasıl bilmesini sağlayan bir doğrulama planına nasıl uyuyor ? Bir işlevi çalışmazsa uygulamak veya işaretlemek çok az işe yarayabilir.
VHDL Bağımlısı

@ Majenko - Doğrulama üzerine bir kitap yazdınız mı? Bununla ilgili daha fazla ayrıntı paylaşır mısınız?
Michael Karas

4

Bir ASIC (donanım) tasarım arka planından gelen üç önemli terim vardır: doğrulama , doğrulama ve test . Önceki cevaplar genellikle bu terimlerden biri veya ikisi hakkında konuşur, ancak üçünü de benim yaptığım şekilde açıkça zıt etmeyin. Onları anlama şeklim şöyle:

  • Doğrulama: şartname (genellikle bir C modeli) pazar veya müşteri gereksinimlerini karşılıyor mu?
  • Doğrulama: uygulama (RTL, netlist veya GDS2) spesifikasyonla eşleşiyor mu?
  • Test: üretilen cihaz uygulama ile eşleşiyor mu?

Netlist ve GDS2 simülasyonları farklı sonuçlar verebilir mi?
Ciro Santilli 事件 改造 中心 法轮功 六四 事件

1
@CiroSantilli 巴拿馬 文件 六四 事件 法轮功, sanırım kapıların transistörlere karşı davranışını soruyorsunuz. Normal dijital voltajlar ve dalga formları için aynı sonuçları vereceklerini söyleyebilirim. Ancak güç / toprak değişimleri veya sinyal yükü paylaşımı gibi idealize edilmiş kapılar tarafından dikkate alınmayan "analog" etkiler olabilir. Bu efektler mevcutsa, ideal dijital davranış doğru olmayabilir.
Winston Smith

1
@CiroSantilli 事件 改造 中心 法轮功 六四 事件 Evet, önemli ölçüde farklı sonuçlar verebilirler. Orada bulundum, bu hatayı yaptı.
Elliot Alderson

1

Test, bir spesifikasyonun karşılanıp karşılanmadığını görmek için tasarlanmıştır. Doğrulama, cihazın tasarım girdilerini - yani tüm özellikleri karşılayıp karşılamadığını görmek içindir. Sanırım çok daha fazla yorum var, ama FIA rehberlik belgelerinde gördüğüm şey bu.


Ben (den ifadeler biraz değişti ettik, bkz testi için test hem süreç olduğunu daha açık hale getirmek için). Bireysel testler için kelime testinin uygun olduğunu kabul ediyorum (bazen bu terminoloji soruları ile bariz olanı yeniden ifade ediyor gibi hissediyorum ...) :)
VHDL Addict

1

Doğrulama testi ile doğrulama testi arasında bir ayrım yapıyoruz. Diyelim ki bazı ekipmanları soğutan bir fan tasarlıyorsunuz. Fanın tüm tasarım gereksinimlerini karşıladığından emin olmak için doğrulama testi yapılır. Böylece hava akışını, termal döngüyü, titreşimi vb. Test edebilirsiniz.

Doğrulama testi, tasarım gereksinimlerinin doğru olmasını sağlar. Fan için sahip olduğumuz tasarım girdileri aslında bize istediğimiz fanı verdi mi? Örneğin, fanın ekipmanı gerçekten yoğun olarak soğutduğundan emin olursunuz.


Bu terimleri okuduğum Yazılım Mühendisliği kitaplarıyla bu şekilde anlıyorum. Doğrulama = gereksinimlerin doğru olduğundan emin olun (müşteri, düzenlemeler vb. İle kontrol edin); Doğrulama = ürünün doğru olduğundan emin olun (spesifikasyona göre test edin)
Wouter van Ooijen

1

ISO9000, doğrulama ve doğrulama hakkında konuşuyor. ISO9000 doğrulaması bağlamında, bir prototip tasarımının işlevsel ve performans beklentilerini karşıladığını kanıtlamak için test etmek anlamına gelir. Doğrulama, ilk üretim çalışmasının test edilmesinin tasarım beklentilerini de karşıladığı anlamına gelir. Önce doğrulayın, daha sonra doğrulamak, şeylerin sırasını hatırlamanın küçük yoludur.

Bazı yazılım standartları doğrulama ve doğrulama sırasını tersine çevirir ve bu gerçekten karışıklığa neden olabilir, bu yüzden bunun farkında olun.

Sonuç olarak ... Neden bir şey test ediyorsunuz - bu bir prototip tasarım mı - öyleyse kalite standartları bu doğrulamayı arama eğilimindedir. Bir üretim çalışmasını ilk kez test ediyorsanız, donanım adamları bu doğrulamayı çağırır.

Sadece kişisel deneyimlerim.


0

Bu cevapları okuduğumdan, şu an fark ediyorum ki, "test etme" nin sektördeki "doğrulama" dan nasıl farklı olduğuna dair belirlenmiş bir tanım yoktur.

HW tasarımı (VHDL programlama değil, PCB'deki şeyler gibi "gerçek" HW tasarımı) ile çalışırken, bir doğrulama ve doğrulama aşamasından ve bir üretim test aşamasından geçiyoruz (aslında sadece üretim testlerini kendileri tasarlamak ve bunları üretim sahasına teslim etmek). - Doğrulama - (1) prototip / seri üretilen ürünün HW gereksinimlerini karşıladığını doğrulayın (2) HW gereksinimlerini SYS gereksinimlerine göre doğrulayın. - Üretim Testi - Duman testi ve yılda üretilen 500000 ünitenin her biri için tüm doğrulama sürecinden geçmek zorunda kalmadan seri üretim hatalarını ortadan kaldırmak için uyarlanan basitleştirilmiş ve hızlı doğrulama test senaryoları.

Yani bu çok uluslu şirket "test", üretim testleri ve başka bir şey ifade eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.