Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

YAZILIM TESTİ 1.  Yazılım geliştirme sürecinin çeşitli aşamalarında,  İnsan yada başka nedenlerden dolayı çeşitli hataların veya terslikleri oluşması.

Benzer bir sunumlar


... konulu sunumlar: "YAZILIM TESTİ 1.  Yazılım geliştirme sürecinin çeşitli aşamalarında,  İnsan yada başka nedenlerden dolayı çeşitli hataların veya terslikleri oluşması."— Sunum transkripti:

1 YAZILIM TESTİ 1

2  Yazılım geliştirme sürecinin çeşitli aşamalarında,  İnsan yada başka nedenlerden dolayı çeşitli hataların veya terslikleri oluşması kaçınılmazdır.  Önemli olan, bu gibi olumsuz durumların zamanında belirlenmesi ve giderilmesidir. 2

3  İnsanların iletişim ve üretim konularında mükemmel olamamalarından dolayı,  İnsan kaynaklı hatalar geliştirme sürecinin en başından yer alan tanımlama aşamasında ortaya çıkmaya başlar 3

4  Hataların oluşmaması, oluşanlarında ortadan kaldırılmasını sağlamak üzere yazılım geliştirme işleri nitelik güvence etkinlikleriyle beraber yürütülür. 4

5  Yazılım testi yada diğer adıyla sınama yazılım geliştirme sürecinin en önemli aşamalarından biri olarak çözümleme, tasarım ve kodlama aşamalarının son bir değerlendirmesi yerine geçer. 5

6  Sınaması yapılmamış bir tasarım aslında çalışamaz demektir 6

7  Yazılım testi ilk ortaya çıktığı sıralarda yalnızca hata ayıklama amacıyla yapılmaktaydı.  Sonra testler yazılımın doğru çalıştığını göstermek amacıyla yapılmaya başlandı. 7

8  Daha sonraları testlerin yapıcı olmaktan çok yıkıcı bir şekilde yapılmasının daha iyi sonuçlar verdiği görüldü.  1980’li yıllardan sonra daha kurallı geliştirme teknikleri kullanılmaya başlandığından tüm geliştirme sürecini içeren aşamalı testler kullanıldı. 8

9  Günümüzde de bu yöntem yanında hataları önlemeye yönelik testler yapılmaktadır. 9

10  Testin en iyi şekilde yapılabilmesi için test mühendisleri tarafından test senaryoları tasarlanmalıdır.  Senaryolar, sistemin isterlerini karşılayıp karşılamadığını göstermek üzere gerçek koşullar düşünülerek hazırlanmalıdır. 10

11  Bazı yazılım geliştirme yöntemlerinde, test aşamasını birden fazla alt aşamaya bölmek de mümkündür.  Her aşamada belli bir ayrıntıda test yapılır. 11

12 TESTİN AMAÇLARI  En genel şekliyle bir yazılım ürününün testi, bir yazılım sistemini veya bir birimini kullanıcıya teslim etmeden önce kusur bulabilmek amacıyla çalıştırmaktır. 12

13  Sorunlardan kaçınabilmenin tek yolu yazılımı iyice test etmek, yani sınamaktır.  Sınamanın da «deneme» ve «kabul» olarak iki amacı olduğunu özellikle vurgulamak gereklidir. 13

14 DENEME TESTLERİ  Yazılımın kaynak kodu yazılıp derlendikten sonra doğru çalışıp çalışmadığı sınanmalıdır.  Hata bulmak niyetinden çok önemli işlevlerin yerine getirilip getirilmediğini anlayabilmek amacıyla yapılan bu ön testlerin amaçlarını şöyle sıralayabiliriz. 14

15  Kodlanıp derlenen, sonra da bağlanıp yürütülebilir hale getirilen yazılım biriminin çalışıp çalışmadığını denemek,  Birimin girdilere doğru işlem yapıp doğr çıktı ürettiğini denemek,  Birimin tüm isterleri karşıladığını denemek, 15

16  Birimin yanlış girdiler alması halinde hataya dayanıklılığını denemek,  Birimin ilk çalıştırma sırasında ve sonlandırma sonrasında sistem öz kaynaklarını nasıl kullandığını ve serbest bıraktığını denemek ve  Bulunan her hatadan sonra başka bir hata olup olmadığını araştırmak. 16

