23
Hazırlayan:Emin BORANDAĞ 06/10/22 1

YZM 320 - Yazılım Doğrulama ve Geçerlileme

Embed Size (px)

DESCRIPTION

YZM 320 - Yazılım Doğrulama ve Geçerlileme. Hazırlayan:Emin BORANDAĞ. Bug nedir?. 1947 yılında Harvard Üniversitesi'nde bir oda büyüklüğünde bir bilgisayar (Mark II) olarak adlandırılan bir bilgisayar geliştirildi. Mekanik röleler değiştirildi. Bu arada parlayan vakum tüpler oldu. Bugs …. - PowerPoint PPT Presentation

Citation preview

Page 1: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Hazırlayan:Emin BORANDAĞ

04/20/23 1

Page 2: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Bug nedir?1947 yılında Harvard Üniversitesi'nde bir oda

büyüklüğünde bir bilgisayar (Mark II) olarak adlandırılan bir bilgisayar geliştirildi.Mekanik röleler değiştirildi.Bu arada parlayan vakum tüpler oldu.

04/20/23 2

Page 3: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Bugs…Defect = Bozukluk yada noksanlık.Fault = Kusur,Hata,ArızaProblemErrorIncident = OlayAnomalyVariance = Değişiklik

04/20/23 3

Page 4: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Hatalı YazılımGeliştirilen program içerisinde kaç çeşit ve

kaç tane hata vardır.Tahmin imkanı var mı?Kesin olarak bilinebilir mi?

04/20/23 4

Page 5: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Problemlerin Kaynağı-1Gereksinimleri Belirle: Hatalı, eksik, tutarsız

gereksinim belirleme.Tasarım: Yazılımın Temel tasarım hataları.Uygulama: Kodlama, programlama hataları,

kalitesiz programlama.Test: Yetersiz ve eksik test.Destek Sistemleri: Zayıf programlama dilleri,

hatalı derleyici ve debugger'lar.

04/20/23 5

Page 6: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Problemlerin Kaynağı-2Yetersiz yazılım Testi: Eksik test, kötü

doğrulama, hata ayıklama sorunları. Düzeltmeler: Yazılım geliştirme ya da bakım

sırasında, bazı özellikleri geliştirmek isterken yapılan hatalar.(Düzeltmek içinyapılan çalışmalarda yeni kusurların ortaya çıkması.)

Karmaşıklık katsayısının azaltılamaması.

04/20/23 6

Page 7: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Hatalı Yazılımın Sonuçlarıİletişim Kaybı.Müşterinin yazılıma olan ilgisinin kaybı.2 Taraflı güven kaybı.Maliyet Artışı.Zaman Aşımıİlave hatalar.

04/20/23 7

Page 8: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Hatalı Yazılımın Sonuçları…Ulaşım: Ölümler, gecikmeler, ani hızlanma, fren

yetersizlik.Güvenlik kritik Uygulamalar: Ölüm, yaralanma.Elektrik Güç: Ölüm, yaralanma, elektrik kesintileri,

uzun vadeli sağlık tehlikeleri (radyasyon).Para Yönetimi: Sahtekarlık, gizlilik ihlali, borsalar

ve bankaların, negatif faiz oranları hesabı.Yanlış sonuçlar seçimler kontrolü.Hapishane Kontrolü: Kilitlerin açılması sonucu

mahkumlar yanlışlıkla kaçması.Kolluk: Yanlış tutuklamalar ve hapse.

04/20/23 8

Page 9: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Mariner 1

DO I = 1.10 yerine I=1,10

Yazılımındaki bir hata fırlatma sırasında roketin istenen yörüngeden ayrılmasına yol açtı. Kontrol yönetimi tarafından roket Atlantik Okyanusu’nda yok edildi.

Kazayla ilgili inceleme yapıldığında, bir kâğıda kurşun kalemle yazılmış bir formülün bilgisayara yanlış geçirilmiş olduğu ortaya çıktı. Böylece bilgisayar roketin yörüngesini yanlış hesaplamıştı.

22 Haziran 1962

04/20/23 9

Page 10: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

1982 — Sovyet Gaz HattıCIA’e bağlı çalışan operatörler Sibirya gaz

