İçeriğe atla

Hata ayıklama

Bilgisayar programlama ve yazılım geliştirmede hata ayıklama (İngilizceDebug) bilgisayar programları, yazılımları veya sistemleri içindeki hataları (kusurlar veya doğru çalışmayı engelleyen sorunlar) bulma ve çözme sürecidir.

Hata ayıklama taktikleri, etkileşimli hata ayıklama, kontrol akışı analizi, birim testi, entegrasyon testi, günlük dosyası analizi, uygulama veya sistem düzeyinde izleme, bellek dökümleri ve profil oluşturmayı içerebilir. Birçok programlama dili ve yazılım geliştirme aracı, hata ayıklayıcılar olarak bilinen hata ayıklamaya yardımcı olacak programlar da sunar.

Etimoloji

Debug ismi, Mark II'nin günlük giriş sayfasına yapıştırılmış bir güveden gelmektedir.

İngilizcede kullanilan "debug" ("hata ayiklama") terimi 1940'larda Amiral Grace Hopper'a atfedilir.[1] Harvard Üniversitesi'nde bir Mark II bilgisayarında çalışırken, ortakları bir röleye sıkışmış ve bu nedenle çalışmayı engelleyen bir güve keşfettiler ve bunun üzerine sistemde "hata ayıkladıklarını" belirttiler. Bununla birlikte, "teknik hata" anlamında "hata" terimi, en azından 1878'e ve Thomas Edison'a kadar uzanır (tam bir tartışma için yazılım hatasına bakın). Benzer şekilde, "hata ayıklama" terimi, bilgisayar dünyasına girmeden önce havacılıkta bir terim olarak kullanılmış gibi görünüyor. Gerçekten de, bir röportajda Grace Hopper, terimi kendisinin kullanmadığını belirtti. J. Robert Oppenheimer'dan (Los Alamos, New Mexico'daki İkinci Dünya Savaşı atom bombası Manhattan Projesi'nin yöneticisi) bir mektupta, 27 Ekim 1944'te[2] işe alımla ilgili olarak UC Berkeley'den Dr. Ernest Lawrence'a bir mektupta bu terim kullanılmıştır.

Oxford İngilizce Sözlüğü'nün "hata ayıklama" girişi, Journal of the Royal Aeronautical Society'deki 1945 tarihli bir makalede uçak motoru testlerine atıfta bulunmak için kullanılan "hata ayıklama" teriminden alıntı yapıyor. "Hava Kuvvetleri"ndeki bir makale (Haziran 1945 s. 50), bu sefer uçak kameralarının hata ayıklamasına da atıfta bulunuyor. Hopper'ın böceği 9 Eylül 1947'de bulundu. Bilgisayar programcıları bu terimi 1950'lerin başına kadar benimsemediler. Gill tarafından 1951'de yazılan ufuk açıcı makale, programlama hatalarının en erken kapsamlı tartışmasıdır, ancak "hata" veya "hata ayıklama" terimini kullanmaz. ACM'nin dijital kitaplığında, "hata ayıklama" terimi ilk olarak 1952 ACM Ulusal Toplantılarından üç makalede kullanılmıştır. Üç kişiden ikisi terimi tırnak içinde kullanır. 1963'te "hata ayıklama", CTSS kılavuzunun 1. sayfasında açıklama yapılmadan geçtiğinde bahsedilecek kadar yaygın bir terimdi.

Peggy A. Kidwell'in Elusive Computer Bug'ı Stalking adlı makalesi, "böcek" ve "hata ayıklama"nın etimolojisini daha ayrıntılı olarak tartışıyor.

Kaynakça

  1. ^ Inc, InfoWorld Media Group (5 Ekim 1981). InfoWorld (İngilizce). InfoWorld Media Group, Inc. 26 Mayıs 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Mayıs 2022. 
  2. ^ "Dr.Ernest Lawrence (Secret Doc.)". 21 Kasım 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Mayıs 2022. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Özgür yazılım</span> belirli kullanıcı kullanım, kopyalama, değiştirme, yeniden dağıtma özgürlüğünün (değiştirilmiş dahil) mevcut olduğu yazılım