17 KABUL TESTLERİ  Yazılım ürününün tamamının istendiği gibi doğru çalıştığını kullanıcıya veya onun temsilcisine ya da proje örgütü içindeki yetkili bir makama göstermek amacıyla, uygulama alanına bağlı olarak, önce üretim yerinde sonra da kullanım yerinde testler yapılır. 17

18  Bu testler için genellikle ayrı test ekipleri bulunur.  Bu testlerin amaçlarını şöyle sıralayabiliriz : 18

19  Kullanıcıya tanımlanan isterlere göre sistemin doğru çalıştığını göstermek, yani doğrulamasını yapmak, 19

20  Sistemin kullanıcısının amaçladığı şekilde kullanımı için yeterli olduğunu, doğru sistemin geliştirildiğini, yani geçerliliğini göstermek. 20

21 Kullanıcının isterlerini çalışan sistem üzerinde bir kez gözden geçirip amaçlarına tam uyacak şekilde ince ayarlar yapabilmesini sağlamak Uygulama alanının özelliğine göre, ya gerçek durumlarda ya da ona en yakın benzetim olanaklarıyla sistemi kullanım yerinde denemek Sistemi olabildiğince ağır yükte ve en kötü koşullarda çalıştırarak güvenirliğini kanıtlamak 21

22 Küçük ya da büyük her türlü yazılımın kabulü için test senaryoları tasarlanmalı,belgelerde tanımlanmalı,ürünü kabul edecek müşteri yada makam tarafından onaylanmalıdır. Test belgesinin onaylanması, test kıstaslarının taraflarca kabul edilmesi anlamına gelir. 22

23 TESTİN YAPILIŞI Yazılım sistemlerinin testinin yapılabilmesi için aşağıdaki girdilerin bir düzenleşim sisteminde bulunması gereklidir : Yazılım isterleri belirtimi ( Nelerin test edilmesinin istendiğini belirtir.) Tasarım belirtimi ( Nelerin test edilmesinin gerektiğini belirtir.) Kaynak kod ( En son üretim hata bulma amacıyla kullanılır ) 23

24 Test Ortamı ( Hedef sistem donanımının bir benzeri veya kendisidir.) Test Planlaması ( Hangi testin ne zaman ve nasıl yapılacağını belirtir.) Test Tanımlaması ( Test senaryolarını ayrıntılı olarak anlatır. ) Test Yardımcı Gereçleri ( Ölçüm yada veri giriş/çıkışı için kullanılır. ) Benzetim Araçları (Gerçek ortamdaki davranışları denetim altında yaratabilmek üzere kullanılır.) 24

25 Bütün bunlar sağlandıktan sonra, düzenleşim sisteminden çekilerek üretilen ve test sistemine yüklenen yazılıma test personeli tarafından test senaryoları tek tek uygulanır, sonuçları daha sonra değerlendirilmek üzere kaydedilir.Kaydedilen sonuçlar olması gereken değerlerle karşılaştırılır ;farklılık bulunması halinde nedenleri değerlendirilerek hataların bulunmasına çalışılır. 25

26 Test değerlendirmesi sonunda, ya tatmin edici bir sonuç elde edilerek yazılımın yeterli niteliğe sahip olduğuna kanaat getirilir ; ya da yazılımın testi geçemeyerek hataları düzeltilmek üzere tekrar üreticiye geri verilir.Testlerin olumlu geçmesi durumunda hatasız veya düşük hata olasılığına sahip ürün kullanıcıya teslim edilir. 26

27 Olumsuz test sonuçları kaynak kodun düzeltilmesiyle giderilebileceği gibi tasarımın hatta isterlerin dahi değiştirilmesine neden olabilir.Bu değişme ve düzeltmelerden sonra kaynak kodlar ve etkilenerek değiştirilen belgeler tekrar gözden geçirilip onaylanarak düzenleşim sistemine konur ve test tekrar edilir. Test süreci boyunca gerçekleşen aşamalar şekildeki gibi özetlenmektedir : 27

28 28

