Model denetleme temelli yazılım testi ve analizi yöntemlerinde uygulanabilirliğin arttırılması
Improving efficiency of application of model based test and analysis techniques
Yazar: MACİT GİRAY GÖKIRMAK
Danışman: PROF. DR. MUHAMMET KÖKSAL
Haliç Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2012
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Bilim ve Teknoloji = Science and Technology

Özet:
Projelerde kaliteli yazılım geliştirmeyi sağlamanın tek etkili yolu yazılan gereksinimlerin ve kodların proje dışı kaynaklar tarafından teste tabi tutulmalarıdır. Ancak, test aşaması yazılım projelerinde geliştirmeden sonra gerek duyulan insan kaynağı nedeni ile yüksek maliyetlere katlanılmayı gerektiren bir aşamadır. Testleri daha az kaynak ile yapmak amacıyla otomatikleştirme ihtiyacı doğmaktadır. Bu alanda umut vaat edici gelişmelerden biri olarak model denetleme araçları ile yapılan analiz ve üretilen test durumlarının uygulanması gibi tekniklerden bahsedebiliriz. Model denetleyiciler tarafından üretilen çıktılar doğrudan test durumu olarak kullanılmaya uygundurlar. Hali hazırda yazılım testleri otomasyonu yapılabilinmekte olsa da bu durum tüm projeler üzerinden bakıldığında oldukça ufak bir kesime hitap etmekte, projelerdeki girdi çeşitliliği nedeniyle tam anlamıyla endüstriyel bir seçenek haline gelememektedir. Model denetleyici temelli testlerin uygulanmasındaki en büyük kısıt kullanımda olan araç gerecin çıktılarının mevcut performansının yeterli olmayışıdır. Performans kısıtlarının bu denli fazla olmasının sebebi ise genellikle projelerde çok fazla test durumu tanımı oluşturulmasıdır. Gereksinimler bu araçlara aktarıldığında, genellikle mükerrer test durumları oluştuğu gibi bazı durumlarda ise tamamen gereksiz test durumları oluşturulmasında söz konusu olmaktadır.Bu tez ile yazılım geliştirme projelerine sağlanacak katkı sayesinde mevcut test durumları oluşturma çalışmalarındaki performans kayıpları ölçülebilir derecede azalarak maliyetlerde büyük düşüşlere imkan sağlanmıştır. Bir diğer husus ise test durumları oluşturma çalışmaları basit ve otomatik olarak yapılabilmekte ancak sonuçları çok verimli olmamaktadır. Aşırı mükerrer test durumlarının varlığı hata toleransını olumsuz etkilemektedir. Bazı teknikler ise büyük kapsamlı test senaryoları içerisinde çok kısa ve yetersiz test durumları oluşturulması gibi sonuçlar doğurmaktadır. Bu ise oldukça verimsiz bir sonuç doğurmaktadır. Bu tezde model denetleyici araçlar ile oluşturulan test senaryolarının daha verimli ve aynı zamanda proje ihtiyaçlarını en iyi şekilde karşılayacak biçimde uygulanışı için farklı tekniklerin birleşimi ele alınacaktır, çalışma sonucu ortaya çıkan maliyet düşüşleri projelerdeki karlılığı daha yüksek oranlara çekecektir.

Abstract:
Software tests being performed by third party resources are the only effective way of providing quality software development projects. However, the test phase of the projects have the highest cost after the development phase. This arises the need to automate, inorder to perform tests with fewer resources. One of the promising developments in this field is model checker based analysis and test case production. Outputs produced by model checkers can directly be used as test cases. Although automation of software testing can be done already but applicable projects through all the projects are quite small percent of the masses. Because of this situation this has not become an industrial option for the masses. The biggest constraint of applicability of model checker based testing is the lack of adequate performance. The reason for this constraint is that tools produce repeated test case definitions oftenly. Software requirements transferred to these tools usually produce too often repeated and useless test case definitions from time to time. Touch of this thesis will provide measurable performance gains and reductions of the project costs with production of optimized test case definitions. On the other hand, test cases can already be produced automatically with other techniques but the results of the work are generally very simple and requirements are not fully covered. The presence of repeated test case definitions extremely affects fault tolerance negatively for the test performed. Some techniques generate large-scale scenarios but very low coverage and very inadequate results for test cases. This result rises a rather inefficiency. In this thesis, results will prove that with the combination of different techniques used to improve model checker based analysis and testing applicability to cover the needs of the projects and increase efficiency. Results from this operation will cause cost reductions and improvement in profitability.