1 / 44

TEST-SINAMA

TEST-SINAMA. Yazılım testleri yazılım kalite güvencesinin en temel bileşenidir. Gerçekleştirilen testler ile hatadan arındırılmış, daha kaliteli ve güvenilir yazılımlar üretilmesi hedeflenir. Testin Amacı ve Kapsamı. Testin amacı hata bulmaktır.

lida
Download Presentation

TEST-SINAMA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEST-SINAMA • Yazılım testleri yazılım kalite güvencesinin en temel bileşenidir. • Gerçekleştirilen testler ile hatadan arındırılmış, daha kaliteli ve güvenilir yazılımlar üretilmesi hedeflenir.

  2. Testin Amacı ve Kapsamı • Testin amacı hata bulmaktır. • Basarılı bir test süreci sadece beklenen senaryoları degil, olagandısı senaryoları da kapsamalıdır. • Test süreci, gereksinimlerin belirlenmesi asamasında baslar.

  3. Test Türleri • Yazılım testleri gerçekleştirilirken test edilecek yazılıma bakış açısına göre üç temel test tekniği vardır. Bunlar kara kutu, saydam kutu ve gri kutu test teknikleridir.

  4. Kara Kutu Testi • Test edilecek olan yazılımın iç işleyişi düşünülmeden gerçekleştirilen testlere "kara kutu" testleri denilir. • Bu yaklaşımda test edilecek olan yazılımın, sonucu bilinen bir davranışını doğrulamak için davranışın gerektirdiği girdi/giriş değerleriyle çalıştırılarak sınanır. • Daha sonra yazılımın bu girdi karşısında elde edilen çıktısı beklenen sonuçla karşılaştırılır. Bu yaklaşımın kara kutu olarak adlandırılmasının nedeni "testçinin testi uygularken yazılımı iç yapısı ile kesinlikle ilgilenmemesidir".

  5. Kara Kutu Testi • Bu nedenle bu testler yazılım geliştiricilerden çok test ekipleri tarafından uygulanır. • Kara kutu testinde bir yazılım parçası test ediliyor ise test mühendisi bu yazılım parçasının girdisini ve buna karşılık sistem çıktısını bilir • Fakat bu çıktıya nasıl ulaşıldığıyla ilgilenmez. • Çünkü kara kutu testlerinin amacı verilen girdiler ile istenilen çıktının elde edilmesidir. • Bu nedenle yazılımın iç işleyişi ile ilgili diğer bilgilerle ilgilenilmez

  6. Kara Kutu Testi

  7. Kara Kutu Testi • Kara kutu test tekniği ile geliştirilen yazılım içerisinde aşağıdaki hata türleri tespit edilmeye çalışılır • Dogru olmayan veya hiç olmayan işlevlerin tespiti • Arayüz hataları • Performans hataları • Veri tabanlarına ulaşma hataları veya veri yapılarındaki hatalar • İlklendirme veya sonlandırma hataları • Sınır değer hataları.

  8. Kara Kutu Testi(Olumlu Yönleri) • Yazılımlarda hataların bulunması için etkin ve hızlı bir tekniktir. • Gereksinimlerdeki tutarsızlıkların ve belirsizliklerin belirlenmesini sağlar. • Testçilerin yazılımın ayrıntılarını bilmelerine gerek yoktur. • Testçiler ve yazılımcılar birbirinden bağımsız olarak çalışabilirler. • Testçiler gereksinimleri doğrulamak ve gereken testleri gerçekleştirmek için yazılıma kullanıcı gözü ile bakarlar • Testleri gerçekleştirecek kişilerin sistem hakkında teknik ayrıntı bilmesine gerek yoktur.

  9. Kara Kutu Testi(Olumsuz Yönleri) • Kara kutu testleri yazılımın belirli parçasını hedeflemez. • Bu nedenle birçok hata tespit edilmeden kalabilir. • Sadece belirli sayıda girdi/giriş değeriyle testler gerçekleştirilir. • Tüm girdileri ile testlerin gerçekleştirilmesi nerede ise sonsuza kadar sürebilir. • Yazılım içerisinde bazı kod parçalarında birden fazla test gerçekleşirilirkenbazı kod parçaları hiç test edilmeden kalabilir.

  10. Kara Kutu Test Stratejisi • Kara kutu testleri rasgele belirlenmiş girdilerle gerçekleştirilmeli, testçiler sadece girdi aralığını belirtmelidirler. • Sınır değerler mutlaka test edilmeli, en yüksek ve en düşük değerlerin beklenen çıktıyı verdiği mutlaka doğrulanmalıdır.

  11. Kara Kutu Test Stratejisi • Sayısal girişlerde sıfir (0) mutlaka girdi olarak sınanmalıdır. • Özellikle gerçek zamanlı sistemlerde stres testi yapılmalıdır. • Programın aşırı yüklenme (en yüksek kapasite) altında nasıl çalıştığı test edilmelidir. • Emniyet kritik, görev kritik gibi yazılımlar için yazılımın hatası durumunda nasıl davrandığı test edilmelidir. • . • Kara kutu testlerinde diğer bir amaç gereksinimlerin doğrulanması olduğundan her bir gereksinim için en az bir test durumu yazılmalı ve bu şekilde gereksinim kapsama gerçekleştirilmelidir.

  12. Saydam Kutu Testi • Saydam kutu testi diğer bir test tekniğidir. • Saydam kutu testleri yazılım iç yapısı bilinerek tasarlanır. • Bu nedenle saydam kutu testlerini gerçekleştirenler genellikle sistemin iç yapısını bilen yazılımcılardır.

  13. Saydam Kutu Testi • Saydam kutu testi ile programın iç yapısındaki birimlerin içindeki hatalar araştırılır. • Kaynak kod saydam kutu testlerinin en önemli girdisi olduğundan koda ulaşım olmadan saydam kutu testleri gerçekleştirilemez.

  14. Saydam Kutu Testi • Saydam kutu testleri veri, kontrol ve bilgi akışlarının, kodlama standartlarının, hata yakalama ve ayıklama yapısının analizlerini içerir. • Saydam kutu test yaklaşımı kullanılarak gerçekleştirilen test türleri bir sonraki sayfada açıklanmaktadır.

  15. Saydam Kutu Testleri • Birim Testler :Saydam kutu testinin en iyi ve en yaygın kullanımı birim testlerdir. Birim testler yazılım geliştiricilerin belirli bir kod parçasının görevini doğru bir şekilde yerine getirip getirmediğini anlamak için gerçekleştirdikleri testlerdir. • Statik ve Dinamik Analizler :Statik analiz kod içerisindeki muhtemel hataları bulmak için gerçekleştirilen kod üzerindeki incelemeleri içerir. Dinamik analizler ise kodun çalıştırılmasını ve çıkan sonucun analiz edilmesini içerir. Bu nedenle saydam kutu testleri kaynak koda ulaşım hakkı gerektirir.

  16. Saydam Kutu Testleri • Deyim Kapsama (StatementCoverage ) Bu tür testte kod çalıştırılarak kod içerisinde yer alan her deyimin en az bir kez çalıştırılması hedeflenir. Böylece herbir deyimin herhangi bir yan etki göstermeden çalıştığı doğrulanır. Kod içerisinde çalıştırılmayan deyim olmağı da doğrulanır. • Dal Kapsama (Brunch Coverage): Hiçbir kod düz bir akışla yazılmaz. Kod içerisinde karar noktaları bulunur noktalardan kod yan dallara ayrılır. Dal kapsama ile program içerisinde yer ala dalların kendilerinden beklenildiği şekilde çalıştığı doğrulanır

  17. Saydam Kutu Testleri • Yol Kapsama (PathCoverage) :Kod içerisindeki tüm yolların test edilmesidir. Bu amaçla herbir yol için en test durumunun oluşturulması ve koşturulması gereklidir. • Saydam kutu test tekniği tüm test teknikleri gibi yazılım içerisindeki hatalar yanlışların bulunmasını hedefler. • Saydam kutu testi ile bu hata ve yanlışlar erken safhada ve en hızlı şekilde bulunur. Böylece entegrasyon ve sistem testleri dalı, gerçekleştirilebilir ve bulunan hata sayısında önemli bir azalma gözlemlenir.

  18. Saydam Kutu Testleri (Olumlu Yönleri) • Kod içerisinde gizli kalmış mantıksal hatalar bulunur. • Saydam kutu testleri ile yazılan kodun optimizasyonuna katkıda bulunulur. • Kod içindeki fazla satırlar ayıklanarak ölü kod parçaları bulunur. • Yazılımın geliştirilmesi için belirlenmiş olan kodlama rehberine uyumluluk, tasarım kararlarına kodlama içerisinde uyulup uyulmadığı saydam kutu testleri olarak görülür. • Saydam kutu testleri ile yazılımcıların kod geliştirme yetenekleri desteklenir ve sağlamlaştırılır.

  19. Saydam Kutu Testleri (Olumsuz Yönleri) • Eğer birim tümleştirme testleri test ekibi tarafından yapılacaksa bu iş için kodun iç yapısını bilmesi gerekir. Bu da maliyeti artırır. • Saydam kutu testleri sadece modül ve birimlerin iç işleyişleri test edilir tümleştirme sonra ortaya çıkabilecek olan hatalar tespit edilemez.

  20. Gri Kutu Testi • Gri kutu testleri ise saydam kutu tekniği ile kara kutu test tekniklerinin birlikte kullanılmasıdır • Kara kutu testleri sistemin içyapısı bilinmeden gereksinimler temel alınarak gerçekleştirilir; saydam kutu testinde ise sistemin içyapısı tam olarak bilinir ve testler bu içyapı üzerinden gerçekleştirilir. • Gri kutu testinde ise gereksinimleri doğrulayacak test durumları kodun içyapısı esas alınarak yazılır. • Böylece gereksinimlerin gerçeklendiği doğrulandığı gibi yazılımın iç yapısı sınanmış olur.

  21. Gri Kutu Testi • Gri kutu testlerinde test ekibi yazılımın iç yapısını bildiğinden, yazılımın tasarımına ve kod yapısına karşı şartlanma olabileceğinden bazı hataları ortaya çıkartabilecek testler yapılmadan kalabilir.

  22. Farklı Bir Bakış Açısı ile Test Türleri Statik Test • Yazılım çalıştırılmadan gerçekleştirilen test türüdür. • Kod gözden geçirilerek incelenir. • Bu testler kodun iç yapısı üzerinde gerçekleştirildiği için saydam kutu testlerinin bir parçasıdır. • Doğrulama geçerleme sürecinin bir faaliyetidir. • Hataların erken safhada yakalanmasını sağlar. • Mauel olarak yazılan kodların okunması ve yazılan kodların yardımcı yazılımlar ile hatalara karşı analiz edilmesi olarak iki farklı şekilde bu testler yapılabilir.

  23. Statik Kod Analizleri • Yazılım çalıştırılmadan yazılım içerisindeki hataları ortaya çıkarmak amacıyla gerçekleştirilen statik kod analizleri statik test tekniklerinden biridir . • Yazılımın koşturulması sırasında fark edilemeyecek veya geç fark edilecek bazı hatalar statik kod analizleri ile bulunabilir. • Statik kod analizleri yazılımın kalitesi, çalışma performansı, işlevselliği, güvenirliliği açılarından önemlidir. • Statik kod analizlerinin temel mantığı kod üzerinde sorgulamalar gerçekleştirmektir.

  24. Statik Kod Analizleri • Örneğin tanımlanan bir yazılım kodu içerisinde tanımlanan k değişkeni ilklendirilmiş mi? İlklendirilmeden kullanılan bir değişken var mı? Değer atanmadan önce okunan bir değişken var mı? k değişkenine atanan değer alabileceği en küçük ve en büyük değer aralığında mı? gibi sorgulamalar statik kod analizleri kapsamında gerçekleştirilir.

  25. Statik kod analizlerinde kullanılan yöntemler • Duyarlı Fonksiyonlar arası Analiz (Context-SensitiveInterproceduralAnalysis) :Bu analiz ile fonksiyon/prosedürler-arası ilişkiler ve veri akışları sorgulamaları gerçekleştirilir. • Veri Akış Analizi (Data FlowAnalysis) • Kodlama Standardı Analizi • İşaretçi Analizi (PointerAnalysis) • Yanlış Yol Budama Analizi (FalsePathPruning): Çok sayıda yolun bulunduğu durumlarda, bazı yollar hiç çalıştırılmadan kalabilir. Yazılım içinde çalışması mümkün olmayan yollar belirlenir. Gereksiz kodlar çıkartılır. Sınırlı bellek alanı olan gömülü sistemler için bu konu önemlidir.

  26. Statik kod analizlerinde kullanılan yöntemler • Fonksiyon Değer Analizi: Yazılımdaki fonksiyonların dönüş değerlerinin analizinin yapıldığı yöntemdir. • STATİK KOD ANALİZ ARAÇLARI • .NET (C#, VB.NET and all .NET compatible languages) • FxCop — Free static analysis for Microsoft .NET programs • Gendarme — • StyleCop Java • Checkstyle — Besidessomestaticcodeanalysis, it can be usedtoshowviolations of a configuredcodingstandard. • FindBugs — An open-sourcestaticbytecodeanalyzerfor Java (based on JakartaBCEL) fromtheUniversity of Maryland. • Hammurapi — (Freefornon-commercialuseonly) versatilecodereviewsolution. • PMD — A staticrulesetbased Java sourcecodeanalyzerthatidentifiespotentialproblems.

  27. Dinamik Testler • Dinamik testler kapsamında sistemin değişen veriler karşısında nasıl tepki verdiği gözlemlenir. • Dinamik testlerin gerçekleştirilmesi için yazılan kod derlenir ve koşturulur. • Yazılımların üzerinde çalıştırılacağı platforma ve yazılımın tipine göre dinamik testler farklılık gösterir.

  28. Dinamik Testler • Bir programın davranısını; beklenendavranısauymadıgı durumları bulma amacı ile, sonsuz bir küme içinden sınırlı sayıda seçilen test vakalarını kullanarak, dinamik yöntemlerle sınama islemidir. • Beklenen : Tanımlanmıs gereksinimlere uyan • Sınırlı : Yeterli sayıda • Seçilmis : Uygun test vakaları • Dinamik : Kod çalıstırılarak

  29. Dinamik Testler • Performans Testleri: • Geliştirilen yazılımın performansını ölçmek veya belirlenen performans hedeflerine ulaşılıp ulaşılmadığını göstermek amacı ile gerçekleştirilen testlerdir. • Bu testler ile uygulamanın aşırı yüklenmeler altında nasıl davrandığı gözlemlenir. Performans testleri genellikle bu testleri otomatik olarak gerçekleştiren test yazılımları tarafından gerçekleştirilir.

  30. Dinamik Testler • Uyumluluk Testleri: Bir yazılımın farklı tarayıcılarda, işletim sistemlerinde veya donanım üstünde beklenen şekilde çalışıp çalışmadığını göstermek üzere gerçekleştirilen testlerdir. • Uyumluluk testleri manuel veya otomatik olarak gerçekleştirilebilir.

  31. Dinamik Testler • Zorlama (stres) Testleri: Yazılımın belirtilen limit değer ve limit değer aşımlarında nasıl davrandığını ve başarısızlığa gittiğini değerlendirmek amacı ile yazılıma yüklenilerek gerçekleştirilen testlerdir. • Bu testler altında sistemin ölümcül hatalara sebebiyet vermeyen sonuçlar vermesi beklenir. Bazen zorlama testleri performans testleri ile aynı süreç içerisinde gerçekleştirilebilir.

  32. Uygunluk Testleri: Yazılımın kendi belirtimlerine uygun geliştirildiğini doğrulamak üzere gerçekleştirilen testlerdir. Geliştirilen yazılımın taşınabilirlik, birlikte çalışabilirlik gibi kendisi ile ilgili gereksinimleri sağladığının gösterilmesi bu testlerin amacıdır.

  33. Dinamik Testler • Duman Testleri: Büyük bir planlama yapmadan hızlı bir şekilde gerçekleştirilen testlerdir. • Yazılımın ince ayrıntılarına bakılmadan genel işlevleri yerine getirip getirmediğine bakılır. • Bu test ile gelecek yazılımın, test edilebilir durumda olup olmadığı anlaşılabilir. Bu amaçla yazılımın temel akışlarından birkaç senaryo seçilip ve koşturulur. • Senaryoların başarı oranına göre yazdın testine başlanabilir ya da yazılım geliştirmesi tamamlanmadığı belirtilerek ret edilebilir.

  34. Dinamik Testler • Sürüm Doğrulama Testleri: Yazılım yeni sürümü çıktığında test için test grubuna teslim edilmesinden hemen önce sürümün test edilebildiğinin doğrulamasıdır. • Bu testten kalan yazılım sürümü test amacı ile testçilere teslim edilmez ve düzeltilmesi için geliştiricilere geri gönderilir. • Sürüm doğrulama testleri bazı organizasyonlarda duman testi veya sürüm kabul testi olarak da isimlendirilir.

  35. Test Süreci • Test planlama • Test tasarımı • Test ortamının ve verilerinin hazırlanması • Testlerin yapılması • Test sonuçlarının raporlanması • Testlerin dogrulanması

  36. (1) Test Planlama • Test aktiviteleri için araç, personel ve yetkinlik planlanır. • Test ortamı gereksinimleri belirlenir ve bu ortamın olusturulması sağlanır, • Aktiviteleri planlanır. • Test planı, proje yönetimi ve kalite güvence tarafından gözden geçirilir.

  37. (2) Test Tasarımı • Seçilen test tekniklerinin uygulanmasına yönelik çalısmalar yapılır. • Testler nasıl yapılacak belirlenir ve tanımlanır. • Prosedürler, • Test senaryoları, • Test verileri.

  38. Test Tasarım Dokümanı: Örnek • 1. Test Tasarım Kimligi: Test Planında belirtilen kimlik • 2. Test Edilecek Alt Fonksiyonlar: Alt fonksiyonları sıralar ve kısaltmaları belirler • 3. Test Edilmeyecek Alt Fonksiyonlar: Alt fonksiyonları sıralar ve neden test edilmeyeceklerini açıklar • 4. Yaklasım: Test planında belirtilen yaklasımın açılımı veya degisik bir yaklasım kullanılacaksa açıklaması. • 5. Geçme/Kalma Kriterleri: Test planında belirtilen kriterlerin açılımı veya degisik kriterler kullanılacaksa açıklaması. • 6. Ortam Gereksinimleri: Asagıdaki testlere özel ortam (donanım, araçlar, veriler, vb.) gereksinimleri • 7. Test Senaryoları:

  39. Test Senaryosu: Örnek • Test No : MO-LG-01 • Senaryo : Geçerli kullanıcı ad ve sifre ile giris yap • Özellik No : 1.1.1 • Önem : Yüksek (Yüksek, Orta, Düsük) • Kategori : Müsteri kabul (Teste kabul, Müsteri kabul, Baglanım, Tümlestirme, ...) • Tahmini Süre : 5 Dakika (Tahmini testi kosturma süresi) • Bagımlılık: Yok (Bu testten evvel kosturulması gereken testleri sırala) • Kurulum : Netscape Web Browser’ını çalıstır(Prosedürden evvel yapılması gerekenler) • Prosedür : 1. http://enstitu.hacettepe.edu.tr/akademik/ web sitesine git • 2. Geçerli kullanıcı ad ve sifreyi gir • 3. “Tamam” dügmesine bas • 4. “HACETTEPE ÜNVERSTES - Lisansüstü Ögrenci sleri Sistemi” ana sayfasının • geldiginidogrula • Temizlik : Çıkıs linkine bas (Ortamı buldugun gibi bırakmak için yapılacaklar)

  40. (3) Test Ortamınınve Test VerilerininHazırlanması • Sistemin test edilecegi ortam ve test verileri, isletme • ortamını yansıtacak sekilde hazırlanır. • Test ortamı: Sunucu, ag, isletim sistemi, diger sistemler ile baglantılar, vb. • Test verileri: Müsteri veritabanları, ek tablolar, vb. • Test verileri, isin gerçek boyutunu yansıtmalıdır.

  41. (4,5) Testlerin Yapılması ve SonuçlarınRaporlanması • Testler tanımlanan test senaryolarına göre gerçeklestirilir. • Sistem testleri gelistirme ekibinden farklı kisiler tarafından yapılır. • Tasarlanan test durumları isletilir ve gözlemlenen hatalar, istenmeyen durumlar kaydedilir. “Test log” • “Test log”lardaki bilgiler, test stratejisi ve diger gözlemler, test raporu olarak belgelendirilir. • Kaç durum isletilebildi, ne kadar zaman harcandı, kaç durumda hata olustu, kodun ne kadarı test edilebildi, vb. • Test raporu kalite güvence ekibine iletilir.

  42. (6) Testlerin Dogrulanması • Kalite güvence ekibi, test aktivitelerinin planlandıgı sekildeyapıldıgını güvence altına alır. • Kalite güvence sorumlusu tüm test kayıtlarını gözden geçirir. • Test kapsamı ve kullanılan teknikler test planı ile uyumlu mu? • Test ortamı ve verileri tanımlandıgısekildeolusturulmus mu? • “Test log”ları düzenli tutulmus mu?

  43. Kurulum • Sınanmış yazılımların kullanıcı sahasına aktarılması ve yazılımın gerçek yaşamda uygulamasının başlatılması için yapılan işlemler kurulum işlemleri olarak tanımlanmaktadır • Donanım kurulumu, • Sistem yazılımları kurulumu, • Veri tabanı kurulumu, • Uygulama yazılımları kurulumu, • Eğitim, • Yerinde destek.

More Related