29 Örneğin, bir veritabanı yönetim sisteminde saniyede erişim yapılması bir ister olarak ortaya konmuş olabilir.Yapılan testlerde bu değere ulaşmak mümkün olmayıp 2000 düzeylerinde kalınabilir.Kaynak kod incelemesinde herhangi bir yanlış kodlama veya verimsizlik bulanamadığı takdirde,tasarımda belirlenen veri yapısı ve erişim algoritmasında bir eksiklik aranır. 29

30 Burada da bir hata görülmemesi üzerine müşteri ile anlaşılarak isterde belirtilen erişim düzeyini mevcut donanım,işletim sistemi ve yazılım mimarisi ile karşılanabilecek bir değere çekmek gerekebilir.Böyle sonuçlar, çözümlemenin iyi yapılmadığı ya da var olan teknolojik kısıtlamaların tam olarak dikkate alınmadığı durumlarda ortaya çıkabilir.Bazı durumlarda önemli maddi kayıplar ortaya çıkabilir. 30

31 TEST YÖNTEMLERİ Her türlü üretim olduğu gibi, yazılım ürünü testinin iki ana amacı vardır: Bunlardan birincisi olan deneme, bir ürünün tüm iç yapısının doğru çalıştığından emin olmak üzere yapılır.İkinci olan kabul testleri ise ürünün yerine getirmesi gerekli olan tüm işlevleri başarıyla gerçekleştirdiğinin gösterilmesidir. Birinci test yaklaşımına saydam kutu testi(white- box test),ikinci test yaklaşımına da kara kutu testi (black-box test )adı verilmektedir. Şimdi bunları ayrıntılarıyla işleyelim. 31

32 S AYDAM KUTU TESTI Yazılımın bu test için saydam bir kutuya benzetilmesi onun tüm iç yapısının (yordamların,veri yapılarının,iletişim biçimlerinin)ortaya konmasından kaynaklanmaktadır.Veri akışları, bunların yazılım içinde izlediği mantıksal ve fiziksel yollar,çeşitli test durumları ile test edilirler.Saydam kutu testinide iki aşamaya ayırmakta yarar vardır : 32

33 TASARIM TABANLI TEST İsterler çözümlenmesi sonunda ortaya çıkan sistem gereksinimleri, tasarıma esas olacak sistemi tanımlar.Ancak, çoğu zaman, bu tanımlamalar kodlama aşaması için fazla üst düzeyde kalır.Bu nedenle isterler daha ayrıntılı hale getirilerek yazılım birimleri olarak kabul edilen modüllere paylaştırılır.Testler sırasında bu modüller birer kara kutu olarak kabul edilerek,ara yüzleri ile tanımlanan girdi-çıktı verilerine göre test durumları tasarlanır ve o şekilde test edilirler. 33

34 Yazılım daha küçük parçalara bölündüğü için bu tür testler daha alt düzeyde yapılırlar.Örneğin, bir ileti alındığında, iletinin her bir alanının tipine ve sınırlarına doğru değerlendirme yapıldığının, sonuçta beklenen değer aralıklarında veriler elde edilmekte olduğunun testi yapılır.Bu tür testler genellikle kodlayıcının kendisi tarafından en basit test ortamında yapılır. 34

35 KOD TABANLI TEST Bazı durumlarda yalnızca kara kutu testi yapmak o yazılım biriminin güvenilir olduğunu kanıtlamayabilir.Örneğin,belirli bir isteri doğru olarak gerçekleştirdiğini gösteren bir kara kutu testi sırasında, modüllerden birinin içine o test yada switch deyimlerinden bazılarına hiç girilmemiş olabilir.Girilmemiş bu deyimlerde önemli hatalar bulunabilir ve testi geçtiği sanılan bu yazılım,kullanım sırasında mantıksal akış yollarından birinin gerçekleşmesi halinde çöküşe neden olabilir.Kod içinde hata üretebilen başlıca noktalar arasında şunları sayabiliriz : 35

36 MANTIK HATALARI Bir işi bilgisayara yaptırabilmek için kullanılan kod parçalarının veya deyimlerin yanlış yerleşimi,bir değişkene ilk değer verilmemesi,bir isterin yanlış yorumlanması gibi nedenlerden dolayı mantıksal hatalar yapılır ve çalışan fakat yanlış sonuç verebilen yazılımlar ortaya çıkar. 36

