İçeriğe atla

Regresyon testi

Regresyon testi uygulama ortamındaki yapılan tüm değişiklikleri; uygulamaya yeni eklenen özellikler, daha önceki yaşanan hataların düzeltilmesinden sonra, mevcut problemlerin giderildiği ve yeni yapılan güncellemelerin, eklenen özelliklerin yeni bir hata üretip üretmediğini kontrol amaçlı olarak yapılan yazılım test türüdür.

Uygulama ve uygulama ortamlarında gerekli değişiklikler ve sabitlemeler yapıldıktan sonra yeniden yapılan testlere çekilme (regresyon) testi denilir. Böylece, önceki testlerde belirlenen sorunların giderildiğinden ve yeni eklenen özelliklerin sorunsuz çalıştığından ve yeni hatalar oluşmadığından emin olunur.

Yazılım hataları ya da gerilemelerin (performans düşüklüğü),fonksiyonel ve fonksiyonel olmayan geliştirmelerin, sistemin bazı alanlarına yapılan yamaların, yapılandırma değişiklilerinin regresyon testi ile etkileri izlenebilir.

Niçin Regresyon Testi?

Regresyon Testleri çok önemlidir, çünkü günümüzde birçok yazılım yinemeli geliştirim (İterative Development) süreci ile yapılmaktadır. Yinelemeli geliştirim sürecinde; her bir döngüde yeni bazı işlevler (Functionality) eklenerek kısa döngüler kullanılmaktadır. Bu senaryoda; yeni eklenen işlevlerin var olan işlevleri bozmadığından emin olmak için, her bir döngüde Regresyon Testini uygulamak çok anlamlı olacaktır.

Regresyon testi ne zaman yapılır?

Sistem üzerinde yapılan her değişiklik istenmeyen yan etkiler doğurabilir. Her değişiklik ve hata düzeltmesinin ardından regresyon testleri yapılarak, sistemin bütünlüğü test edilir. Regresyon testlerinde sistem için kullanılan altyapı tanımlanmış bir duruma getirildikten sonra testler uygulanır.

Kurumsal dünyada yazılım geliştirmenin her aşamasında bu test uygulama türünü kesinlikle uyguluyor olmak gerekir. Çünkü günümüzde oluşturulan uygulamalar sürekli olarak gelişmektedir güncellenmektedir, müşterinin isteklerine göre değişiklikler yapılmaktadır. Aksi takdirde zaman ve maliyet açısından daha büyük kayıpların açığa çıkabilmesi kaçınılmaz olabilir.

Regresyon testi sadece geliştirmelerin amaca uygunluğunu değil aynı zamanda yazılım kalitesine de büyük katkılar sağlayabilir.

Regresyon testi sırasında kullanılması gereken en temel stratejiler ise;

-Yapılan değişikliklerin yan etkilerinin izlenmesi ve mevcut olan hatalarında  başka hatalar oluşturup-oluşturmadığını kontrol edilmesi

-Mevcut her hata ve değişiklik için ayrı bir regresyon test senaryosu oluşturulmalı.

-Birbirine benzeyen test senaryoları kontrol edilerek gereksiz ya da etkileri daha az olanlar kaldırılmalı ya da test öncelik sıralamaları değiştirilmeli.

-Tasarım ile ilgili olan alanlar da incelenmeli.

-Uygulamanın sistem üzerindeki etkileri izlenmelidir. (bellekler vb.)

Regresyon testi ne zaman ve ne sıklıkla yapılır?

Uygulamanın ne sıklıkla test edileceğini belirlemek zordur, bu yüzden uygulama geliştirme döneminin sonlarına doğru yapılır. Bu sayede, bütün bir projenin ne kadar değişim yaşadığı ve güncellemelerden ne derece etkilendiği daha net bir şekilde belirlenebilir. Uygulama altyapısı tamamen tanımlanmış duruma getirildiğinde regresyon testleri yapılmaya başlanır.

Regresyon testinin sonlandırılması

Regresyon testi sonucunda bulunan hatalar düzeltildikten sonra test hazırlık süreci kontrol edilir. Eğer tüm kriterlerin kabul edilebilir düzeyde olduğu tespit edilirse test sonlandırılır. Testin sonlandırılmasının ardından uygulama, kullanıcı kabul testine açılır. Müşterilerin bulduğu hatalar veya değiştirilmesi istenilen noktalar gözden geçirilerek tekrar test ekibinin kontrolüne sunulur. Bu kontrolden çıkan uygulama ürün aşamasına geçer ve güncellemeler tamamlanana kadar regresyon testlerine devam edilir.

