Bir hata ile testte hata arasındaki fark?


35

Bir hata ile bir hata arasındaki fark nedir?



1
Aslında bir şeyin eksik olduğunu söyleyen hatalar var.
m3th0dman

Cevap neden sorduğun amacına bağlı.
maksimum 630

Kusur kelimesinin etimolojisine bakın. De = hayır, un. Facere = do. Dolayısıyla yapmaz (beklendiği gibi) yapmaz, kırılır, kaput. Oysa böcek, "performansı engelleyen işlerde bir şey" anlamına geliyor. Günün sonunda bir şeyi düzeltmek zorunda kalacaksınız, bu yüzden hepsi akademik. Kapatmak için oy verdim, düzeltmen gereken bir şey yok mu?
Martin Maat

Yanıtlar:


59
  • Bir hata kodlama hatasının sonucudur

  • Bir kusur gereksinimlerden sapmadır

Şöyle ki: Bir kusur mutlaka kodda bir hata olduğu anlamına gelmez , bu uygulanmayan ancak yazılımın gerekliliklerinde tanımlanmış bir işlev olabilir.


Yazılım testindeki Wikipedia sayfasından :

Tüm yazılım hataları kodlama hatalarından kaynaklanmaz. Yaygın bir pahalı kusur kaynağı, program tasarımcısı tarafından ihmal edilen hatalarla sonuçlanan, örneğin tanınmayan gereksinimler gibi ihtiyaç boşluklarından kaynaklanmaktadır. [14] Gereksinim eksikliğinin ortak bir kaynağı, test edilebilirlik, ölçeklenebilirlik, sürdürülebilirlik, kullanılabilirlik, performans ve güvenlik gibi işlevsel olmayan gereksinimlerdir.


15
Her ikisi de gördüğüm gibi "gereksinimlerden sapma".
Martin Wickman

2
Bir kusurun böcek olması gerekmez. Ayrıca, bir hatanın bir gereksinimin karşılanmadığı anlamına gelmesi gerekmez ve bu nedenle “gereklilikten sapma” değildir
Dan McGrath

2
Uygulamayı çökerten bir hata, gerekliliklerden sapma, değil mi? Veya uzun vs çift kullanılmasından dolayı yuvarlama hatalarına neden olan bir hata. Arıza veya hata? Veya gösterilmeyen bir açılır pencere. Hatalar ya da kusurlar aynıdır: yanlış olan şeyler, hatalar.
Martin Wickman

5
@Martin noktasını kaçırıyor gibisin. Evet, bir hata bir kusur olabilir. Evet, bir hata bir hata olabilir. Ancak bu mutlaka her zaman doğru değildir. Sırf çakışma olduğu için, aynı oldukları anlamına gelmez! Hata ve Kusurun Venn Şeması -> (())
Dan McGrath

8
@Dan McGrath: temelde burada yaptığınız, kendi hata tanımınızdır. Ancak genel olarak tanımlanmış bir anlamı yoktur, sadece bir mühendislik jargonudur!
MaR

21

"Yazılım Mühendisliği için IEEE Standartları Koleksiyonu" (1994) ve "Yazılım Mühendisliği Terminolojisi IEEE Standart Sözlüğü" (standart 610.12, 1990) 'daki tanımdan ayrılan Pratik Yazılım Testleri kitabından (önerilen) alıntı Ilene Burnstein :

Hata

Hata, yazılım geliştiricisinin bir yanılgısı, yanılgısı veya yanlış anlaşılmasıdır.

Geliştirici kategorisinde yazılım mühendisleri, programcılar, analistler ve test cihazları bulunmaktadır. Örneğin, bir geliştirici tasarım gösterimini yanlış anlayabilir veya bir programcı değişken adını yanlış yazabilir.

Arızalar (Kusurlar)

Hataya bağlı olarak yazılıma bir hata (kusur) eklenir. Yazılımda, özelliklerine göre değil yanlış davranmasına neden olabilecek bir anormalliktir.

Hatalar veya hatalar bazen "hatalar" olarak adlandırılır. İkinci terimin kullanılması, hataların yazılım kalitesi üzerindeki etkisini önemsizleştirir. “Kusur” teriminin kullanımı, gereksinimler ve tasarım belgeleri gibi yazılım eserleri ile de ilişkilendirilir. Bu eserlerde meydana gelen kusurlara ayrıca hatalar da neden olur ve genellikle inceleme sürecinde tespit edilir.