37 K ODLAMA HATALARı Yeterli deneyimin bulunmadığı kodlama işlemleri arasına kodlayıcı dilin esnekliği nedeniyle yanılgıya düşüp önemli hataların oluşmasına sebep olabilir.Örneğin, dinamik veri yapıları üzerinde öbek kopyalama sırasında dizi boyunun aşılması, işaretçilerin yanlış yerleri göstermesi gibi hatalar yüzünden bazı testlerden geçtiği halde güvenilirliği son derece zayıf olan yazılımlar üretilebilir.Bir örnek vermek gerekirse, veritabanına kayıt ekleme ve çıkarma işlemi başarılı olabilir;fakat tasarımda dikkate alınmayan bir şekilde, aynı kayıt tekrar eklenirse yazılımın davranışının ne olacağı belirsiz hale gelir. 37

38 AKIŞ YOLU VARSAYIMI Yazılım içinde denetim akışının düzenli olarak hep aynı sırayı izlediğini varsaymak bir hataya yol açabilecek tehlikedir.Hiç öngörülmeyen bir anda, farklı bir akış yolunun izlenmesi yazılımın hata üretmesine neden olur.Örneğin,bir girdinin alabileceği değerlerin 1 ile 10 arasında olması gerektiği varsayımına göre tasarlanan ve kodlanan bir yazılım birimine -1 ya da 150 gibi bir değer gelmesi halinde, ya değer reddedilmeli ya da farklı bir dallanma izlenmeli ve hataya düşülmemelidir. 38

39 YAZIM HATALARI Günümüzde kullanılan birçok derleyici,kod yazım hatalarını yakalayıp hata vermekte ve kod düzelinceye kadar derleme yapmamaktadır. Belirtilen bu nedenlerden dolayı, yürütülebilir kod olarak kabul edilen bir yazılım birimini oluşturan önemli deyim satırlarının da bir şekilde test edilmesi gereklidir.Zira kara kutu testi bu hataları yakalayamaz.Hiç değilse önemli iş yapan kod parçaları ayrı bir yazılım içinde yerel olarak denenmelidir.Örneğin, bir aygıttan okunan sekizli dizisi şeklindeki veriyi tarayıp çözümleyen kısım tüm yazılımla beraber değil de ayrı bir şekilde denenmelidir.Aksi takdirde, diğer işlevlerin de yanlış çalışmasına neden olarak testlerde zaman ve emek kaybına neden olabilir. 39

40 KARA KUTU TESTİ Yazılım testi ele alındığında, kara kutu testi yazılımın ara yüzü düzeyinde yapılır.Her ne kadar test hata bulmak için yapılsa da asıl amaç yazılımın işlevlerini yerine getirdiğini göstermektir.Bu amaçla,yazılımın tamamına ya da test edilmekte olan birimine ara yüzde belirtilen girdi sağlanır ve doğru çıktıyı vermesi beklenir.Girdi ya da çıktılar çeşitli ortamlarda sağlanan veri ya da bilgi olabileceği gibi bir donanımdan veri alınması veya bir donanıma kumanda edilmesi de olabilir. 40

41 Bu testlerde isterler çözümlemesi sonunda belirlenen sistem gereksinimleri esas kullanıcıya yönelik test durumları yaratılır,sonuçları gözlemlenir.Kullanıcı, bu testler sırasında yazılımın iç yapısıyla ilgilenmez.Testlerin düzey, kullanım alanına göre değişiklik gösterebilir.Örneğin, ürünün ilk kez test sisteminde denenmesi başka olurken (bir uçuş sisteminin laboratuar koşullarında denenmesi), gerçek ortamda denenmesi (bir uçak üzerinde havada denenmesi) başka olur. 41

42 ÖZEL SİSTEM TESTLERİ Bilgisayar tabanlı sistemlerin uygulama alanları değiştikçe onların test şekilleri de değişiklik gösterir.Sistemlerin hem donanımları hem de yazılımları uygulamam alanının isterlerini karşılayacak şekilde test edildikten sonra kullanıma sunulmalıdır.Şimdi bu tür sistemleri ve test yöntemlerini gözden geçirelim 42