Regresyon testine yardımcı uygulama “ EggPlant “

EggPlant uygulaması OCR (Optical Character Recognition) yani Optik Karakter Tanıma yeteneğine sahip arayüz kontrolü yapabilen bir test uygulaması olduğu için, regresyon testi ihtiyacı olan şirketlere büyük katkılar sağlamaktadır. Örneğin GittiGidiyor şirketi, sahip olduğu siteyi ve mobil uygulamaları sürekli olarak güncellediğinden dolayı, her değişiklik sonrası EggPlant aracılığı ile arayüz testleri yaparak uygulamaların bütünlüğünü korumaktadır.

Regresyon testleri genel olarak fonksiyonel testler veya birim testler olarak kategorize edilebilir. Fonksiyonel testler, çeşitli girişler ile tam bir program çalışır. Birim testler tek tek işlevleri, altprogram veya nesne yöntemleri kullanırlar. Fonksiyonel test araçları ve birim test araçları Hem derleyici paketinin bir parçası olmayan üçüncü taraf ürünleri olma eğilimindedir ve her ikisi de otomatik hale eğilimindedir. Bir fonksiyon testi hatta fare hareketleri ve tıklamaları kontrol etmek için otomatik bir mekanizma içeren bir program girişlerinin bir komut dosyası dizi olabilir. Bir birim test kodu kendisi veya kod test edilen değiştirmeden kod bağlanan bir sürücü tabakası içinde ayrı işlevler kümesi olabilir.

Ayrıca bakınız

  • Characterization test
  • Quality control
  • Smoke testing
  • Test-driven development

Kaynakça

İlgili Araştırma Makaleleri

Regresyon analizi, iki ya da daha çok nicel değişken arasındaki ilişkiyi ölçmek için kullanılan analiz metodudur. Eğer tek bir değişken kullanılarak analiz yapılıyorsa buna tek değişkenli regresyon, birden çok değişken kullanılıyorsa çok değişkenli regresyon analizi olarak isimlendirilir. Regresyon analizi ile değişkenler arasındaki ilişkinin varlığı, eğer ilişki var ise bunun gücü hakkında bilgi edinilebilir. Regresyon terimi için öz Türkçe olarak bağlanım sözcüğü kullanılması teklif edilmiş ise de Türk ekonometriciler arasında bu kullanım yaygın değildir.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

İstatistiksel terimler, kavramlar ve konular listesi matematik biliminin çok önemli bir alt-bölümü olan istatistik biliminde içeriğinde bulunan konuların çok ayrıntılı olarak sınıflandırılması ile ortaya çıkarılmıştır. Milletlerarası İstatistik Enstitüsü bir enternasyonal bilim kurumu olarak istatistik bilimi konu ve terimlerini bir araya toplayıp 28 bilim dilinde karşılıklı olarak yayınlamıştır. Bu uğraşın sonucunun milletlerarası bilim camiasının büyük başarılarından biri olduğu kabul edilmektedir. Ortaya çıkartılan, istatistik bilimi içinde kullanılan ve bu bilime ait özel kavramların ve terimlerin listesi, tam kapsamlı olma hedeflidir ve böylelikle istatistik bilimi için bir Türkçe yol haritası yapılmış olmaktadır.

Yazılım gerilemesi, belli bir olaydan sonra daha önceden çalışan bir özelliğin çalışmaması hatasıdır. Yazılım performans gerilemesi yazılımın hâlâ doğru olarak çalışması ama performasının azalması veya hafıza kullanımının önceki duruma göre artması durumudur.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

TOSCA Testsuite otomatize regresyon ve fonksiyonel yazılım testlerinde kullanılan bir araçtır. Test otomasyonunun yanında TOSCA entegre testyönetimi, grafik kullanci arayüzü (GUI) ve uygulama programlama arabirimini (API) içermektedir. TOSCA Testsuite Viyana’daki Avusturyalı yazılım kuruluşu TRICENTIS Technology & Consulting GmbH tarafından geliştirilmektedir. 2011 yılında TOSCA “Gartner Inc´s Magic Quadrant for Integrated Software Quality Suites“ da “Vizioner” olarak ödüllendirildi.