hattını kontrol etmek üzere satın alınan Kanada bilgisayar sistemine bir böcek yerleştirdiler. Bu böcek Sovyet incelemesinden geçecek, ama sonunda işletme anında başarısız kalacak bir ekipmanı araç olarak kullandı. Yerleştirilen böceğin hatalı çalışması sonucu gezegenin tarihinde en büyük nükleeer olmayan patlama meydana geldi.

04/20/23 10

Page 11: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

1985-1987 — Therac-25 Tıp Kazası Bir radyasyon terapi cihazı hatalı çalıştı ve çeşitli tıbbi tesislerde

ölümcül düzeyde radyasyon verdi. Daha önceki bir tasarım geliştirilerek yaratılmuş bulunan Therac-25 iki

farklı tür radyasyon verilen “ileri” bir terapi sistemi idi. Ya düşük güçlü elektron ışını (beta parçacıklar) veya X-ışınları veriyordu.

Therac-25′in X-ışınları yüksek güçlü elektronların elektron silahı ile hasta arasına yerleştirilmiş bir metal hedefe çarptırılmaları ile yaratılıyordu. İkinci bir “ilerleme” de eski Therac-20 nin elektromekanik güvenlik bağlantılarının yazılım kontrolüyle yapılmasıydı.

Bu karara yazılımın daha güvenli olduğu düşüncesiyle varılmıştı. Mühendislerin bilmediği şey hem 20 hem 25′in hiçbir resmi eğitimi olmayan bir programcı tarafından yazılmış olduklarıydı. Bir görünmez hata nedeniyle, hızlı yazan bir klavye kullanıcısı kaza yaparak Therac-25′in elektron ışınını yüksek enerjili modda, fakat metal hedef yerinde olmadan, hastaya gönderecek şekilde çalışmasına yol açabilirdi. Böyle oldu ve en az 5 hasta öldü başkaları ciddi şekilde yaralandı.

04/20/23 11

Page 12: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

1988 — Berkeley Unix Sisteminde Tampon Bellek Taşması:Adına Morris Worm denen ilk İnternet solucanı

bir tampon bellek yetersizliği sorunundan yararlanıp, bir günden az bir zaman içinde, 2000-6000 arası bilgisayara bulaştı. Bu konuyla ilgili kod gets() olarak ifade edilen bir standart girdi-çıktı kütüphanesi fonksiyonuydu. Bu fonksiyon ağ üzerinde bir metin satırı okur. Maalesef gets() fonksiyonunun girdiyi sınırlamayla ilgili bir kontrolü yoktur ve çok büyük bir girdi solucanın bağlanabildiği makinayı kontrolüne almasını sağlayabilir.

04/20/23 12

Page 13: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

1988-1996 — Kerberos Rasgele Sayı Üreticisi Kazası:Kerberos güvenlik sisteminin yazarları,

programın rasgele sayı üreticisini uygun bir parametreyle beslemeyi ihmal edince, yetkilendirme için Kerberos’a dayanan bir bilgisayara izinsiz giriş yapmak mümkün hale geldi.

04/20/23 13

Page 14: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

15 ocak 1990 — AT&T Bilgisayar Ağı KazasıAT&T’nin #4ESS uzun mesafe şalterlerini kontrol

eden yazılımının yeni sürümündeki bir görülmeyen bir hata, bu dev bilgisayarların komşu makinaların birinden belirli bir mesaj almaları durumunda çökmelerine neden oldu. Kısa süre sonra, her 6 saniyede 114 şalter çöküp yeniden çalışmaya başlar hale geldi. Böylece 9 saat boyunca 60 bin kadar kişi uzun mesafeli servis kullanamaz hale geldi. Sonuçta mühendisler yazılımın eski sürümünü yüklediler.

04/20/23 14

Page 15: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

1993 - Intel Pentium İşlemcide SorunBir silikon hatası Intel Pentium bilgisayar yongasının