Hataları

Bir yazılım sisteminin veya bileşeninin belirtilen işlevlerini belirtilen performans gereksinimleri dahilinde gereken işlevlerini yerine getirememesi bir başarısızlıktır.

Bir yazılım bileşeninin veya sistemin yürütülmesi sırasında, bir test cihazı, geliştirici veya kullanıcı beklenen sonuçları üretmediğini gözlemler. Bazı durumlarda, belirli bir yanlış davranış türü, belirli bir hata türünün mevcut olduğunu gösterir. Yanlış davranış türünün hatanın bir belirtisi olduğunu söyleyebiliriz. Deneyimli bir geliştirici / test cihazı hafızada kayıtlı olan arıza / semptomlar / arıza durumları (Bölüm 3'te açıklanan arıza modelleri) hakkında bilgi sahibi olacaktır. Yanlış davranış, çıkış değişkenleri için yanlış değerlerin üretilmesini, cihazın parçası üzerinde yanlış bir cevap verilmesini veya ekranda hatalı bir görüntü bulunmasını içerebilir. Gelişme sırasında, arızalar genellikle test edenler tarafından gözlenir ve hatalar geliştiriciler tarafından bulunur ve onarılır.

Bölümün tamamını Google Kitaplar’da buradan okuyabilirsiniz .


12

Yazılım hataları ile ilgili bazı farklı terimler var. Aldığım bir kurstan alıntı:

  • Hata : Hatayla sonuçlanan insan hareketi veya ihmali.

  • Hata : Hata, hataya neden olan bir yazılım hatasıdır (yanlış adım, işlem veya veri tanımı).

  • Hata : Arıza ile aynı.

  • Hata : Bir yazılımın, belirtilen performans gereksinimleri dahilinde, gerekli işlevlerini yerine getirememesi.

Buna göre, kusur ile böcek arasında bir fark yoktur. Ancak bazı kişiler, hatanın yazılımı piyasaya sürmeden önce bulunan bir hata olduğunu, kusur ise müşterinin bulduğu bir hata olduğunu iddia ediyor.

Meşhur "ilk gerçek böcek bulma davası" nı gönderemedi.

alt metin



Oradan aldığım yer orası değil, ama ortak bir kaynağa sahip olabilirler (ya da bu kaynak olabilir).
Tamás Szelei,

Evet, birçok, yıllar önce bir hatayı düzeltmek için biraz zaman harcadım. Ekrandaki bir hücrede can sıkıcı bir titreme vardı ve hiçbir anlamı yoktu. Sonunda uçtu. (Bu siyah ekranda beyaz metin çağındaydı, söz konusu nokta düzenleme yaparken her zaman siyah olma hakkına yetti, bu yüzden sadece programın arkasına beyaz bir şey koyduğunda fark ettim.)
Loren Pechtel

7

Ah hayatım.

Eski günlerde, bir bilgisayarın hatalı çalışması, her şeyi yapmaktan kaynaklanıyordu - kabloları çiğneyen fareler ve işlerin içine giren gerçek böcekleri (yaratıkları) dahil.

BUG terimi, beklendiği gibi çalışmayan bir şey anlamına gelen bir terim olarak kaldı.

HATA bir kusur anlamına gelen bir jargon terimi olarak düşünülmelidir.

Hata, teknik olarak doğru bir terimdir, yani işin olması gerektiği gibi yapmaması anlamına gelir.

Mümkün olan her yerde, BUG yerine DEFECT kullanmak aslında onunla daha önemsiz bir sondaj olarak giymek yerine başarısızlıklarımızı (kusurlarımızı, kullanıcı gereksinimlerini anlama konusundaki eksikliğimizi veya uygulamada göz ardı ettiğimiz şeyleri) kabul ettiğimizin bir ifadesidir. ".

DEFECT kullanın.

HATA terimini kullanmamaya çalışın. Aptalca, ilgisiz, tarihi ve önemsiz.


2
Neden iyi anlaşılmış bir teknik terim kullanmaktan çıkarmak istiyorsunuz? Üzgünüm ... evet, BUG tarihseldir - fakat programcıların böcekleri (genel olarak spesifik olana zıt olarak) önemsiz kabul ettiklerini düşünüyorsanız, sadece böcekler olarak adlandırılırlar veya kökenleri nedeniyle önemsizler olarak adlandırırlar. korkarım orta yaşlı bir huysuzluğa dönüşmem tamamen haklı. Oh ve @Dan'ın belirttiği gibi, hatalar kusurdur, ancak hatalar mutlaka hata değildir, bu da terimin değere sahip olduğunu gösterir.
Murph

3
@Murph, "bug" bir programlama hatası için bir örtmecedir. Bilinçsizce bu, geliştiricinin kontrol edemediği bir tür gremline hitap ediyor. Bu, doğru değil - olan bir hata ve bu kabul daha profesyonel davranış yönünde bir adımdır. (Tabii Imho :-))
rsp