Özgür yazılım, kullanıcısına yazılımı herhangi bir amaç için çalıştırma, inceleme, değiştirme ve dağıtma özgürlükleri tanıyan yazılım türüdür. Tersi, özel mülk yazılımdır.

<span class="mw-page-title-main">Bilgisayar bilimi</span> belirli evren kurallarına dayalı, sistematik çalışan ve elementlerin ya da ağların birbirleriyle olan ilişkisi

Bilgisayar bilimi, bilgisayarların tasarımı ve kullanımı için temel oluşturan teori, deney ve mühendislik çalışmasıdır. Hesaplamaya ve uygulamalarına bilimsel ve pratik bir yaklaşımdır. Bilgisayar bilimi; edinim, temsil, işleme, depolama, iletişim ve erişimin altında yatan yönteme dayalı prosedürlerin veya algoritmaların fizibilitesi, yapısı, ifadesi ve mekanizasyonunun sistematik çalışmasıdır. Bilgisayar biliminin alternatif, daha özlü tanımı "büyük, orta veya küçük ölçekli algoritmik işlemleri otomatikleştirme çalışması" olarak nitelendirilebilir. Bir bilgisayar bilimcisi, hesaplama teorisi ve hesaplama sistemlerinin tasarımı konusunda uzmanlaşmıştır.

<span class="mw-page-title-main">Mikrodenetleyici</span>

Mikrodenetleyici bir VLSI entegre devre çipinde küçük bir bilgisayar'dır. Mikrodenetleyici, bellek ve programlanabilir giriş/çıkış çevre birimleri ile birlikte bir veya daha fazla CPU kapsar.

<span class="mw-page-title-main">İstatistik</span>

İstatistik veya sayım bilimi, belirli bir amaç için veri toplama, tablo ve grafiklerle özetleme, sonuçları yorumlama, sonuçların güven derecelerini açıklama, örneklerden elde edilen sonuçları kitle için genelleme, özellikler arasındaki ilişkiyi araştırma, çeşitli konularda geleceğe ilişkin tahmin yapma, deney düzenleme ve gözlem ilkelerini kapsayan bir bilimdir. Belirli bir amaç için verilerin toplanması, sınıflandırılması, çözümlenmesi ve sonuçlarının yorumlanması esasına dayanır. Bu çerçevede yapılan işlemlerin tümüne sayımlama denir.

<span class="mw-page-title-main">Açık kaynak yazılım</span> açık kaynak lisansıyla yayınlanmış programlama kodu

Açık kaynak yazılım ya da açık kaynak kodlu yazılım, telif hakkı sahibinin kullanıcılara yazılımı ve kaynak kodunu herhangi bir amaç için kullanma, inceleme, değiştirme ve dağıtma haklarını verdiği bir lisans kapsamında yayınlanan bilgisayar yazılımıdır. Kullandıkları lisans gereğince isteyen kişi ve grupların yazılımı kendi kişisel ihtiyaçlarına uyarlamalarına ve sonunda değişikliği benzer tercihlere sahip kullanıcılar için bir çatal olarak yayınlamalarına olanak tanır.

Yama, bilgisayar programlarında oluşan bir hatayı ya da programın içeriğindeki hatalı bir fonksiyonu düzelten bir programcıktır. Genelde bilgisayarlardaki en büyük güvenlik sorunlarından olan yazılım açıklarına müdahale amacıyla kullanılır.

Yazılım hatası (bug), bir bilgisayar programının veya yazılım sisteminin yanlış veya beklenmeyen bir sonuç üretmesine ve istenmeyen şekillerde davranmasına neden olan bir hata, kusur ya da arızadır. Hataları bulma ve düzeltme süreci "hata ayıklama" olarak adlandırılır ve genellikle hataları saptamak için resmi teknikler veya araçlar kullanır. 1950'lerden bu yana bazı bilgisayar sistemleri, yapılan işlemler sırasında çeşitli bilgisayar hatalarını caydırmak, tespit etmek veya otomatik olarak düzeltmek için tasarlandı.