43 GÖMÜLÜ SİSTEMLER Bu tür sistemlerin yazılımları donanıma kumanda ettiği için testlerin donanımla birlikte yapılması gereklidir.Özellikle, dış dünyadan koşut zamansız olarak 43

44 Girdi alan ve bu girdilere tepki vermek zorun da olan yazılımlar, bu girdilerin ne zaman ve hangi çalışma kipi sırasında geleceği belirli olmadığından gerekli önemleri almalı, hata yaratıp çökmemelidir. 44

45 Örnek olarak bir lazer yazıcının çalışmasını denetleyen yazılımı ele alalım. Yazıcı açıldıktan sonra kendi testlerini yaparak çevrimiçi durumuna geçer. 45

46 Bu durumdayken bilgisayardan gelen komutlara ve verilere uyarak baskı türünü belirler,verileri alır, kağıt durumunu kontrol eder ve baskıya geçer. Basım işi bitince de yine çevrimiçi durumuna döner. Denetim yazılımı bu işleri yaparken dışarıdan gelebilecek girdileri de gerektiği gibi değerlendirmek zorundadır. 46

47 Veri alışı sırasın da kağıt tepsisi çıkarıldığın da ya da bakım kapağı açıldığın da, ilgili algılayıcıdan gelen işaretle veri alışı kesilerek uyarı verilmeli, çevrimdışı durumuna geçmelidir. Kağıt tepsisi yerine konduğun da tekrar çevrimiçi durumuna gelmeli ve baskı süreci devam etmelidir. 47

48 GERÇEK ZAMANLI SİSTEMLER DAHA ÖNCE DE AÇIKLADIĞIMIZ GİBİ, BİR SİSTEMİN GERÇEK ZAMANLI SAYILABİLMESİ İÇİN HIZLI YANIT VERMESİ DEĞİL ÇOK KÜÇÜK ZAMANDA SINIRLARI İÇİNDE İŞİNİ TAMAMLAMA ZORUNLULUĞU BULUNMASIDIR. 48

49 Bu tür sistemlerinde ne zaman gerçek zamanlı tekpi gerektiren bir olayla karşılaşacağı her zaman belirli olmaz.Bu nedenle,gerçek zamanlı sistemlerin yazılımı ya çok özel benzetim ortamlarında sınanır yada gerçek sistem üzerinde,laboratuvarda,olabildiğince gerçek koşullar altında donanımla birlikte test edilir. 49

50  Ancak bazı durumların test edilmesi için mümkün olmayabilir;onun yerine,en yakın durum için işlevsellik testi yapılarak varsayıma gidilir. 50

51  Gerçek zamanlı sistemlerin en yaygın örneklerinden biri olan bilgisayarlı kontrol sistemleri içinde uçuş kontrol sistemleri güç santrali denetimi,hava trafik kontrolü,silah atış kontrol sistemleri,uzay araçları yer almaktadır. 51

52  BÜYÜK VERİ TABANI SİSTEMLERİ:Bankacılık,personel ve envanter bilgileri gibi çeşitli kayıtlar artık bilgisayarlı sistemlerde tutulmakta ve her türlü erişim işlemi onun üzerinden yapılmaktadır.Bu sistemler için geliştirilecek yazılımlar tam olarak kullanıma sunmadan önce çok ayrıntılı ve hassas testten geçirilmeli. 52

53  Benzer bir şekilde envanter kontrol sistemine yeni yüklenen hatalı bir yazılım birimi üzerinde işlem yapılan ürün yada nesnenin farklı sayıda gözükmesine,dolayısıyla hesaplarda açığa yol açabilir.Böyle sistemlerin hatalarını bulup düzeltmek çok güç olabilir hatta bazen geri dönüşü mümkün olmayabilir. 53

54  GÜVENLİK SİSTEMLERİ:En dikkatli şekilde test edilmesi gereken sistemlerden biri olan güvenlik sistemleri çeşitli algılayıcılar ve alarmlardan oluşur bu tür sistemler hiç kesintisiz çalışmalı sürekli devrede kalmalı her türlü olağan dışı olayı tespit edebilmeli hem de yanlış alarm üretmemelidirler. 54

