Yazılım yaşam döngüsünde testin önemi ve bir test otomasyonunun gerçekleştirilmesi
The importance of testing in software development life cycle and the implementation of a test automation
Yazar: ESRA NALBANT
Danışman: DOÇ. DR. HACI İLHAN
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı / Haberleşme Bilim Dalı
Derece: Yüksek Lisans, 2020
Konu: Mühendislik Bilimleri = Engineering Sciences

Özet:
Yazılım yaşam döngüsünde test büyük bir öneme sahiptir. Yazılım testleri, bir yazılım projesinin kaynak kodu kadar değerlidir. Günümüzde, yazılım kalite beklentisinin artmasının yanı sıra, yetkin personel, zaman ve maliyet kısıtları nedeniyle yazılım testi giderek önem kazanmaktadır. Özellikle kullanıcı arayüzü, yazılımların son kullanıcıyla etkileşimde olan kısım olduğu için yazılım testlerinin daha detaylı ve hızlı yapılması beklenmektedir. Uzun vadede, sürdürülebilir yazılım testleri projenin maliyetini önemli ölçüde düşürür. Yazılım geliştirme maliyetinin çoğu, yazıldıktan sonra yazılımı değiştirmek için yapılan bakımdır. Bunun nedeni testlerin hızlı bir şekilde kırılgan olması ve bakım yapmanın çok pahalı olmasıdır. Sistem uygulanmasındaki en ufak bir değişiklik, test senaryoların çoğunu değiştirmeyi gerektirir. Örneğin, bir butonu yeniden adlandırmak, test bloğunu bozar ve testleri düzeltmek çok zaman alır. Artan kalite ihtiyacına cevap verebilmek için yazılım otomasyon faaliyetlerine başlanmadan önce beklentilerin, hangi yaklaşım ve araçların kullanılacağının belirlenmesi önemlidir. Bu tez çalışmasında herkesin erişim sağlayabildiği örnek web uygulamalar üzerinden test senaryoları çıkarılmıştır. Çıkarılan senaryolara göre manuel olarak fonksiyonel testler gerçekleştirilmiştir. Ayrıca Selenium yazılım aracı kullanılarak oluşturulan test senaryolarına göre test otomasyon çalışması yapılmıştır. Selenium yazılım araçları detaylı olarak anlatılmış, Selenium IDE ve Selenium Web Driver araçları kullanılarak test otomasyon çalışması yapılmış ve arasındaki farklar kıyaslanmıştır. Senaryolar otomatize edilmiş ve her biri kendi ortamında çalıştırılmıştır. Sonrasında ise tüm senaryolar eşzamanlı yürütülebilir hale getirilmiştir. Ayrıca manuel ve otomasyon testi arasındaki farklar kıyaslanmıştır

Abstract:
Testing has a vital importance in software development life cycle. Software tests are as valuable as the source code of a software project. Nowadays, software testing is becoming more and more important due to the increase in software quality expectation as well as qualified personnel, time and cost constraints. Software testing is expected to be more detailed and faster, especially since the user interface is the part of the software that interacts with the end user. In the long run, sustainable software testing significantly reduces the cost of the project. Most of the cost of software development stems from the maintenance of the software after it is written. This is because the tests are fragile and the maintenance is too expensive. The slightest change in system implementation requires changing most of the test scripts. For example, renaming a button breaks the test block, and it takes a lot of time to correct the tests. In order to meet the increasing need for quality, it is important to determine which approaches and tools to use in order to start the software automation activities.
In thesis study, test scenarios have been developed over sample web applications that everyone can access. According to the scenarios, functional tests were performed manually. In addition, test automation was performed according to the test scenarios created by using
Selenium software tool. Selenium software tools are explained in detail and test automation studies are performed by using Selenium IDE and Selenium Web Driver tools. And the differences between are compared. The interoperability of the automated scenarios in groups was ensured. In thesis process, time, human resource, advantage, disadvantage, limitations and usability differences of manual test and automation test processes were compared.