PID oransal-integral-türevsel denetleyici kontrol döngüsü yöntemi, endüstriyel kontrol sistemlerinde yaygın olarak kullanılan bir geri besleme denetleyicisi yöntemidir. Bir PID denetleyici sürekli olarak bir hata değerini, yani amaçlanan sistem durumu ile mevcut sistem durumu arasındaki farkı hesaplar. Denetleyici süreç kontrol girdisini ayarlayarak hatayı en aza indirmeye çalışır.

<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.

iOS 7 2013 mobil işletim sistemi

iOS 7 Apple Inc. tarafından iOS 6'in ardılı olarak tasarlanan mobil işletim sisteminin 7. versiyonudur. 10 Haziran'da gerçekleşen 2013 Worldwide Developers Conference'da duyurulmuş ve 2013 sonbaharında piyasaya sürüleceği açıklanmıştır. 10 Haziran 2013'te iOS 7 Beta 1 duyuruldu ve WWDC açılış konuşmasının ardından iOS Geliştirici Programı kayıtlı geliştiriciler için yayınlandı. Versiyon iPhone 4 ve iPod Touch 'de desteklendi. 24 Haziran 2013 tarihinde geliştiriciler için OS 7 Beta 2 serbest bırakıldı ve iPad 2 ve iPad Mini için destek eklenildi.10 Eylül 2013 tarihinde, iPhone olayında iOS 7 sürümünün kamuya iPhone, iPod Touch ve iPad için, 18 Eylül 2013 tarihinde yayımlanacağı duyuruldu. iOS 7 Golden Master olaydan kısa bir süre sonra serbest bırakıldı.Sürümün resmi tanıtımı ise 18 Eylül 2013'te gerçekleşti. 10 Mart 2014 tarihinde 2013'te iOS 7-in piyasaya sürüldüğünden bu yana ilk günceleme olan halka iOS 7.1 yayınlandı. 2014 yılında Apple'ın WWDC Konferansı'nda, şirketin CEO'su Tim Cook, iOS 7-in tüm iOS cihazların üzerinde % 89 yüklü olduğunu açıkladı. Apple ayrıca İos 7-in logosunu da yeniledi, yeni logo artık ince ve kırmızı-mavi renklerde tasarlanmıştır.iOS 7 sürümü 17 Eylül 2014 tarihinde iOS 8 ile evezlendi.iPhone 4 için destek 2014 yılında iOS 8-in cihazda bulunamayacağına göre kesildi. iOS 7 versiyonuna ise desteğin 2017 yılında durdurulması bekleniyor.

<span class="mw-page-title-main">Yazılım yaşam döngüsü</span>

Yazılım yaşam döngüsü, bilgisayar yazılımlarının ilk geliştirme aşamalarından başlayarak; yayındaki mevcut sürümün hatalarının giderilmesi, iyileştirme odaklı yeni ara sürümlerin yayınlarak yazılımın güncellenmesi de dâhil olmak üzere nihai (kararlı) sürüme ulaşana dek geçen geliştirme ve olgunlaştırma aşamalarının tamamını ifade etmek için kullanılan terimdir.

<span class="mw-page-title-main">Yazılım testi</span>

Yazılım testi, test altında hizmetlerin veya ürünlerin kalitesi hakkında paydaşlara bilgi sağlamak için yürütülen bir araştırmadır. Yazılım testi aynı zamanda, yazılım uygulamalarının risklerini anlamak için yazılımı bağımsız ve nesnel olarak incelemektir. Test teknikleri yazılım böceklerini bulma niyetiyle uygulama veya bir programı çalıştırma süreçlerini kapsar.

V-Model, sistem geliştirme sürecinde karmaşıklığı basitleştirmek amacıyla tasarlanmış bir kavramsal modelden, ayrıntılı ve özenli yaşam döngüsü modellerine ve proje yönetimi araçlarına kadar uzanan bir dizi modele uygulanan bir terimdir. İngiltere ve dünya genelindeki test topluluklarında, V-Model'in yazılım geliştirme sürecinde test edilebilmesi için ISTQB kuruluş müfredatı içinde tanımlanması, açıklayıcı ve değişken bir tanım olarak kabul edilir. V-Model'e ilişkin alternatif makalelerde bu modelin tek bir kabul edilmiş tanımının olmadığı görülür. Bu nedenle, farklı varyasyonlara sahip birçok versiyonu bulunmaktadır.

<span class="mw-page-title-main">V-Model (Yazılım geliştirme)</span>

