Bir hata ile bir hata arasındaki fark nedir?
Bir hata ile bir hata arasındaki fark nedir?
Yanıtlar:
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.
"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, 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.
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.
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 .
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.
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.
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.
Dan McGrath'ın cevabı doğru çiviledi.
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.
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.
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.
İş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.
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.
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.