<span class="mw-page-title-main">Bilgisayar donanımı tarihi</span> Bilgisayarın işlemcisi ve işletim sisteminin bir bütün olarak geçmişi

Bilgisayarın tarihçesi, bilgiyi hesaplamak, düzenlemek ve değiştirmek için kullanılan yazılım ve donanımların tarihsel gelişiminden bahsetmektedir. Bilgisayar, en basit bakış açısıyla bir matematiksel işlemci, yani bir hesap aracıdır ve veri işler.

<span class="mw-page-title-main">Tümleşik geliştirme ortamı</span> yazılım geliştirmek için kullanılan yazılım ortamı

Tümleşik geliştirme ortamı, bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür.

Programlama dili teorisi (PDT), programlama dilleri olarak bilinen biçimsel dillerin ve bunların bireysel özelliklerinin tasarımı, uygulanması, analizi, karakterizasyonu ve sınıflandırılması ile ilgilenen bir bilgisayar bilimleri dalıdır. Matematik, yazılım mühendisliği, dilbilim ve hatta bilişsel bilime bağlı ve onu etkileyen bilgisayar bilimi disiplinine girer. PDT'ye adanmış çok sayıda dergide ve genel bilgisayar bilimi ve mühendisliği yayınlarında yayınlanan sonuçlarla tanınmış bir bilgisayar bilimi dalı ve aktif bir araştırma alanı haline gelmiştir.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

Sızma testi, sistemin güvenliğini değerlendirmek üzere bir bilgisayar sistemi üzerinde gerçekleştirilen yetkilendirilmiş temsili bir siber saldırıdır. Test, yetkisiz kişilerin sistem özelliklerine ve verilerine erişme potansiyelini içeren her iki zayıf noktayı ve sistemin güçlü yönlerini belirlemek ve tam bir risk değerlendirmesi sağlamak için yapılır.

Gri şapkalı hacker, kötü amaçlı hackerların yani siyah şapkalı hackerların kullandıkları teknik ve yöntemleri bilen ve hackerların eylemleri sırasında kullandıkları araçları ve yazılımları tanıyan, bazen yasaları da ihlal edebilen fakat genelde hukuk kuralları çerçevesinde iş yapan, uzman etik standartlarını ihlal etmeyen bilgisayar uzmanlarıdır.

Açık kaynak yazılım hareketi, daha geniş açık işbirliği kavramının bir parçası olarak, yazılımların bir kısmı veya tamamı için açık kaynak lisanslarının kullanımını destekleyen bir harekettir. Açık kaynak hareketi, açık kaynak yazılım kavramını/fikrini yaymaya başlamıştır. Açık kaynak hareketi felsefesini destekleyen programcılar, yazılım geliştirme için gönüllü olarak programlama kodu yazarak ve değiş tokuş ederek açık kaynak topluluğuna katkıda bulunurlar. "Açık kaynak" terimi, hiç kimsenin düzenlenmiş kodu paylaşmayan bir gruba karşı ayrımcılık yapmamasını veya başkalarının önceden düzenlenmiş çalışmalarını düzenlemesini engellememesini gerektirir. Yazılım geliştirmeye yönelik bu yaklaşım, herkesin açık kaynak kodunu almasına ve değiştirmesine olanak tanır. Bu değişiklikler, yazılımla çalışan kişilerden oluşan açık kaynak topluluğu içindeki geliştiricilere geri dağıtılır. Bu sayede kod değişikliğine katılan tüm bireylerin kimlikleri ortaya çıkarılmakta ve kodun zaman içinde dönüşümü belgelenmektedir. Bu yöntem, belirli bir kod parçasının sahipliğini oluşturmayı zorlaştırır, ancak açık kaynak hareketi felsefesiyle uyumludur. Bu hedefler, yüksek kaliteli programların üretimini ve açık kaynak teknolojisini geliştirmek için benzer düşünceye sahip diğer insanlarla işbirliği içinde çalışmayı teşvik eder.