V-model şelale (waterfall) modelinin gelişmiş hali olarak düşünülebilecek bir yazılım geliştirme süreci sunar. Doğrusal bir yönde ilerlemek yerine, süreç adımları kodlama evresinden sonra yukarıya doğru eğim alır ve tipik V şeklini oluşturur. V-Model geliştirme yaşam çevriminin her bir evresi arasındaki ilişkileri gösterir. Yatay ve dikey açılar zaman veya projenin tamamlanabilirliğini ve soyut seviyeyi gösterir.

Yazılım test etmede, test otomasyonu önceden tahmin edilmiş sonuçlarla gerçek sonuçların karşılaştırılması ve testlerin koşulmasını kontrol etmek için(test edilmiş yazılımdan farklı olan) belirli yazılımın kullanılmasıdır. Test otomasyonu tekrar eden fakat çoktan test etme süreçlerinde yer almış gerekli testlerin otomatikleştirebilir veya manuel olarak koşulmasının zor olacağı testleri de içerebilir. Test otomasyonları sürekli paket dağıtımı veya sürekli test etme için kritik öneme sahiptir.

<span class="mw-page-title-main">Android Jelly Bean</span> Android sürümünün Google tarafından geliştirilen, 2012de tanıtılan 10. sürümü

Android Jelly Bean veya Android 4.1-4.3.1 Jelly Bean, Android sürümünün Google tarafından geliştirilen 10. versiyonudur. Sürümün ilk 4.1 versiyonu 9 Temmuz 2012 yılında tanıtılmıştır.Sürüm Linux kernel 3.0.31 bazında yaratıldı ve ona "Jelly Bean" ismi verildi. İlk kez 27 Haziran 2012 yılında Google I/O konferansında yeni sürüm hakkında ilk bilgiler duyuruldu. İşletim sistemi daha yumuşak ve daha duyarlı olması için tasarlanmış performans iyileştirmeleri, yeni aksiyon düğmeleri ve diğer iç değişiklikleri ile bildirim sistemindeki iyileştirme üzerinde duruldu. Sürümle beraber Asus tarafından üretilen Nexus 7 tableti ve Nexus Q medya oynatıcı meydana çıkardı.

<span class="mw-page-title-main">Android Nougat</span> Android işletim sisteminin yedinci ana sürümü

Android 7.0 - 7.1.2 "Nougat" Android sürümünün Google tarafından geliştirilen 14. versiyonudur. Yeni sürümün daha önceki kod adı Android N oldu. 9 Mart 2016 tarihinde önce mevcut Nexus cihazları için fabrika görüntüleri ile bir geliştirici önizlemesi olarak yeni "Android Beta Programı" ile piyasaya sürüldü. Versiyon API level 24'te oluşturulmuştur. Resmen ilk olarak Google Nexus cihazları için güncelleme almakla, 22 Ağustos 2016 tarihinde serbest bırakıldı. LG V20, Nuga ile piyasaya çıkan ilk akıllı telefon oldu.

Kara kutu testi yazılımı testinde bir uygulamanın işlevselliğini iç yapısını veya işleyişini kontrol etmeden inceleyen bir yöntemdir. Bu test yöntemi hemen hemen her seviye yazılım testinde uygulanabilir. Sadece üst seviye testlerde değil, birim Testlerinde de sıklıkla kullanılır.

iTunes Remote

iTunes Remote iOS cihazları için Apple tarafından geliştirilmiş bir yazılım uygulamasıdır. Özel dijital ses kontrol protokolünü (DACP) kullanarak Wi-Fi bağlantısı olan bir alanda Apple TV'nin veya iTunes kütüphanesinin uzaktan kumandasına olanak tanır. Şu anda iPhone, iPod Touch, iPad ve Apple Watch gibi iOS cihazları için App Store'den ücretsiz olarak indirilebilir.

Bilgisayar programlama ve yazılım geliştirmede hata ayıklama (İngilizce: Debug) bilgisayar programları, yazılımları veya sistemleri içindeki hataları bulma ve çözme sürecidir.

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

DevOps, yazılım geliştirme ve bilgi teknolojileri endüstrisinde bir metodolojidir. Bir dizi uygulama ve araç olarak kullanılan DevOps, sistem geliştirme yaşam döngüsünü iyileştirmek ve kısaltmak için bir araç olarak DevOps çalışmalarını entegre eder ve otomatikleştirir. DevOps kelimesi yazılım geliştirme (Dev) ve bilgi teknolojileri operasyonlarının (Ops) birleşiminden oluşmaktadır. DevOps, çevik yazılım geliştirmeyi tamamlayıcı niteliktedir; DevOps'un birçok yönü çevik çalışma biçiminden gelmektedir.