55  GENİŞ PAKET YAZILIMLAR:Büyük çapta kullanıcısı olan paket yazılımlar için yapılacak testler bir kusurun çok sayıda kullanıcıyı etkileyebileceği istenmeyen sonuçlara yol açabileceği göz önünde bulundurarak yoğun testler yapıldıktan sonra ürün sürümü gerçekleştirilmelidir. 55

56  AKILLI DERLEYİCİLER:Bazı derleyiciler kaynak kodu tarayıp fazlaca tip denetimi yapmadan makine kodu üretirler.Bazıları ise kaynak kodu çok sıkı denetimden geçtikten sonra kod üretirler. 56

57  OTOMATİK TEST ARAÇLARI:Yazılım testleri çok uzun sürdüğü ve yüksek maliyet gerektirdiği için bu işin bir kısmını kolayca ve otomatik olarak yapabilecek araçlar kullanmak mümkündür.Bu tür test araçlarını şöyle sıralayabiliriz 57

58  DURAGAN ÇÖZÜMLEYİCİLER:Bu araçlar yazılımın kaynak kodunu inceleyerek yapısındaki zayıf noktasını bulur ve uyarı verirler.Kodlayıcı bu uyarı ve önerileri dikkate alarak kodu daha güvenilir hale getirir. 58

59  BENZETİM ORTAMLARI:Bir yazılımın gerçek ortamda çalıştığı taktirde nasıl davranacağını denemek üzere onu sanal bir işlemci üzerinde çalıştırarak test etmek mümkündür.Bu maksatla merkez işlem birimi donanım mimarisi ve işletim sisteminin özellikleri dikkate alınarak özel sistemler geliştirilir. 59

60  GİRDİ DOSYALARI:Bazı yazılımlar çeşitli dosyalardan veri okuyarak işlem yapmak üzere geliştirildiler.Bu tür yazılımları test edebilmek üzere uygulama alanında kullanılabilecek türden verileri önceden üretip uygun bir biçimde dosyalara yazan araçlar kullanılır. 60

61  TEST YAZILIMLARI; Test edilmesi gereken bir yazılım birimine gerçek ortamda ki gibi veri veya olay girişi sağlamamın bir yolu da test edilecek yazılıma girdi sağlayan diğer yazılım ya da donanımların yerine geçebilecek yazılımlar kullanmaktır 61

62  SİMGESEL TESTLER; Bu testler sayısal değersel yerine cebirsel işlemlerle yapılır bazı yazılımlar belirli algoritmalar çalıştırarak giriş değerlerine göre çıkış değeri üretirler. Bu algoritmaları test ede bilmek için girişte cebirsel denklemler kullanan ve çıkışıda cebirsel olan özel yazılım gereçleri kullanılır 62

63  ÇEVRE BENZETİCİLERİ;özellikle gömülü, tahsisli ve gerçek zamanlı kontrol sistemlerine gerçek çalıştırma koşullarında dinamik olarak test edebilmek üzere çevreden gelen etkileri benzetim yoluyla sisteme gire bilen ve sistem çıkışlarını ala bilen benzeticiler kullanılır. 63

64  SERGİLEME YAZILIMLARI; zaman aralıklı ölçümler, hesaplamalar ve denetimler yapan sistemlerin hesaplama sonuçlarını grafik üzerinde göstermek, elde edilen değerleri 2 ya da 3 boyutlu grafik nesneler halinde sergilemek yapılan testlerin sonuçlarının daha çabuk değerlendirilmesini ve anlatılmasını sağlar. 64

65  TEST STRATEJİLERİ; buraya kadar açıkladıgımız yöntemlerde yazılım testlerının nasıl yapılabileceğini ortaya koyduk ancak, yazılım bir sistem olarak geliştiriliyorsa bu sistemin testlerinin de belirli bir sıra da, belirli sekil de, belirli stratejilere göre yapılması gereklidir. 65

66 Bu modelde,ürünün en riskli görülen kısımlarına daha fazla eğilecek şekilde testler konmaktadır. Bunların bir kısmı durağan, bir kısmı da dinamik testlerdir. 66