<span class="mw-page-title-main">Ölüm ekranı</span>

Bilişimde, ölüm ekranı, sistem önemli bir sistem hatasıyla karşılaştığında ekranda görüntülenen, bir tür bilgisayar işletim sistemi hata mesajı için kullanılan gayriresmi bir terimdir. Bilgisayar kullanıcıları bu mesajları "ölüm ekranları" olarak adlandırmıştır çünkü bunlar genellikle kaydedilmemiş işlerin kaybolmasına neden olmakta ve genellikle sistemin donanımı veya yazılımıyla ilgili ciddi sorunlar olduğunu göstermektedir. Terimler sıklıkla birbirinin yerine kullanılsa da, bu hata ekranları genellikle bir 'kernel panic' sonucudur. Çoğu ölüm ekranı, kullanıcıya bilgisayarı yeniden başlatmasını tavsiye eden bir mesajla birlikte düz bir arka plan renginde görüntülenir.

<span class="mw-page-title-main">Android Debug Bridge</span>

Android Debug Bridge, Android tabanlı cihazlarda hata ayıklamak için kullanılan bir programlama aracıdır. Android cihazındaki arka plan programı, ana bilgisayardaki sunucuya USB veya TCP üzerinden son kullanıcı tarafından kullanılan istemciye bağlanan TCP üzerinden bağlanır. 2007'den beri Google tarafından Apache Lisansı altında açık kaynaklı yazılım olarak sunulan özellikler arasında bir kabuk ve yedekleme yapma imkanı bulunmaktadır. adb yazılımı; Windows, Linux ve macOS ile uyumludur. Botnet'ler ve RSA kimlik doğrulaması ve cihaz beyaz listeye alma gibi azaltıcı etkenlerin geliştirildiği diğer kötü amaçlı yazılımlar tarafından kötüye kullanılmıştır.

<span class="mw-page-title-main">CHIP-8</span>

CHIP-8, Joseph Weisbecker tarafından geliştirilmiş yorumlamalı programlama dilidir. İlkin 1970 ortalarında COSMAC VIP ve Telmac 1800 8-bit mikrobilgisayarlarında kullanılmıştır. CHIP-8 programları CHIP-8 sanal makinesinde çalışmaktadır. Kendisi video oyunlarını bu bilgisayarlarda daha kolay programlamak için yaratılmıştır. CHIP-8'in basitliği ve uzun tarihi ve popülerliği, CHIP-8 emülatörlerinin ve programlarının günümüzde de yapılmasını sağlamıştır.

<span class="mw-page-title-main">Kernel panic</span>

Bir kernel panic, bir işletim sisteminin çekirdeği tarafından, güvenli bir şekilde kurtarılamadığı veya sistemi çalıştırmaya devam etmenin büyük veri kaybı yaşanabilmesinin yüksek bir riske sahip olacağı dahili bir kritik hata tespit edildiğinde alınan bir güvenlik önlemidir. Terim büyük ölçüde Unix ve Unix benzeri sistemlere özgüdür. Microsoft Windows işletim sistemlerindeki eşdeğeri, genellikle "mavi ekran" olarak adlandırılan bir durdurma hatasıdır.

Bilgisayar biliminde zorunlu programlama ya da emperatif programlama, programın durumunu değiştiren ifadeler kullanan yazılımın programlama paradigması'dır. Doğal dillerdeki zorunlu kipin komutları ifade etmesi gibi, zorunlu program da bilgisayar'ın gerçekleştireceği komutlardan oluşur. Zorunlu programlama, beklenen sonuçlarının üst düzey tanımlarından ziyade programın nasıl adım adım çalıştığını açıklamaya odaklanır.

Yazılım, işlemci tarafından yürütülmek üzere programlanmış dijital bilgisayarların belleğinde saklanan bir dizi programlanmış talimattır. Yazılım insanlık tarihinde yeni bir gelişmedir ve Bilişim Çağının temelini oluşturur.