1.15k likes | 1.19k Views
Yazilim testiu0307 YAZILIM Mu00dcHENDu0130SLu0130u011eu0130 TEMELLERu0130 Ku0130TABI DR. ERHAN SARIDOu011eAN
E N D
RAMAZAN ALPEREN AKIL /114 YAZILIM TESTİ GİRİŞ www.ramazanalperenakil.com
/114 İÇİNDEKİLER • Test Yöntemi • Hata Ayıklama Süreci • Belgelendirme • Özet • Sorular Konu videosu Yazılım Testi Test stratejileri Birim Testi Tümleştirme Testi Yeterlilik Testi Sistem Testi Kabul Testi www.ramazanalperenakil.com
Yazılım geliştirme sürecinin çeşitli aşamalarında, İnsan ya da 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. /114 • İ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. 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. www.ramazanalperenakil.com
Yazılım testi ya da 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. Sınaması yapılmamış bir tasarım aslında çalışamaz demektir Yazılımın “ne” yapacağının belirlenmesi onun doğru olarak çalıştığının sınanmasında engeller. Bu nedenle, en gevşek geliştirme etkinliğinde dahi, çözümleme tasarım ve test aşamalarından geçilmesi gereklidir. Yazılımın testinin önemi o kadar büyüktür ki, yazılım projeleri için gerekli öz kaynakların genellikle üçte birinden daha fazlasını test aşaması için ayrılmak yaygın hale gelmiştir. Hele görev kritik ve askeri yazılım projeleri için bu test maliyetleri daha da yüksek olabilmektedir. /114 www.ramazanalperenakil.com
/114 YAZILIM TESTİ / SINANMASININ TEMELLERİ Bilgisayar sistemi mühendisliği Yazılım isterleri çözümlenmesi Yazılım tasarımı Gerçekleştirme (Kodlama) Test ve Teslimi www.ramazanalperenakil.com Şekil © RAMAZAN ALPEREN AKIL
Yazılım, tasarlanıp kodlandıktan sonra belirli bir mantıkla test edilmeli, istenen sonuçları gerçekten verip vermediği sınanmalıdır. Aslında test aşamasında yapıcılıktan çok yıkıcılık amaçlanır, dersek pek yanlış olmaz. Testin temel ilkesi, sorunsuz ve hatasız çalışan, doğru sonuçlar üreten, sağlam bir sistem ortaya çıkmasını sağlamaktır. İyice sınamadan müşteriye teslim edilen bir ürün, yerine koyması mümkün olmayan yanlışlıklara neden olabileceği gibi, zaman, emek, para, onur mal hatta can kaybına neden olabilir. /114 www.ramazanalperenakil.com
Teslim süresini kısaltmak yeterli nitelikte test uygulanmayan yazılım ürünleri için bu son kaçınılmazdır. Testin en iyi şekilde yapılabilmesi için test mühendisleri tarafından test senaryoları tasarlanmalıdır. /114 www.ramazanalperenakil.com
Senaryolar, sistemin isterlerini karşılayıp karşılamadığını göstermek üzere gerçek koşullar düşünülerek hazırlanmalıdır. 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. /114 www.ramazanalperenakil.com
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. 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. /114 TESTİN AMAÇLARI www.ramazanalperenakil.com
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. /114 DENEME TESTLERİ www.ramazanalperenakil.com
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ğru çıktı ürettiğini denemek, • Birimin tüm isterleri karşıladığını denemek, • 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 • Bulunan her hatadan sonra başka bir hata olup olmadığını araştırmak. /114 www.ramazanalperenakil.com
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. Bu testler için genellikle ayrı test ekipleri bulunur. Bu testlerin amaçlarını şöyle sıralayabiliriz: /114 KABUL TESTLERİ www.ramazanalperenakil.com
Kullanıcıya tanımlanan isterilere göre sistemin doğru çalıştığını göstermek, yani doğrulamasını yapmak, • 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. • Kullanıcının isterilerini çalışan sistem üzerinde bir kez gözden geçirip amaçlarına tam uyacak şekilde ince ayarlar yapabilmesini sağlamak kanıtlamak /114 www.ramazanalperenakil.com
/114 • 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 sağlamak. www.ramazanalperenakil.com
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 ya da makam tarafından onaylanmalıdır. Test belgesinin onaylanması, test kıstaslarının taraflarca kabul edilmesi anlamına gelir. Yazılım sistemlerinin testinin yapılabilmesi için aşağıdaki girdilerin bir düzenleşim sisteminde bulunması gereklidir: /114 TESTİN YAPILIŞI www.ramazanalperenakil.com
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) • Test ortamı (Hedef sistem donanımının bir benzeri veya kendisidir.) • Test planlanması (Hangi testin ne zaman ve nasıl yapılacağını belirtir.) • Test tanımlanması (Test senaryoları ayrıntılı olarak anlatır) • Test Yardımcı Gereçleri (Ölçüm ya da veri giriş/çıkışı için kullanılır.) • Benzetim Araçları (Gerçek ortamdaki davranışları denetim altında yaratabilmek üzere kullanılır.) /114 www.ramazanalperenakil.com
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. /114 www.ramazanalperenakil.com
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. 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. /114 www.ramazanalperenakil.com
/114 Test süreci boyunca gerçekleşen aşamalar şekildeki gibi özetlenmektedir: Geliştirme Düzeltme Tasarım Düzeltme Düzeltme Kod Düzeltme Belge Kod Çözümleme Sonuçları Test Senaryoları Yazılım Hatalar Test Test Gereçleri Hata Ayıklama Hata Test Sonuçları Beklenen Değerler Bakım Değerlendirme Sorun Raporu Hata olasılıkları Ürün Kullanım Güvenilirlik www.ramazanalperenakil.com Şekil © RAMAZAN ALPEREN AKIL
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. /114 TEST YÖNTEMLERİ www.ramazanalperenakil.com
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 testi, tasarım tabanlı ya da kod tabanlı olabilir. /114 Saydam kutu testi www.ramazanalperenakil.com
İşlevselliğin ne ölçüde karşılandığı tasarım tabanlı testler yardımıyla sınanırken isterlerin doğru karşılanıp karşılanmadığı, mantık hatalarının ve istenmeyen davranışların oluşup oluşmadığının testi kod tabanlı testte sınanır. Önemli kod blokları ayrı programlar içinde denenir. Güvenirliğinden emin olunduktan sonra ana koda eklenir. /114 www.ramazanalperenakil.com
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. /114 KARA KUTU TESTİ www.ramazanalperenakil.com
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. 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. /114 www.ramazanalperenakil.com
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 laboratuvar koşullarında denenmesi), gerçek ortamda denenmesi (bir uçak üzerinde havada denenmesi) başka olur. /114 www.ramazanalperenakil.com
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 /114 ÖZEL SİSTEM TESTLERİ www.ramazanalperenakil.com
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 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. /114 GÖMÜLÜ SİSTEMLER www.ramazanalperenakil.com
Örneğin, bir veri tabanı 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. Burada da bir hata görülmemesi üzerine müşteri ile anlaşılarak isterdi 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. /114 www.ramazanalperenakil.com
Bu tür sistemlerinde ne zaman gerçek zamanlı tepki 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 ya da gerçek sistem üzerinde, laboratuvarda, olabildiğince gerçek koşullar altında donanımla birlikte test edilir. 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. 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. /114 GERÇEK ZAMANLI SİSTEMLER www.ramazanalperenakil.com
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. Benzer bir şekilde envanter kontrol sistemine yeni yüklenen hatalı bir yazılım birimi üzerinde işlem yapılan ürün ya da nesnenin farklı sayıda gözükmesine, dolayısıyla hesaplarda açığa yol açabilir. /114 BÜYÜK VERİ TABANI 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. /114 GÜVENLİK SİSTEMLERİ: www.ramazanalperenakil.com
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. /114 GENİŞ PAKET YAZILIMLAR www.ramazanalperenakil.com
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 /114 OTOMATİK TEST ARAÇLARI: www.ramazanalperenakil.com
/114 DURAGAN ÇÖZÜMLEYİCİLER AKILLIDERLEYİCİLER BENZETİM ORTAMLARI ÇEVRE BENZETİCİLERİ SERGİLEME YAZILIMLARI GİRDİ DOSYALARI TEST YAZILIMLARI SİMGESEL TESTLER www.ramazanalperenakil.com
Buraya kadar açıkladığımız yöntemlerde yazılım testlerinin 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. Bilgisayar tabanlı sistemler genellikle birden fazla yazılım ve donanım ögesinden meydana gelir. /114 TEST STRATEJİLERİ www.ramazanalperenakil.com
Sistem İsterleri Çözümlemesi Sistem Geçerleme Testi /114 Test stratejilerinden en önemlilerinden biri büyük sistemler için uygulanan bir geliştirme modeli olan “V MODELİ” dir Sistem Yeterlilik Testi Sistem Tasarımı Yazılım İsterleri Çözümlemesi Yazılım ve Donanım Tümleştirme Yazılım Tasarımı Yazılım Ögesi Yeterlilik Testi Yazılım Gerçekleştirimi Birim Tümleştirme Birim Testi Şekil © RAMAZAN ALPEREN AKIL
/114 SENARYOLARIN İNCELENMESİ İLK TEST KOŞULU TANIMLAMALARI SİSTEM TESTİ ve UYGULAMA GÖZDEN GEÇİRMELER KULLANILABİLİRLİK TESTİ GÜVENLİK TESTİ TEST KOŞULLARI OLUŞTURULMASI SINIR DEĞER TESTİ RASTGELE TESTLER GÖZDEN GEÇİRME DENETİM SAYDAM KUTU TESTİ AKIŞ YOLU TESTİ V modelini W- modeline dönüştüren Şekil-8..4 teki ara etkinlikler ve test aşamaları ortaya konulmuştur. Şekil © RAMAZAN ALPEREN AKIL DURAĞAN İNCELEME KOD İNCELEMESİ
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. 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. /114 Birim Testi www.ramazanalperenakil.com
Test edilebilecek yazılım birimi ya bir yürütülebilir programdır ya da 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 veya bir kütüphane kabul edilirse, bir pasif birimin testi şu şekilde yapılır: /114 Birim Testi Yöntemleri www.ramazanalperenakil.com
Bir test programı geliştirilerek test edilecek birimi kullanması sağlanırTest programının ana yordamı içinden birimin tüm ara yüzlerini denemek üzere çağrılar yapılır Birime gönderilen ve alınan değerler ya ekrana ya da bir dosyaya yazdırılır Test edilecek birim başka birimleri kullanıyorsa bu birimlerde test programı içine dahil edilmelidir /114 www.ramazanalperenakil.com
Birim içindeki verileri durum değişkenlerini incelemek için ya klasik yöntem olan ekrana yazdırma kullanılır. • 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 edilecek 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 /114 www.ramazanalperenakil.com
Birim testi yapılırken aşağıdakilere dikkat edilmelidir: Birimin Ara yü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 /114 BİRİM TESTİNİN YAPILIŞI www.ramazanalperenakil.com
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ığı • Hatanın kotarılmasının uygun bir şekilde yapılması • Hata iletisinin hatanın meydana geldiği yeri tam olarak belirli etmesi. /114 www.ramazanalperenakil.com
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. Çü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ğil de bir bütün içinde, tasarımda belirtildiği şekilde kendi üzerine düşen görevleri yerine getirip getirmedikleri türleştirme testi ile kontrol edilir. Bu testin yapılma nedenlerini şöyle özetleyebiliriz: /114 TÜMLEŞTİRME TESTİ www.ramazanalperenakil.com
Bir birim Çalışması bir başka birimin çalışmaması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. Birimler arasındaki ara yü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şanabilir2 tane tümleştirme çeşidi vardır /114 www.ramazanalperenakil.com
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. Bu işlemler sırasında, türleş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. /114 1- Yukarıdan Aşağıya Tümleştirme www.ramazanalperenakil.com
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, diğer alt düzey birimler de kümeler halinde test edilir. 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. /114 2-Aşağıdan Yukarıya Tümleştirme www.ramazanalperenakil.com
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. /114 YETERLİLİK TESTİ www.ramazanalperenakil.com
Doğrulama, bir yazılım ürününün belirli işlevleri doğru olarak gerçekleştirdiğinden emin olmak için yapılanların tümüne verilen addır. Yazılım geliştirme süreci izlenirken belirlenen isterler arasında uyumsuzluk varsa, üst düzey isterden alt düzey isterin türetilmesi sırasında bir hata yapılmışsa, sonuçta gerçekleşmesi yapılan üründen farklı olabilir. /114 Doğrulama www.ramazanalperenakil.com
Doğrulama testi yazılım isterleri çözümlemesi evresinde ortaya konan isterlerin, Gerçekleştirmesi tamamlanmış yazılım tarafından tam olarak karşılanıp karşılanmadığın sınamak ve yazılımın bu isterilere uygun olarak geliştirildiğini kanıtlamak için yapılır. Daha da kısa olarak doğrulama, tanımlanmış olan ürünün doğru bir şekilde üretilip üretilmediğinin sınanması olarak tarif edilebilir. /114 www.ramazanalperenakil.com