67 Birim Testi Bir bilgisayar yazılımının en küçük birimi yürütülebilir bir programdır. Bir sistem, bir yada daha fazla yürütülebilir programdan oluşabilir. Özellikle çok programlı sistemlerde önce birimlerin ayrı ayrı test edilmesi gereklidir. 67

68 Bu şekilde, yazılım mühendisinin veya kodlayıcının elinden çıkan kodun hatalarının önce kendi içinde düzeltilmesi sağlanır. Daha çok saydam kutu yönteminin kullanıldığı birim testi ile düzgün ve hatasız çalıştığına kanaat getirilen bir birim artık tümleştirme testi için hazır hale gelmiş olur. 68

69 Birim Gerçekleştiriminde Hatalar Gerçekleştirim, yani kodlama sırasında denetiminden geçen ancak çalışma sırasında ortaya çıkabilen yaygın hatalar arasında şunları sıralayabiliriz: 69

70  Deyimleri simgesel olarak göstermedeki yanlışlıklar  İlk değerlerin atanmasında yanlışlık yada eksiklik  Farklı veri tiplerinin karşılaştırılmasının ve yordam parametrelerinde uyuşmazlık  Kayan nokta değerleri arasında karşılatırma yapıldığında hassasiyet değerinin karşılaştırmayı yanıltması 70

71  Aritmetik operatörlerin önceliklerinin yanlış kullanılması  Parantezlerin kullanılmasında hata yapılması  Döngüden yanlış çıkış yada hiç çıkmama  Döngü kontrol değişkenlerinin yanlış kullanımı  Tasarım sırasında hiç olasılık verilmeyen bir dallanmada yapılması gerekenlerin göz ardı edilmesi 71

72 Birim Testi Yöntemleri Test edilebilecek yazılım birimi ya bir yürütülebilir programdır yada bir sınıf, bir paket veya bir kütüphane gibi pasif bir yazılım modülüdür. Yazılım birimi olarak bir sınıf, bir paket veyaz bir kütüphane kabul edilirse, bir pasif birimin testi şu şekilde yapılır: 72

73  Bir test programı geliştirilerek test edilecek birimi kullanması sağlanır  Test programının ana yordamı içinden birimin tüm arayüzlerini denemek üzere çağrılar yapılır  Birime gönderilen ve alınan değerler ya ekrana yada bir dosyaya yazdırılır  Test edilecek birim başka birimleri kullanıyorsa bu birimlerde test programı içine dahil edilmelidir 73

74 Yazılım birimi kendi başına yürütülen, ayrı bir aktif program ise şu şekilde tespit edilir:  Önce programın çalışabilmesi için gerekli alt yapı, ilklendirme ve yapılandırma dosyaları hazırlanır  Test edilecek programın etkileşiminde olduğu diğer programlar hazır ise önce onlar çalıştırılır sonrada test edilcek program başlatılır eğer diğer programlar hazır değilse onların yerine geçecek birer test programı hazırlanır 74

75 BİRİM TESTİNİ YAPILIŞI Birim testi yapılırken aşağıdakilere dikkat edilmelidir:  Birimin arayüzü test edilerek bilgi giriş/çıkışlarının uygun ve yeterli şekilde yapıldığı kontrol edilir  Yerel veri yapıları inceleme altına alınarak algoritmanın çalışması boyunca yada yordamların çağırılması sırasında verilerin saklandığı yerin bütünlüğünün bozulup bozulmadığı test edilmelidir  Yazılım birimleri işlevsel kısıtlamalar ve sayısal sınırlar içinde çalışırlar bu şekilde verilerin ve işlevlerin korunması sağlanır 75

76  Birim içindeki birbirinden bağımsız tüm çalışma yolları, tüm dallanmalar tek tek sınanmalıdır. Birim içindeki hata yakalayıcılar birer birer denenmelidir. Bir hata durumu yakalandığında aşağıdakilerin varlığı da test edilmelidir: -Yakalanan hataya uygun bir uyarı iletisinin verilmesi -Hatanın durdurup yeniden başlatmaya neden olup olmadığı 76

77 -Hatanın kotarılmasının uygun bir şekilde yapılması -Hata iletisinin hatanın meydana geldiği yeri tam olarak belirli etmesi. 77