belli bir büyüklük aralığındaki ondalıklı sayıları bölerken hata yapmasına yol açıyordu. Örneğin 4195835.0 / 3145727.0 sonucu 1.33382 yerine 1.33374 olyordu. Bu yüzde 0.006 lık bir hataydı. Bu görünmez hata az sayıda kullanıcıyı etkiledi, ama halkla ilişkiler kâbusu yarattı. Piyasaya sürülmüş 3- 5 milyon arası yonga vardı. Başlangıçta Intel daha hassas hesaplamalara ihtiyacı olduğunu kanıtlayanlar için yonga değişişkliği yapmayı önerdi; ama sonunda teslim oldu, şikâyet eden herkesin yongasını değiştirmeyi kabul etti. Sonunda bu görünmez hata Intel’e 475 milyon dolara maloldu.

04/20/23 15

Page 16: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

4 Haziran 1996 — Ariane 5 Flight 501Ariane 4 roketinin çalışma kodu Ariane 5′te yeniden

kullanılmıştı. Fakat Ariane 5′in daha hızlı olan motoru, roketin uçuş bilgisayarındaki bir aritmetik işlemde bir hatanın ortaya çıkmasına yol açıyordu. Hata, bilgisayar ifadeleriyle, 64 bitlik ondalıklı sayıyı 16 bitlik işaretli tam sayıya dönüştüren kodda idi. Daha hızlı motor 64 bitlik sayıların Ariane 5′te, Ariane 4 de olduğundan daha büyük olmasına yol açıyor ve böylece sayısal taşma durumu yaratıyor, o da uçuş bilgisayarının çökmesini getiriyordu. Flight 501′in destek bilgisayarı çöktü, 0.05 saniye sonra da ana bilgisayar çöktü. Çöken bilgisayarlar sonucu, roketin ana işlemcisi motorlara aşırı güç yüklenmesine yol açtı ve roket, fırlatıldıktan 40 saniye sonra, parçalandı.

04/20/23 16

Page 17: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Kasım 2000 — National Cancer Institute, PanamaBir dizi kaza sonucu bir ABD firması olan

Multidata Systems International tarafından yazılmış olan terapi planlama yazılımı, radyasyon terapisine girecek hastaya yollanacak uygun radyasyon dozunu yanlış hesapladı. Multidata’nın yazılımı bir radyasyon terapistinin, “blok” denen, sağlam dokuların radyasyondan korunmasını sağlayan metal kalkanın yerini bilgisayar ekranında belirlemesine olanak veriyordu.

04/20/23 17

Page 18: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

F-18 çarpışması…F-16 kullanılan similasyon progamındaki

paremetrelerin düzgün olarak F-18 similasyonua aktarılmaması.

04/20/23 18

Page 19: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Yıl belirsizlikleri…Mary Bandar 1992 yılında '88 doğumlu diğer

çocuklarla birlikte, Winona, Minnesota bir anaokulu katılmak üzere davet aldı.

Mary 104 yaşında idi ----zaman.

04/20/23 19

Page 20: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Tarih,Zaman ve Tamsayılar…

A Washington D.C. Hastane bilgisayar sistemi

çöktü 19 eylül, 1989.01.01.1900

152

04/20/23 20

Page 21: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Tarih,Zaman ve Tamsayılar…1979 yılında ABD'de, depremlere dayanacak

şekilde bir nükleer santral tasarlandı. Ancak kullanılan bir simülasyon programındaki bir program hatası yüzünden reaktör kurulmadı.

04/20/23 21

Page 22: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Norwegian bank ATM…10 kat para eksilen bakiye yok…İngiliz bankası… Bir yazılım kusuru yarım saat içinde yaptığı tek

yönlü para trasferleri nedeni ile 2 milyar İngiliz sterlini kaybetti! Bankayı sonunda fon kurtarıldı.

Merkez bankası kur hesabı…Avustralyalı bir adam, Sri Lanka Rupisini

104.500 $ değerine satın aldı. Ertesi gün 440.258 $ a bir başka bankaya sattı. İlk bankanın yazılım Rupi pozisyonda yanlış döviz kuru göstermişti. Bankanın açtığı davayı dolandırıcılık olmadığından ilave olan 335,758 $ saklayabilirsiniz kararı verdi!

04/20/23 22

Page 23: YZM 320 - Yazılım Doğrulama ve  Geçerlileme

Tartışma…Bildiğiniz yazılım hataları…

Medya.Kendi deneyimleriniz.

04/20/23 23