1
Açıkça aynı fikirde değilim (-: Kodumdaki hataların kim olduğunu - kodlama ve mantık hatalarından - kesinlikle sorumlu olduğumu biliyorum. (Kodumdaki kodları.) onlar (iyi bazı programcı) ve gremlini değil bir tür bir hata yaptığını - terim ne anlama geldiği konusunda net.
Murph

2
Müşterilerinizle uğraşırken bu şeylere hata veya kusur diyebilirsiniz. Hatalar jargondur. Kusurlar, jargonun dışında olması gerektiği gibi olmadığının bir onayıdır. "Hatalar", programlama kardeşliği dışında ve içinde olduğu gibi açık iletişimi açık ve teşvik eden bir terimdir. (Ayrıca bir hata ile bir hata arasında bir fark olduğu konusunda aynı fikirde değilim.)
hızla

Kusurlar uygun terimdir. İçlerinde hata bulunan kaç program var ve hepimiz bunu kabul ediyoruz? Fakat kaç tane program kusurlu olarak yayınlandı? Bunu kabul etmiyoruz çünkü bu terim daha büyük bir ciddiyeti ima ediyor ve hava durumunu veya günün saatini suçlayabileceğimiz bir böcek yerine, hata için kendi hatamız olduğunu biliyoruz.
Rudolf Olah

7

Yazılım Test Testi ve Yazılım Kalitesi için Yazılım Mühendisliği Bilgi Kataloğu'nda belirtilen IEEE Standart Yazılım Mühendisliği Terminolojisi Sözlüğü'nden:

böcek. Bakınız: hata; arıza.


hata. (1) Hesaplanan, gözlemlenen veya ölçülen bir değer veya durum ile doğru, belirtilen veya teorik olarak doğru değer veya durum arasındaki fark. Örneğin, hesaplanan sonuç ile doğru sonuç arasındaki 30 metrelik bir fark. (2) Yanlış bir adım, işlem veya veri tanımı. Örneğin, bir bilgisayar programında yanlış bir talimat. (3) Yanlış bir sonuç. Örneğin, doğru sonuç 10 olduğunda hesaplanan 12 sonucu. (4) Yanlış sonuç üreten bir insan hareketi. Örneğin, bir programcının veya operatörün parçası üzerinde yanlış bir işlem. Not: Dört tanımın tümü yaygın olarak kullanılsa da, bir ayrım “1. hata”, 2. tanımı “hata”, 3. tanımı ise “hata”, 4. tanımı ise “hata” kelimesine atar. Bakınız a2so: dinamik hata; ölümcül hata; yerli hata; anlamsal hata; sözdizimsel hata; statik hata; geçici hata.


hatası. Bir sistemin veya bileşenin, belirtilen performans gereklilikleri dahilinde istenen işlevlerini yerine getirememesi. Not: Hata toleransı disiplini bir insan eylemi (bir hata), tezahürü (bir donanım veya yazılım hatası), hatanın sonucu (bir hata) ve sonucun yanlış olduğu miktar (hata) arasında ayrım yapar. Ayrıca bakınız: çarpışma; bağımlı başarısızlık; istisna; hata modu; başarısızlık oranı; zor başarısızlık; yeni başlayan başarısızlık; bağımsız başarısızlık; rastgele başarısızlık; yumuşak başarısızlık; sıkışmış başarısızlık.


arıza. (1) Bir donanım cihazındaki veya bileşenindeki bir kusur; örneğin, kısa devre veya kopuk tel. (2) Bir bilgisayar programında yanlış bir adım, işlem veya veri tanımı. Not: Bu tanım öncelikle hata tolerans disiplini tarafından kullanılır. Yaygın kullanımda, “hata” ve “hata” terimleri bu anlamı ifade etmek için kullanılır. Ayrıca bakınız: verilere duyarlı arıza; programa duyarlı hata; eşdeğer hatalar; hata maskeleme; aralıklı arıza.


Bence başarısızlık tanımı en alakalı. Gereksinimlerde, tasarımda, uygulamada veya test durumunda / prosedürde olsun, her şey bir hata ile başlar. Bu hata yazılımda ortaya çıkarsa, bir hata haline gelir. Hata, yazılımdaki bir veya daha fazla hatanın varlığından kaynaklanır.

Yine de, resmi hatanın tanımına meraklı değilim. Cevabında dukeofgaming tarafından verilen tanımı çok tercih ederim , ancak bu cevabın tanımı IEEE standart hata tanımıdır.


3

Dan McGrath'ın cevabı doğru çiviledi.

  • Bir hata kodlama hatasının sonucudur
  • Bir kusur gereksinimlerden sapmadır

Belki bir örnek bunu daha açık hale getirir.

Örnek: İstemci web formunun pencereyi kaydedip kapatmasını istedi.

Senaryo # 1: Web formunda bir kaydetme düğmesi ve başka bir kapatma düğmesi vardır. Sonuç: Hatalı, çünkü istemci 1 düğmenin pencereyi kaydedip kapatmasını istedi. Geliştirici yanlış anlaşıldı ve ayrı ayrı yaratıldı. Her iki düğme de gereksinimlerini yerine getirdiğinden, bu bir hata değil, müşterinin ihtiyacını karşılamadığı için bir hatadır.

Senaryo # 2: Web formunda bir kaydet ve kapat düğmesi var, ancak yalnızca kaydediyor, kapanmıyor. Sonuç: Hata. Çünkü düğme istenen / beklendiği gibi performans göstermiyor. Geliştirici, bu sonucu vermesi gerektiğini bilir, ancak sonuçta vermedi. (belki de kodlama hatası)

Bunun daha net yapıp yapmadığından emin değilim.

p / s: geliştiricinin bakış açısından (ben bir zamanlardım), hem hatalar hem de hatalar aynı derecede önemlidir. Hala düzelteceğiz.

Hatalar altında kategorize ettiğimiz garip anomalilere bile rastladık ve sürekli olarak nedenini ve nasıl düzeltileceğini anlamaya çalıştık. Hata demek, kusurlara kıyasla önemsiz yapmaz.


Hatalı gereksinimlere ne diyoruz?
gnasher729

@ gnasher729, hatalı gereksinimlerle, programcıların gereksinimleri yanlış anlamalarını kastediyorsanız, bunun bir kusur olduğunu düşünürdüm. Ancak, nihai çalışmayla sonuçlanan yanlış gereksinimleri sağlayan kullanıcı olarak hatalı gereklilikleri kastediyorsanız, başlangıçtaki sorunu çözmez, o zaman bu hata ve kusurun ötesindedir, çünkü bu, gelişimden ziyade oturumun toplanması ile ilgili bir problemdir.
tctham

0

Aradaki fark, "böcek" teriminin sihirli görünmesidir. Programlama tamamlandıktan sonra bir programda rastgele hatalar olabilir. Rastgele hataları varsa o zaman şartnamelere uymadığınız anlamına gelir ve programınız hatalı.

Hata, programın teknik özelliklere uymadığı bir hata anlamına gelir. Bu daha ciddi ve temelde diyor ki, herhangi bir hata programla ilgili büyük bir sorun ve programın yayınlanmaya uygun olmadığı anlamına geliyor.

Aradaki fark, şartları kullanan programcıların tutumu. Böceklerle yayımlanan milyonlarca program var ve insanlar bunun için iyi çünkü bir hatanın büyülü ve rastgele olduğunu ve her programın en az bir hata içerdiğini kabul ediyorlar. Bununla birlikte, "kusur" terimini kullanan bir programcı, hatalı bir program yayınlamaktan rahatsız olabilir, çünkü terim daha büyük bir ciddiyet anlamına gelir.

Bir terimi diğerine tercih etmenin sonuçları bizi her gün etkiler.


0

Güvenilirliğe göre : temel kavramlar ve terminoloji :

Teslim edilen servis, sistem işlevini yerine getirmekten saptığında, ikincisi sistemin amaçlandığı şey olduğunda bir sistem arızası oluşur. Bir hata , sistem durumunun sonraki arızalara yol açması muhtemel olan kısmıdır: servisi etkileyen bir hata, bir hatanın meydana geldiğine ya da meydana geldiğine dair bir göstergedir. Bir hatanın kararsız veya varsayımsal nedeni bir hatadır .

Kusuru , hata için başka bir isim olarak anlıyorum .

Hata kafa karıştırıcı ve bir arıza veya bağlama bağlı bir başarısızlık temsil edebilir.

Spesifikasyondan bahsetmediğine dikkat edin: bir spesifikasyon bile hatalı olabilir.


0

İşte benim işveren Q-LEAP için daha önce ISTQB kelime bilgisine dayanarak yaptığım ve IEEE kelime bilgisini de kontrol ettim. Keyfini çıkarın.

Hata ve Kusur? Aynısı kişi bununla ilgili sonsuz bir tartışma olsa bile. Endişelenecek başka şeyler var, hayat zaten yeterince karmaşık.

görüntü tanımını buraya girin

Terimin vahşi ortamda nasıl kullanıldığına bir örnek, "Google Yazılımı Nasıl Test Ediyor" s. 113. "IEEE Yazılımı" bir makalesini açın ve aynı şekilde kullanılır. Nitekim, gerçek hayatta "kusur" kelimesi nadiren karşılaşır.

Böceğin Hayatı

Hatalar ve hata raporları, her testçinin anladığı tek eserdir. Hataların bulunması, hataların tespiti, hataların giderilmesi ve gerileme hataları, yazılım kalitesi için kalp atışı ve iş akışıdır. Bu, Google’da en geleneksel olan testin bir parçası, ancak yine de normdan ilginç birkaç sapma var. Bu bölüm için, iş öğelerini takip etmek için sunulan hataları görmezden geliyoruz ve gerçek kırık kodu tanımlamak için bu terimi kullanıyoruz. Böylelikle, böcekler genellikle mühendislik ekipleri için saatlik ve günlük iş akışını temsil eder.

Bir böcek doğar. Hatalar Google’daki herkes tarafından bulunur ve dosyalanır. Ürün Yöneticileri, teknik özelliklerinde / düşüncelerinde farklılık gösteren, ilk yapılarında sorun yaşadıklarında hata veriyorlar. Geliştiriciler, bir sorunu yanlışlıkla kontrol ettiklerini veya kod tabanında başka bir yerde veya Google ürünlerini dolaştırırken bir sorun bulduğunu fark ettiklerinde hatalar oluştururlar. Hatalar aynı zamanda sahadan, kitle kaynaklı testçilerden, dış satıcı testlerinden geliyor ve ürüne özgü Google Gruplarını izleyen Topluluk Yöneticileri tarafından dosyalanıyor. Uygulamaların çoğu iç sürümünde, Google haritaları gibi dosya hatalarını hızlı bir şekilde tıklayabilirsiniz. Ve bazen, yazılım programları bir API üzerinden hatalar yaratır.


0

Belirli bir hata / görev / bilet / kusur / sayı / izleme sistemi örneği ne olursa olsun, bu kelimelerin kesin bir anlamı yoktur ve bu nedenle bunlar arasındaki farkı tartışmak anlamsızdır. İş akışınızı hallediyorsanız terminolojiyi belirlemeli ve açıklamalar sağlamalısınız.

Mevcut çevremde "kusur", Jira'daki herhangi bir öğedir. Jira'nın kendisi "sorun" terimini kullanıyor gibi görünüyor. Bunu daha önceki bir sistemden devralmış olabiliriz. "Hata", beklendiği gibi ve belgelerde açıklandığı gibi çalışmayan bir şey olduğunda ortaya çıkan bir sorundur. Bir şey beklendiği gibi çalıştığında ancak iyileştirme istendiğinde "özellik isteği" (açık ve önemli olabilir, ancak mevcut davranış açıklanırsa hala bir özellik isteğidir). Daha çok çeşit var ama bu ikisi geliştirme ekibi dışındaki insanlar tarafından onlardan bir şey sormak için kullanılıyor.

Sorun türleri için adlar seçiyorsanız, "hata" ve "kusur" bana benzer. Aralarındaki fark üsluptur. İngilizce benim anadilim olmadığı için pek fazla bir şey göremiyorum ve gördüğüm şeyin doğru olup olmadığından emin değilim.

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.