78 TÜMLEŞTİRME TESTİ Bir yazılım paketi çeşitli birimlerden oluşabilir. Bu paket uygun bir donanım üzerinde çalıştırılır. Yazılım ve donanım birimlerinin kendi başlarına sorunsuzca çalışıyor olmaları bir araya geldiklerinde de sorunsuz çalışacakları anlamına gelmez. 78

79 Çünkü, birimler arası uyumu tam olarak sağlayabilmek oldukça güçtür ve çok test gerektirir. Birden fazla yazılım biriminin bir araya getirilerek uyumlu bir şekilde ve hatasız çalışması her birinin tek tek değilde bir bütün içinde, tasarımda belirtildiği şekilde kendi üzerine düşen görevleri yerine getirip getirmedikleri tümleştirme testi ile kontrol edilir. Bu testin yapılma nedenlerini şöyle özetleyebiliriz: 79

80  Bir birim Çalışması bir başka birimin çalışmasını etkileyebilir.  Birimler arasında koşut zamanlığın sağlanması gereklidir.  Bütün bir işlevi oluşturan alt işlevlerin her biri belirli birimler tarafından doğru olarak yerine getirilse bile hepsi bir araya getirildiğinde beklenen sonucu vermeyebilir. 80

81  Birimler arasındaki arayüzler arasında verilerin kaybolması olasılığı vardır.  Birimlerin ağ üzerinde dağıtılması durumunda çalışma sırası, ileti aktarımı, koşutzamanlı iletişim sorunları, geri kazanma gibi konularda sorun yaşanabilir 2 tane tümleştirme çeşidi vardır 81

82 1- Yukarıdan Aşağıya Tümleştirme Yazılımı oluşturan birimlerin denetim sıradüzeni içinde, birimler ya derinlik tabanlı yada genişlik tabanlı olarak tümleştirilirler. Önce ana birimin testi yapılır. bir sonraki aşamada ya aynı düzeydeki bir başka birimin testi yapılır yada aynı birimin bir alt düzeyindeki birimle tümleştirmesi ve testi yapılır. 82

83 Bu işlemler sırasında, tümleştirmesi daha sonra yapılacak olan birimin geçici olarak yerine geçecek şekilde basit kod parçaları veya sürücüler kullanılır. Test sırası geldikçe bu geçici kod parçaları gerçekleriyle değiştirilir. Her bir eklemede daha önce yapılan testlerin bir kısmı yada tamamı tekrar yapılarak yeni bir kusur eklenip eklenmediğinden emin olunur. 83

84 2-Aşağıdan Yukarıya Tümleştirme Bu stratejide tümleştirme atomik birimlerin çalıştırılıp test edilmesiyle başlar. Alt düzey birimler birleştirilerek kümeler halinde getirilir. Bu küme, test senaryosu gereğince geliştirilen bir sürücü ana programla veri giriş/çıkışı bakımından test edilir. Benzer şekilde, d,ğer alt düzey birimler de kümeler halinde test edilir. 84

85 Daha sonra sürücü programlar ayrılarak yazılım paketinin yapısı içinde bulunan bu kümelerin birleştirilmesinden oluşan daha üst düzeyde yeni kümeler meydana getirilir. Bu kümeler de yine sürücü programlarla test edilir. Bu şekilde en üstte bulunan ana birime kadar ulaşır. 85

86 YETERLİLİK TESTİ Yazılım yeterlilik testi çoğu zaman doğrulama ve geçerleme konusunun bir parçası olarak değerlendirilir. Tümleştirme testinden sonra yazılım büyük ölçüde kusurlarından arındırılmış, arayüzleri doğru çalışır hale gelmiştir Bundan sonra bir dizi test daha yapılır işte bunlar yeterlilik testleridir. 86

87 HAZIRLAYANLAR Öğr. Gör. Mevlüt İNAN


"YAZILIM TESTİ 1.  Yazılım geliştirme sürecinin çeşitli aşamalarında,  İnsan yada başka nedenlerden dolayı çeşitli hataların veya terslikleri oluşması." indir ppt

Benzer bir sunumlar


Google Reklamları