Davranış odaklı geliştirme yaklaşımıyla bir test otomasyonunun geliştirilmesi ve sürecin değerlendirilmesi
Improving a test automation with behavior driven development approach and evaluation of the process
Yazar: FATİH KÖKTEN
Danışman: DR. ÖĞR. ÜYESİ LEVENT ÇELİK
Afyon Kocatepe Üniversitesi / Fen Bilimleri Enstitüsü / İnternet ve Bilişim Teknolojileri Yönetimi Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Bilim ve Teknoloji = Science and Technology

Özet:
Bu araştırmanın amacı öğrenme yönetim sistemi olan Moodle uygulamasını kullanıcı rolleri açısından fonksiyonel olarak özelliklerinin çalışabilirliğini kontrol edecek test otomasyonunun geliştirilmesidir. Davranış Odaklı Geliştirme yaklaşımıyla manuel test ve otomasyon yazılım testlerini gerçekleştirmektir. Bu süreçte manuel test ve otomasyon test süreçlerini zaman, insan kaynağı, olumlu-olumsuz yönleri, sınırlılıkları ve kullanılabilirlik farklılıklarının karşılaştırılması yapılmıştır.
Bu araştırmada kapsamın, kullanıcı gruplarının belirlenmesinde alan uzmanlarının görüşlerine başvurulmuştur. Bu doğrultuda kullanıcı rollerine ait kullanıcı davranışlarının fonksiyonel analizi yapılmıştır. Sonrasında kullanıcı davranışları Davranış Odaklı Geliştirme yaklaşımına göre kullanıcı hikâyeleri yazılmıştır. Uzman görüşleri alındıktan sonra Moodle uygulamasının manuel yazılım testleri ve yazılım test otomasyonu yapılmıştır. Kullanıcı hikâyeleri Ruby, Cucumber, Gherkin ve Selenium Webdriver yazılım araçları kullanarak otomatize edilmiştir. Optimisazyon aşamasında otomatize edilen senaryoların grup halinde birlikte çalışabilirliği sağlanmıştır. Moodle uygulamasında tanımsız olan class yapılarından dolayı bazı senaryoların test otomasyonu yapılamamıştır. Bu nedenle özellik dosyalarının bir kısmı tekrarlı olarak çalıştırılamamıştır.
Araştırma sonucunda manuel testlerin tamamlanmasının uzun zaman aldığı görülmüştür. Yazılım test otomasyon sürecinde testlerin otomatize edilmesinin uzun sürdüğü fakat çalışma süresinin kısa sürdüğü görülmüştür. Otomatik testlerin çalıştırılma süreleri ve sonuçlanması manuel testlere göre daha kısa zamanda tamamlanmıştır. Bir birlerine bağımlı test senaryolarının otomatik hale gerilememesinden dolayı otomatize edilen testlerin sürekli çalıştırılamadığı görülmüştür. Davranış Odaklı Geliştirme yaklaşımıyla yazılım testlerinin ilgili yazılım geliştirme ekibinden bağımsız yapılması test aktivitelerinde daha fazla zaman harcanmasına neden olduğu görülmüştür.

Abstract:
The purpose of this study is to develop test automation to control the functionality of the Moodle application, a learning management system, in terms of user roles. To conduct manual testing and automation software tests with Behavior Driven Development approach. In this process, time, human resources, positive-negative aspects, manual testing and the limitations of automation test processes and usability differences were compared.
In this study, the opinions of the field experts were used to determine the scope and user groups. In this respect, the functional analysis of the user behaviors of the user roles was made. After that, user stories are written according to the Behavior Driven Development approach. After obtaining expert opinions, manual software tests and software test automation of Moodle application were performed. User stories have been automated using Ruby, Cucumber, Gherkin and Selenium Webdriver software tools. In the optimization phase, grouped automated scenarios are interoperable. Due to the undefined class structures in Moodle application, some scenarios could not be tested. For this reason, some of the feature files cannot be run repeatedly.
As a result of the research, it was observed that the manual tests took a long time to complete. In the software test automation process, it has been observed that the tests have been automated but the working time is short. The duration and results of the automatic tests were completed in a shorter time than the manual tests. It has been observed that the automated tests have not been able to run continuously due to the automatic regression of the dependent test scenarios. With the Behavior Driven Development approach, software tests were performed independently from the related software development team, resulting in more time spent in test activities.