<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Yazılım güvenlik testi: bir sistematik literatür haritalaması</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Burcu Yalçıner</string-name>
          <email>burcuyalciner@cs.hacettepe.edu.tr</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sena Sönmez Çiçek</string-name>
          <email>sena.sonmez@tubitak.gov.tr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Esra Şahin</string-name>
          <email>esrasahin@aselsan.com.tr</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vahid Garousi</string-name>
          <email>vahid.garousi@hacettepe.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>: Maral Yazılım Mühendisliği Danışmanlık ve Ar-Ge Corp.</institution>
          ,
          <addr-line>Calgary, Kanada</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>: TÜBİTAK MAM Enerji Enstitüsü</institution>
          ,
          <addr-line>Gebze, Kocaeli</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>: Ulaşım</institution>
          ,
          <addr-line>Güvenlik, Enerji ve Otomasyon Sistemleri, ASELSAN A.Ş., Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>: Yazılım Mühendisliği Araştırma Grubu (HUSE) Bilgisayar Mühendisliği Bölümü, Hacettepe Üniversitesi</institution>
          ,
          <addr-line>Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>141</fpage>
      <lpage>151</lpage>
      <abstract>
        <p>Security testing of software systems such as mobile applications, web applications, computer applications and server applications has become an essential activity. As the area of software security testing (SST) has matured and the number of studies has increased, systematically categorizing the current state-of-the-art is important. In this paper, we classify the established knowledge in this area through a systematic mapping study. In the scope of the study, three sets of mapping questions are posed, research keywords are selected, inclusion and exclusion criteria is defined, a classification schema is devel-</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>oped and refined systematically, and the selected primary studies are mapped
according to this schema. Our final pool of papers consists of 67 papers. As our
work is in progress, 65%-%70 of our final pool of papers has been analyzed.
Some of the results of analysis are the following: (1) In the software security
testing area, the types of contribution presented in primary studies vary and the
top two leading facets are methods/techniques presented in 35 papers and tool
presented in 13 papers; and (2) By investigating types of research methods used
in papers, we observed that validation research used by 25 papers is the most
preferred method among researchers.
1</p>
    </sec>
    <sec id="sec-2">
      <title>Giriş</title>
      <p>Yazılım testleri maliyeti yüksek olan ve oldukça çaba gerektiren işlemlerdir. 2010
yılında yapılan bir çalışmaya göre [1], test işlemleri için (yazılım, donanım ve
servislerin testi dâhil) dünya çapındaki maliyetler 79 milyon Euro değerinde ve bu değerin
2014 yılında 100 milyon Euro’ya ulaşması beklenmekteydi. Diğer yandan Robert
Siciliano [2] tarafından 2011 yılında verilen bilgilere göre, 150’den fazla kuruluşun
katıldığı çalışmada tekbir uygulamaya ait güvenlik vakalarını iyileştirmek için
harcanan para ortalama 300.000 dolar değerindedir. Tek bir uygulama için olan bu maliyet
binlerce uygulama düşünüldüğünde çok yüksek rakamlara ulaşacaktır. Bu bilgilerde
açıkça göstermektedir ki güvenlik açıklıklarının neden olduğu maliyetler, açıklıkları
önceden tespit edip düzeltmek için gerekli maliyetlerden kat kat fazladır. Durum bu
şekilde olunca yazılım güvenlik testleri; yazılım güvenlik tehditlerini ve açıklıklarını
ortaya çıkarmak, oluşabilecek güvenlik açıklıklarını önceden tahmin edebilmek ve
güvenlik açıklıkları nedeniyle ortaya çıkan zararları azaltmak için oldukça önemli
hale gelmiştir.</p>
      <p>
        Yazılım güvenliğinin testine verilen önem arttıkça bu alanda yapılmış çok farklı
konulara odaklanan çalışmalar da artmış ve bunun sonucunda genel çerçeveyi görme
ihtiyacı doğurmuştur. Bu nedenle, bu çalışmada yazılım güvenlik testleri konusunda
literatürde yer alan çalışmalar sistematik haritalama yöntemi ile analiz edilmiş ve
sınıflandırılmıştır. Yazılım mühendisliğinde popüler olan sistematik haritalama
yöntemi, geçmişte birçok makalede kullanmıştır, Örneğin, Vahid ve arkadaşları
tarafından yazılım test kod mühendisliği[3], UML tabanlı yazılım performans
mühendisliği[4], web uygulamaları testi[5] ve grafiksel kullanıcı ara yüzü testi gibi konularda
sistematik haritalama çalışması[
        <xref ref-type="bibr" rid="ref3">6</xref>
        ] yapılmıştır.
      </p>
      <p>Çalışmanın bir parçası olarak 4 kategoriden oluşan haritalama soruları ve yazılım
güvenlik testleri ile ilgili 190 birincil çalışmadan oluşan bir makale havuzu
oluşturulmuştur. Çalışma kapsamına giren birincil çalışmaları ayırt edebilmek için dâhil etme
(seçme)–hariç tutma kriterleri belirlenmiştir. Dâhil etme kriterlerini sağlayan 67
çalışma seçilmiştir. Sistematik haritalama çalışmasının devam ediyor olması nedeniyle
şu an için analiz edilen 45 tane birincil çalışma, bu sistematik haritalama çalışmasına
konu olmuştur.
Çalışma şu şekilde düzenlenmiştir. Bölüm 2’de yazılım güvenlik testleri alanı ile
ilgili bilgiler ve ilgili çalışmalar, Bölüm 3’de araştırmanın hedef ve yöntemi, Bölüm 4
ve 5’te araştırma sonuçları ve ileriye yönelik çalışmalar anlatılmıştır.
2</p>
      <p>Alan özeti ve ilgili çalışmalar
İncelenen çalışmalar içerisinde bu alanda yapılmış sistematik literatür tarama (SLT)
ve sistematik literatür haritalama (SLH) çalışması bulunamaması sebebiyle bu
çalışmanın literatürdeki boşluğu doldurması beklenmektedir. Çalışmanın bundan sonraki
kısımlarının daha iyi şekilde anlaşılması için Bölüm 2.1’de güvenlik testleri ile ilgili
genel bir bilgi verilmiş, Bölüm 2.2 de ise yazılım güvenlik testleri ile ilgili yapılmış
ikincil çalışmalar listelenmiştir.
2.1</p>
      <sec id="sec-2-1">
        <title>Yazılım güvenlik testleri</title>
        <p>
          Yazılım güvenliği, herhangi bir saldırı anında sistemin doğru çalışabilmesidir[
          <xref ref-type="bibr" rid="ref4">7</xref>
          ].
Yazılım güvenlik testleri ise yazılım ürünlerinin ya da yazılım sistemlerinin güvenli
olup olmadığını kontrol etmek, herhangi bir saldırı anında verilerin ve sistem
fonksiyonelliğinin korunduğundan emin olmak, olası açıklıkları önceden görmek ve önlem
almak için yapılan bir çeşit yazılım testidir. Yapılan güvenlik testlerinin; “gizlilik”,
“bütünlük”, “doğrulama”, “yetkilendirme”, “erişebilirlik” ve “inkâr edememezlik”
olmak üzere 6 temel güvenlik konseptini kapsaması beklenir[
          <xref ref-type="bibr" rid="ref5">8</xref>
          ].
        </p>
        <p>
          Yazılım testleri yapılırken belli başlı aktivitelerin sırayla gerçekleştirilmesi
beklenir. Bu aktiviteler, Garousi ve arkadaşları[3] tarafından yapılan çalışmada aşağıdaki
gibi sınıflandırılmıştır.
 Test senaryosu tasarımı: Mühendislik hedeflerini, insan tecrübelerine dayalı
kriterleri karşılayan test gereksinimlerini ya da test senaryoları oluşturulur.
 Test kodlama ve dokümanlama: Manuel ya da otomatik test kodları yazılır.
 Testi çalıştırma: Test senaryoları test edilen yazılımın (Software Under Test
(SUT)) üzerinde yürütülür ve sonuçları kayıt edilir.
 Test değerlendirme: Test sonuçları değerlendirilir.
 Test sonuçlarını raporlama: Test kararları ve hataları geliştiricilere raporlanır.
Test edilecek yazılımın ürününe göre test teknikleri ve bu tekniklerin uygulanma
metotları farklılık gösterebilir. Yapılan güvenlik testleri sistemin hem güvenlik
fonksiyonelliğini hem de güvenlik açıklık seviyesini görmeyi amaçlar. Bu nedenle
yazılımlara mümkün olan her yoldan sızmayı amaçlayan sızma testleri yapılır[
          <xref ref-type="bibr" rid="ref6">9</xref>
          ]. Sızma
testleri, yazılımın iç işlevlerini, kodlarını test etmek için yapılan beyaz kutu testleri;
yazılımın bütününe yönelik işlevlerin doğru yapıldığını emin olmak için yapılan kara
kutu testleri ve kara kutu testlerine benzerlik gösteren gri kutu testlerinden oluşur. Bu
testler sonucunda görülen açıklıklar raporlanır ve düzeltilmeye çalışılır.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Yazılım güvenlik testlerindeki ikincil çalışmalar</title>
        <p>
          Yazılım güvenlik testi alanında yapılan 20 adet ikincil çalışma [
          <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref14 ref15 ref16 ref17 ref18 ref19 ref20 ref21 ref22 ref23 ref24 ref25 ref26 ref7 ref8 ref9">10-29</xref>
          ] raporlanmıştır.
İkincil çalışmalar, sistematik literatür tarama (SLT), sistematik literatür haritalama
(SLH), genel bir görüş veren normal makale ve literatür taraması (İngilizcede: survey)
olmak üzere dört kategoride incelenmiş ve Tablo 1’deki gibi kategorize edilmiştir.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Araştırmanın hedef ve yöntemi</title>
      <p>
        Bu çalışmada, [
        <xref ref-type="bibr" rid="ref28">31</xref>
        ]’de anlatılan Amaç-Soru-Ölçüt (Goal-Question-Metric, GQM)
yöntemi kullanılarak yazılım güvenlik testi alanı ile alakalı bütün bilimsel çalışmalar
toplanarak, bu çalışmaların sistematik haritalandırılması yapılmıştır. Toplanan bütün
birincil çalışmalar, çalışmalarda kullanılan araştırma tiplerine, literatüre ne tür bir
katkı sağladıklarına, yazılım test alanı ile ilgili özelliklerine ve yazılım güvenlik testi
alanı ile ilgili özelliklerine göre incelenerek her birinin gerekli verileri elde edilip
sınıflandırılmıştır.
      </p>
      <p>Araştırmanın tipi keşifçi (exploratory) olduğu için amacımız yazılım güvenlik testi
alanındaki mevcut durumun ne olduğunu öğrenmek, gelecek çalışmalar için bu
alandaki yerleşik bilgi ile ilgili verileri toplayıp sınıflandırmaktır.</p>
      <p>
        Bu bölümde yazılım güvenlik testi alanında sistematik haritalandırma oluşturmak
için yaptığımız araştırma yöntemi hakkında genel bir bilgi verilecektir. Daha sonra,
çalışmamızda kullandığımız Amaç-Soru-Ölçüt (GQM) yönteminden bahsedilecek ve
son olarak da GQM yöntemi kullanılarak oluşturulan haritalama sorularından (HS,
“Mapping Questions”) bahsedilecektir.
Yapmış olduğumuz sistematik haritalandırma çalışmasında Petersen ve arkadaşları
tarafından önerilen metotlar ve süreçler takip edilmiştir [
        <xref ref-type="bibr" rid="ref27">30</xref>
        ]. Kullandığımız protokol
Şekil 1’de gösterilmektedir. Bu protokol, bilimsel çalışmaların seçilmesi,
haritalandırmanın kurulması ve sistematik harita olmak üzere üç bölümden oluşmaktadır.
      </p>
      <p>Sistematik harita çalışmamıza Google Scholar arama motorunu kullanarak
yaptığımız makale seçimi adımı ile başladık. Sadece Google Scholar arama motorunu
kullanıp, IEEE Xplore, ACM Digital Library, Microsoft Academic Search, CiteSeerX,
Science Direct vb. arama motorlarını kullanmamamızın sebebi, Google Scholar
kullanarak diğer arama motorları ile bulabileceğimiz makalelere erişmemizin mümkün
olması ve makale havuzumuzu oluştururken aynı makaleleri tekrar havuza dahil
etmemektir. Daha sonra kişisel web siteleri, bulduğumuz makalelerin başvurduğu
referans makaleler ve özel konferanslardan vb. elde edilen makaleler de araştırılarak
makale seçimi adımına devam ettik. İlk makale havuzumuzdaki makalelere
uyguladığımız dâhil etme ve hariç tutma kriterlerinin sonucu elde ettiğimiz makalelerden oluşan
son makale havuzumuzu oluşturduktan sonra, haritanın kurulması adımında
sistematik olarak sınıflandırma şemamızı/haritamızı geliştirdik. Daha sonraki adımlarda, son
makale havuzumuzdaki makaleleri, üç haritalama sorusu grubunu kullanarak
geliştirdiğimiz Şekil 1’de görülen sistematik sınıflandırma haritamıza yerleştirdik.</p>
      <p>Şekil. 1 SLH çalışmasında kullanılan protokol
3.2</p>
      <sec id="sec-3-1">
        <title>Hedef ve haritalamanın soruları</title>
        <p>Sistematik haritalandırma çalışmamızın amacı doğrultusunda bu alanda yapılan dört
adet bilimsel çalışmadan faydalanarak hedeflerimizi belirledik. Bu çalışmamızın
hedefleri; yazılım güvenlik testi alanındaki mevcut durumu anlamak amacıyla bu alanda
yapılan bütün bilimsel çalışmaları toplamak, incelemek, sistematik olarak
haritalandırmak, gelecekte bu alanda yapılabilecek araştırmaları belirlemek ve istatistiksel
sonuçları göstermektir. Daha sonra bu hedeflerimiz doğrultusunda üç adet haritalama
sorusu (HS) kümesi oluşturduk. Haritalama sorularımız aşağıdaki gibidir:
 HS 1: Bilimsel çalışmaların literatüre sağladığı katkılar nelerdir?
 HS 2: Bilimsel çalışmalarda kullanılan araştırma metotlarının tipleri nelerdir?
 HS 3: Bilimsel çalışmalarda gösterilen test aktivitelerinin türleri nelerdir?
 HS 4: Bilimsel çalışmalarda hangi test senaryosu (test case) üretme metotları
kullanılmıştır?
 HS 5: Bilimsel çalışmalarda kapsanan güvenlik açıklığı türleri nelerdir?
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Kaynakların (birincil çalışmaların) arama ve seçimi</title>
        <p>Yazılım güvenlik testi alanında yapılan birincil çalışmaları arayıp bulmak amacıyla
anahtar sözcük tabanlı bir araştırma yapılmıştır. Araştırma için kullanılan anahtar
sözcükler; yazılım güvenlik testi, yazılım güvenlik değerlendirmesi, yazılım saldırıya
açıklık testi, yazılım saldırıya açıklık değerlendirmesi, yazılım sızma testi, yazılım
sızma değerlendirmesi sözcükleridir. Daha sonra aşağıdaki arama yapısı
oluşturulmuştur.</p>
        <p>“Software” OR “Program” AND
“Security” OR “Penetration” OR “Vulnerability” AND</p>
        <p>“Testing” OR “Assessment” (SOR)</p>
        <p>Bu anahtar sözcükler ve arama yapısı, Google Scholar arama motorunda
kullanılarak ilk makale havuzumuzu oluşturan 190 tane birincil çalışma bulunmuştur. Bu
makaleler sistematik olarak oluşturulan haritalama şemasına göre haritalandırılmıştır. İlk
makale havuzundaki makalelerden hangilerini çalışmamıza dâhil edip hangilerini
dâhil etmeyeceğimizi belirlemek amacıyla dâhil etme kriterleri(çalışma kapsamımızla
alakalı olan makaleler ve çalışmanın doğruluğunu içeren makaleler) ve hariç tutma
kriterleri (İngilizce’ den farklı dille yazılmış makaleler ve bütününe ulaşamadığımız
makaleler) belirlenmiştir. Dâhil etme ve hariç tutma kriterleri aramızda
oluşturduğumuz bir oylama sistemi ile uygulanarak son makale havuzumuz 67 makale olarak elde
edilmiştir. Herkes tarafından ulaşılabilen, çevrim içi bir depolama alanı olarak
oluşturduğumuz haritalama şemamızın linki: https://goo.gl/LJX5QY
3.4</p>
      </sec>
      <sec id="sec-3-3">
        <title>Sistematik haritanın gelişimi ve veri-çıkarma planı</title>
        <p>Bu bölümde sistematik haritanın gelişimi ve veri çıkarma planı ile ilgili bilgi
verilecek, sistematik haritanın yinelemeli gelişimi anlatılacak, geliştirilen ve çalışmamızda
kullanılan sistematik haritamızın son hali Bölüm 5.2’de gösterilecektir.</p>
        <p>Seçilen makaleleri sistematik olarak sınıflandırmak amacıyla bir harita geliştirildi
ve belirlenen haritalama soruları ve bu sorulardan elde edilen metrikler sistematik
haritayı oluşturmak için kullanıldı.</p>
        <p>Yazılım güvenlik testi alanındaki bütün birincil çalışmaları kaydetmek amacıyla
paylaşımlı bir tablolama programı (çevrim içi Google Docs hesaplama programı)
kullanıldı. Her bir birincil çalışma için aşağıdaki bilgiler bu tabloya kaydedildi..</p>
        <p>Sistematik harita oluşturulduktan sonra, yüksek kaliteli bir sistematik haritalama
çalışması yapmak için yinelemeli bir yöntem izlendi. İlk olarak veri çıkarmak için
makalelerin başlıkları, özeti, giriş ve sonuç bölümleri incelendi. Daha sonra bu
bölümlerin yetersiz görüldüğü makaleler baştan sona detaylı bir şekilde okunarak
gerekli veriler çıkarıldı. Sınıflandırmamızdan emin olmadığımız zaman da diğer
araştırmacılara danışıldı ve bu şekilde gerekli veriler elde edildi. Son olarak da, her bir
araştırmacı tarafından çıkarılan veriler diğer araştırmacılardan biri tarafından gözden
geçirildi.</p>
        <p>Tablo 2’de sistematik haritanın son hali gösterilmektedir. Metriklerle ilgili tabloya
makaleleri incelerken farklı olarak elde ettiğimiz metrikleri yerleştirmek amacı ile
Diğer adlı bir alan eklenmiştir. Bu Diğer alanındaki veriler, yeni bir metrik kategorisi
yaratmak için kullanılmaktadır.</p>
        <p>Tablo 2. Sistematik Haritanın Son Hali
Haritalama
Soruları
Özellikler</p>
        <p>Metrikler
HS 2
HS 3
HS 4
HS 5
4
4.1</p>
        <p>Makale türleri-Katkı Yönü
Makale türleri-Araştırma
Yönü
Test Aktivitelerinin türleri
Test senaryosu üretme
metotları
Güvenlik açıklıklarının
türleri</p>
        <p>Test metotları/teknikleri, test aracı, test modeli, metrik, süreç, vaka
çalışması, diğer.
Çözüm önerisi, Zayıf deneysel çalışma, Güçlü deneysel çalışma, Deneyim
çalışması, Felsefi çalışma, Düşünce çalışması, Diğer.</p>
        <p>Kritere Dayalı Test Senaryosu Tasarımı, Kişi Bilgisine Dayalı Test
Senaryosu Tasarımı, Test Otomasyonu, Test Çalıştırma, Test
Değerlendirme, Test Planlama ve Yönetimi, Diğer.</p>
        <p>Gereksinime Dayalı Test (Requirement-Based Testing including
ModelBased Testing), Mutasyon Testi (Mutation test), Rastgele Test (Fuzzing),
Diğer.</p>
        <p>Bellek Taşması (Buffer overflow - BOF), SQL Enjeksiyon (SQLI), Siteler
Arası İstek Sahteciliği (Cross-site Request Forgery), Dizi Formatlama
Hatası (Format String Bug-FSB), Siteler Arası Betik Yazma (Cross-site</p>
        <p>Scripting - XSS), Diğer</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Sonuçlar</title>
      <sec id="sec-4-1">
        <title>HS 1 - Katkı türü yönünden akademik çalışmalar</title>
        <p>
          Bu soru ile bilgi çıkarımı yapılmış 45 birincil çalışma, katkı türlerine göre
sınıflandırılmıştır. Bu katkı türleri belirlenirken Petersen ve arkadaşlarının önerdiği katkı
türlerinden yararlanılmıştır. Katkılarına göre bir çalışma birden fazla sınıflandırmaya dâhil
olabilmektedir. Örneğin [
          <xref ref-type="bibr" rid="ref8">11</xref>
          ]’de yazılım güvenlik açıklıklarını bulmak ve modellemek
için hem metot/teknik hem de araç katkısı yapılmıştır. Şekil 2’de katkı türlerine göre
akademik çalışma sayıları gösterilmektedir. İncelenen çalışmaların 36’sı ( %80)
metot / teknik katkısı, 13’ü (%28) araç katkısı, 9’u model, 2’si metrik ve 1’i süreç
katkısı yapmıştır. 4 tane vaka çalışması yapılmıştır. Bunun yanı sıra [33]’da mutasyon
operatörleri, [
          <xref ref-type="bibr" rid="ref20">23</xref>
          ]’de ise dizi biçimlendirme hatalarına (Format String Bugs) yönelik
bir eklenti sunulmuştur.
        </p>
        <p>Makale sayısı</p>
        <p>
          Referanslar
Makale
TürüKatkı Yönleri
Metot /Teknik
Araç
Model
Vaka Çalışması
Metrik
Diğer
Süreç
Çözüm Önerisi (solution
proposal)
Güçlü Deneysel Çalışma
(evaluation research)
Felsefi Çalışma
Diğer
[
          <xref ref-type="bibr" rid="ref23 ref3">2,6,26,35,41</xref>
          ]
Yazılım sistemlerinde güvenlik hataları bulmak amacıyla birçok farklı test aktivitesi
yapılmıştır. Şekil 4’de birincil çalışmalarda yapılmış test aktiviteleri gösterilmektedir.
En çok yapılan test aktivitesi 31 çalışmada yer alan test çalıştırmadır (Test execution).
Bunu 24 çalışma ile test otomasyonu takip etmektedir. 22 çalışmada belirli kriterlere
bağlı test senaryosu üretimi, 18 çalışmada ise test değerlendirilmesi (oracle)
yapılmıştır. 7 çalışmada kişi bilgisine dayalı test senaryosu üretimi yapılmıştır. Sadece 2
çalışmada test planlama ve yönetimi gerçekleşmiştir. Bunların yanı sıra 4 çalışmada bu
kategorilerin dışında farklı test aktiviteleri gerçekleştirilmiştir.
        </p>
        <p>Test Aktiviteleri
Test Çalıştırma
Test Otomasyonu
Kritere Dayalı Test
Senaryosu Tasarımı
Test Değerlendirme
(oracle)
Kişi Bilgisine Dayalı Test 7
Senaryosu Tasarımı
Diğer 4
Test Planlama ve Yönetimi 2</p>
        <p>Makale
sayısı
31
24
22
18</p>
        <p>
          Referanslar
[
          <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref14 ref15 ref17 ref18 ref20 ref21 ref23 ref3 ref5 ref6 ref7">3,4,5,6,8,9,10,13,14-18,20,21,23,24,26,32,33,34,35,41,43,44,47,48,50,52-54</xref>
          ]
[
          <xref ref-type="bibr" rid="ref10 ref12 ref14 ref17 ref18 ref21 ref23 ref3 ref5 ref7 ref8">2,3,5,6,8,10,11,13,15,17,20,21,24,26,32-,35,38,39,41,43,47,52</xref>
          ]
[
          <xref ref-type="bibr" rid="ref11 ref12 ref13 ref17 ref21 ref23 ref24 ref27 ref28 ref3 ref4 ref5 ref7">5,6,7,8,10,14,15,16,20,24,26,27,30,31,32,33,38,41,43,50,52,53</xref>
          ]
[
          <xref ref-type="bibr" rid="ref12 ref14 ref17 ref18 ref21 ref23 ref25 ref26 ref3">5,6,15,17,20,21,24,26,28,29,32,34,35,36,41,46,48,50</xref>
          ]
[
          <xref ref-type="bibr" rid="ref14 ref15 ref20 ref6">9,17,18,23,40,47,48</xref>
          ]
[
          <xref ref-type="bibr" rid="ref16 ref18">5,19,21,38</xref>
          ]
[
          <xref ref-type="bibr" rid="ref10 ref24">13,27</xref>
          ]
Şekil. 4. Yapılan Test Aktiviteleri
4.4
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>HS 4 – Test senaryosu (test-case) üretme metodu türleri</title>
        <p>
          Bu soru ile test senaryosu üretme metotları belirlenmeye çalışılmıştır. İncelen 45
çalışmada öne çıkan 3 test senaryosu metodu bulunmuştur; Gereksinime Dayalı (Model
Bazlı Testi de içerir), Mutasyon Testi ve Rastgele Test. Bunların yanı sıra 15
çalışmada farklı test senaryosu üretme metotlarıyla karşılaşılmıştır. Şekil 5’de test senaryosu
üretme metotları ve ilgili sayılar verilmiştir. En çok öne çıkan metot 17 çalışma (%37)
ile modele veya gereksinime dayalı test senaryosu üretme yöntemidir. 15 çalışmada
ise belirlenen kategoriler dışında test senaryosu üretme yöntemleri kullanılmıştır.
Örneğin [
          <xref ref-type="bibr" rid="ref4">7</xref>
          ]’de Tehdit Ağacı Dolaşma (Threat Tree Traversal) algoritmasından
yararlanan bir teknik ile genel yazılım hatalarına yönelik test senaryoları üretilmiştir.
Test Senaryosu Üretme Metodu
Gereksinime-Modele Dayalı Test
Diğer
Mutasyon Testi
Rastgele Test (Fuzzing)
        </p>
        <p>Makale sayısı
17
15
12
9</p>
        <p>
          Referanslar
[
          <xref ref-type="bibr" rid="ref10 ref11 ref16 ref21 ref23 ref24 ref25 ref27 ref28 ref6">5,9,13,14,19,24,26,27,28,30,31,38,40,41,43,47,52</xref>
          ]
[
          <xref ref-type="bibr" rid="ref14 ref17 ref20 ref4 ref6 ref8">3,4,5,7,9,11,17,20,23,34,35,39,44,48,54</xref>
          ]
[
          <xref ref-type="bibr" rid="ref12 ref18 ref3 ref5">5,6,8,15,21,32,33,41,44,46,50,53</xref>
          ]
[
          <xref ref-type="bibr" rid="ref13 ref15 ref3 ref6 ref7">2,5,6,9,10,16,18,36,52</xref>
          ]
Şekil. 5. Test senaryosu üretme metodu
4.5
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>HS 5 – Kapsanan güvenlik açıklığı türleri</title>
        <p>Yazılım sistemlerinin farklılığına da bağlı olarak, güvenlik açıklıklarına neden birçok
farklı türde hatalar bulunmaktadır. Bu haritalama sorusu ile literatürde üzerine
çalışılmış açıklık türlerinin neler olduğu ve hangi açıklık üzerinde ne kadar çalışıldığı
belirlenmeye çalışılmıştır. İncelen 45 çalışma arasında 13 çalışmada SQL Enjeksiyon
açıklığı, 11 çalışmada Bellek Taşması (BOF) açıklığı, 8 çalışmada Siteler Arası Betik
Yazma (Cross-site Scripting) açıklığı, 2 çalışmada dizi formatlama hatası (Format
String Bug), 1 çalışmada ise Siteler Arası İstek Sahteciliği (Cross-site Request
Forgery) açıklığı incelenmiştir. 21 çalışma ise “Diğer” kategorisine dahil edilmiştir. Bu
çalışmaların bazılarında herhangi bir açıklık türü belirtilmemiştir ve güvenlik
açıklıkları genel olarak ele alınmıştır. Bazılarında ise belirlenen türlere dâhil olmayan farklı
açıklıklar ele alınmıştır. Bunlardan bazıları şöyledir; SOAP Enjeksiyonu [38], kimlik
denetleme (authentication) açıklıkları [4], genel bulut uygulamaları açıklıkları [52].
Çalışmamızın ilerleyen aşamalarında “Diğer” kategorisinde bulunan çalışmalar
incelenip belirli bir sayının üzerinde karşılaşılan açıklıklar yeni bir tür olarak haritaya
eklenecektir.</p>
        <p>
          Güvenlik Açıklığı Türleri
Diğer
SQL Enjeksiyon (SQLI) 13
Bellek Taşması (Buffer overflow - BOF) 11
Siteler Arası Betik Yazma (Cross-site Scripting - XSS) 8
Dizi Formatlama Hatası (Format String Bug-FSB) 2
Siteler Arası İstek Sahteciliği (Cross-site Request Forgery) 1
Makale sayısı Referanslar
21 [
          <xref ref-type="bibr" rid="ref11 ref15 ref16 ref25 ref27 ref3 ref4 ref7">2,3,4,6,7,10,14,18,19,28,30,34,36,38,41,4
3,44,46,50,52,54</xref>
          ]
[
          <xref ref-type="bibr" rid="ref14 ref17 ref18 ref21 ref28 ref4 ref5 ref8">3,7,8,11,17,20,21,24,31,32,35,39,46</xref>
          ]
[
          <xref ref-type="bibr" rid="ref10 ref12 ref13 ref4">2,3,5,7,13,15,16,33,40,47,48</xref>
          ]
[
          <xref ref-type="bibr" rid="ref18 ref21 ref4 ref5">3,7,8,21,24,41,46,53</xref>
          ]
[
          <xref ref-type="bibr" rid="ref20">23,40</xref>
          ]
[3]
Şekil. 6. Güvenlik açıklık türleri
4.6
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>Geçerliliğe tehditler ve onları ortadan kaldırmak</title>
        <p>Bu bölümde, standart bir kontrol listesi temel alınarak [4], çalışmamıza sınır teşkil
edebilecek olası geçerliliğe tehditlerden ve bunları nasıl azaltıp, ortadan kaldırmaya
çalıştığımızdan bahsedilmektedir. İçsel geçerlilik (internal validity), yapısal geçerlilik
(construct validity), sonuç geçerlik (conclusion validity) ve dış geçerlik (external
validity) olmak üzere dört tip geçerliliğe tehdit gözlenmiş ve düzeltilmiştir.</p>
        <p>İçsel geçerlilik: Bir çalışma ve bu çalışmadan çıkarılan verilere dayalı bir nedensel
sonucun garanti edildiğini yansıtan, bilimsel çalışmaların bir özelliğidir. Bu çalışma
kapsamında olabildiğince eksiksiz bir birincil çalışma havuzu oluşturulmaya
çalışılmış, farklı anahtar sözcükler ve bunların birleşimi ile bir araştırma sözcük kümesi
belirlenip ilgili çalışmalar toplanmıştır. Dâhil etme ve hariç tutma kriterleri
belirlenmiştir. Araştırmacıların kişisel değerlendirmelerinin etkilerini minimize etmek
amacıyla çalışmayı yürüten araştırmacılar ile oylama mekanizması kullanılmıştır.</p>
        <p>Yapısal geçerlilik: Çalışmanın nesnelerinin, çalışmanın arkasındaki teoriyi ne
ölçüde temsil ettiğiyle ilgilidir. Bölüm 5’te verilen, bir sınıflandırma şemasına göre
çalışmalardan bilgi çıkarımları yapılmış ve bu şemaya göre adreslenmiştir. Çalışmalar
yazarlar arasında pay edilmiş ve bilgi çıkarımları yapıldıktan sonra farklı yazarlar
tarafından yapılan gözden geçirmeler ile farklılıklar ortadan kaldırılmaya çalışılmıştır.</p>
        <p>Sonuçsal geçerlik: Bir çalışmadan, titiz ve tekrarlanabilir bir prosedür ile doğru
sonuçların elde edilip edilmediği ile ilgilenir. Bölüm 6’da, doğrudan verilerden çıkarılan
grafikler ve grafiklerdeki verilerin haritalama tabloları paylaşılmış ve veriler ve
sonuçlar arasında izlenebilirlik sağlanmıştır. Buna ek olarak, haritama çalışmamızın
verilerine çevrim içi bir depolama alanından erişilebilmektedir.</p>
        <p>Dış geçerlilik: Bir çalışmanın sonuçlarının ne ölçüde genelleştirilebileceği ile
ilgilenir. Bu sistematik haritama çalışmasının sonuçları yazılım mühendisliği alanındaki
yaklaşımlara göre değerlendirilmiştir. Bu nedenle, bu çalışmada sunulan sınıflandırma
haritası, sunulan veriler ve belirtilen sonuçlar sadece verilen kapsamda geçerlidir.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Sonuç ve gelecek çalışmalar</title>
      <p>Yazılım güvenlik testi alanına ilginin giderek artması ve bu kapsamda bu alanda
yapılan çalışmaların sayısının günden güne artması sebebiyle yazılım güvenlik testi
alanında ikincil bir çalışma olarak sistematik literatür haritalama çalışması yapma
ihtiyacı oluşmuştur. Bu kapsamda yaptığımız SLH çalışmamızda, yazılım güvenlik testi
alanında yapılmış olan bilimsel çalışmalardan birkaç tanesini inceleyerek, bu alandaki
mevcut bilgiyi anlamak ve bu bilgiden yola çıkarak haritalama soruları kurup SLH
çalışmamız için gerekli verileri elde etmek üzerine odaklandık. Daha sonra bu
alandaki bütün birincil çalışmalar toplanarak, dâhil etme ve hariç tutma kriterlerinin
uygulanması sonucu elde edilen son makale havuzumuzdaki 45 tane makalenin verilerini
çıkardık. Bu alandaki mevcut bilgiyi çalışmaların literatüre sağladığı katkılar,
kullandıkları araştırma yöntemlerinin türleri, kullandıkları test aktivitelerinin türleri, test
durumu üretme metotları ve güvenlik açıklıklarının yönünden elde ettiğimiz metrikler
sayesinde sınıflandırdık.</p>
      <p>Çalışmamız hala devam etmekte olup, makale havuzumuzdaki tüm makalelerin
verileri çıkarılarak SLH çalışmamızı en kısa sürede bitirmeyi planlamaktayız. Daha
sonra bu alanda bir sistematik literatür değerlendirme (Systematic Literature Review,
SLR) çalışması yapılabilir. Ayrıca endüstride mevcut olan ticari yazılım güvenlik test
araçlarını, yazılım güvenlik testi alanında yapılan bilimsel çalışmalarda önerilen
metotlar/teknikler ile birleştirmek amacıyla bu alanda daha fazla çalışma yapılması
gerekmektedir.</p>
    </sec>
    <sec id="sec-6">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>Pierre</given-names>
            <surname>Audoin</surname>
          </string-name>
          <article-title>Consultants (PAC), "Software testing spends to hit Euro 100bn by</article-title>
          <year>2014</year>
          ,
          <article-title>" https://www.pac-online.com/software-testing-spends-hit-</article-title>
          <string-name>
            <surname>eur100bn-</surname>
          </string-name>
          2014
          <string-name>
            <surname>-</surname>
          </string-name>
          press-release,
          <year>2014</year>
          . Robert Siciliano, ”
          <source>Software Security Incidents Cost an Average $300</source>
          ,000” http://www.infosecisland.com/blogview/13075-
          <string-name>
            <surname>Software-Security-</surname>
          </string-name>
          Incidents-
          <article-title>Cost-an-Average300000</article-title>
          .html ,2011
          <string-name>
            <given-names>V.</given-names>
            <surname>Garousi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Amannejad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Can</surname>
          </string-name>
          , “Software
          <string-name>
            <surname>Test-Code Engineering</surname>
          </string-name>
          : A Systematic Mapping”,
          <source>Information and Software Technology</source>
          , Volume
          <volume>58</volume>
          ,
          <year>2015</year>
          , Sayfa 123-147
          <string-name>
            <given-names>V.</given-names>
            <surname>Garousi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Shahnewaz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Krishnamurthy</surname>
          </string-name>
          ,
          <article-title>"UML-Driven Software Performance Engineering: A Systematic Mapping and Trend Analysis," in Progressions and Innovations in Model-Driven Software Engineering</article-title>
          ,
          <string-name>
            <given-names>V. G.</given-names>
            <surname>Díaz</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. M. C. Lovelle</surname>
            ,
            <given-names>B. C. P.</given-names>
          </string-name>
          <string-name>
            <surname>García-Bustelo</surname>
            , and
            <given-names>O. S.</given-names>
          </string-name>
          <string-name>
            <surname>Martínez</surname>
          </string-name>
          , Eds., ed:
          <source>IGI Global</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>V.</given-names>
            <surname>Garousi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mesbah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Betin-Can</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mirshokraie</surname>
          </string-name>
          ,
          <article-title>"A Systematic Mapping Study of Web Application Testing,"</article-title>
          <source>Elsevier Journal of Information and Software Technology</source>
          , vol.
          <volume>55</volume>
          , pp.
          <fpage>1374</fpage>
          -
          <lpage>1396</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          6.
          <string-name>
            <given-names>I.</given-names>
            <surname>Banerjee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Garousi</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Memon</surname>
          </string-name>
          ,
          <article-title>"Graphical User Interface (GUI) Testing: Systematic Mapping and Repository,"</article-title>
          <source>Information and Software Technology</source>
          , vol.
          <volume>55</volume>
          , pp.
          <fpage>1679</fpage>
          -
          <lpage>1694</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          7.
          <string-name>
            <given-names>G.</given-names>
            <surname>McGraw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Potter</surname>
          </string-name>
          . “
          <article-title>Software Security Testing”</article-title>
          ,
          <source>Journal IEEE Security and Privacy</source>
          , Volume
          <volume>2</volume>
          ,
          <string-name>
            <surname>Isssue</surname>
            <given-names>5</given-names>
          </string-name>
          ,
          <year>2004</year>
          , Sayfa 81-85
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>8. Security testing tutorial, http://www.tutorialspoint.com/software_testing_dictionary/security_testing.htm</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          9.
          <string-name>
            <given-names>OWASP</given-names>
            <surname>Testing</surname>
          </string-name>
          <article-title>Guide Versiyon 4</article-title>
          . https://www.owasp.org/index.php/Testing_Guide_Introduction#Testing_Techniques_Explained
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          10.
          <string-name>
            <surname>J. Wilander</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Kamkar</surname>
          </string-name>
          .
          <article-title>"A Comparison of Publicly Available Tools for Static Intrusion Prevention"</article-title>
          ,
          <source>7th Nordic Workshop on Secure IT Systems</source>
          ,
          <year>2002</year>
          , Karlstad,
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          11.
          <string-name>
            <surname>H. H. Thompson</surname>
          </string-name>
          ,
          <article-title>"Why Security Testing Is Hard"</article-title>
          ,
          <source>The IEEE Computer Society</source>
          , 2003
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Takanen</surname>
          </string-name>
          , P. Vuorija ̈rvi, M. Laakso,
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>Ro ̈ning, "Agents of responsibility in software vulnerability processes"</article-title>
          ,
          <source>Ethics and Information Technology</source>
          <volume>6</volume>
          :
          <fpage>93</fpage>
          -
          <lpage>110</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          13.
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Mead</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Mcgraw</surname>
          </string-name>
          .
          <article-title>"A Portal for Software Security"</article-title>
          ,
          <source>The IEEE Computer Society</source>
          , 2005
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          14.
          <string-name>
            <surname>C. C. Michael</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Radosevich</surname>
          </string-name>
          ,
          <article-title>"Black Box Security Testing Tools"</article-title>
          , Cigital, Inc. ID:
          <volume>261</volume>
          , Version: 9,
          <fpage>2005</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          15.
          <string-name>
            <surname>M. R. Stytz</surname>
            ,
            <given-names>S. B.</given-names>
          </string-name>
          <string-name>
            <surname>Banks</surname>
          </string-name>
          ,
          <article-title>"Dynamic Software Security Testing"</article-title>
          ,
          <source>The IEEE Computer Society</source>
          , 2006
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          16.
          <string-name>
            <surname>J. Epstein</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Matsumoto</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Mcgraw</surname>
          </string-name>
          ,
          <article-title>"Software Security and SOA: Danger, Will Robinson!"</article-title>
          ,
          <source>The IEEE Computer Society</source>
          , 2006
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          17.
          <string-name>
            <surname>K. M. Goertzel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Winograd</surname>
            ,
            <given-names>H. L.</given-names>
          </string-name>
          <string-name>
            <surname>McKinley</surname>
            ,
            <given-names>L. J.</given-names>
          </string-name>
          <string-name>
            <surname>Oh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Colon</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>McGibbon</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Fedchak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Vienneau</surname>
          </string-name>
          ,
          <article-title>"Software Security Assurance", State-of-the-</article-title>
          <source>Art Report (SOAR)</source>
          ,
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          18.
          <string-name>
            <surname>J. Zadeh</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>DeVolder, "Software Development and Related Security Issues"</article-title>
          , IEEE,
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          19.
          <string-name>
            <surname>V. M. Igure</surname>
            ,
            <given-names>R. D.</given-names>
          </string-name>
          <string-name>
            <surname>Wıllıams</surname>
          </string-name>
          ,
          <article-title>"Taxonomıes Of Attacks And Vulnerabılıtıes In Computer Systems"</article-title>
          , IEEE Communıcatıons Surveys,
          <year>2008</year>
          , Volume
          <volume>10</volume>
          , No. 1
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          20. P. Godefroid,
          <string-name>
            <given-names>P.</given-names>
            <surname>Halleux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Nori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Rajamani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schulte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tillmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Levin</surname>
          </string-name>
          ,
          <article-title>"Automating Software Testing Using Program Analysis”</article-title>
          ,
          <source>The IEEE Computer Society</source>
          , 2008
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          21.
          <string-name>
            <given-names>I. A.</given-names>
            <surname>Tøndel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Jaatun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Jensen</surname>
          </string-name>
          ,
          <article-title>"Learning from Software Security Testing"</article-title>
          ,
          <source>IEEE International Conference on Software Testing Verification and Validation Workshop (ICSTW'08)</source>
          ,
          <year>2008</year>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          22. H.
          <string-name>
            <surname>Shahriar</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Zulkernine</surname>
          </string-name>
          ,
          <article-title>"Automatic Testing of Program Security Vulnerabilities"</article-title>
          ,
          <source>33rd Annual IEEE International Computer Software and Applications Conference</source>
          ,
          <year>2009</year>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          23. G.
          <article-title>Tian-yang, S. Yin-sheng, F. You-yuan, "</article-title>
          <source>Research on Software Security Testing"</source>
          ,
          <source>World Academy of Science, Engineering and Technology</source>
          , 2010
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          24.
          <string-name>
            <surname>J. Bau</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Bursztein</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Gupta</surname>
          </string-name>
          , J. Mitchell,
          <article-title>"State of the Art: Automated Black-Box Web Application Vulnerability Testing"</article-title>
          ,
          <source>IEEE Symposium on Security and Privacy</source>
          , 2010
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          25.
          <string-name>
            <surname>M. Felderer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Agreiter</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Zech</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Breu</surname>
          </string-name>
          ,
          <article-title>"A Classification for Model-Based Security Testing"</article-title>
          ,
          <source>The Third International Conference on Advances in System Testing and Validation</source>
          , 2011
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          26. B.
          <string-name>
            <surname>Liu</surname>
            , L. Shi†,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Cai</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
          </string-name>
          ,
          <article-title>"Software Vulnerability Discovery Techniques: A Survey"</article-title>
          ,
          <source>Fourth International Conference on Multimedia Information Networking and Security</source>
          ,2012
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          27.
          <article-title>"Study: A Penetration Testing Model"</article-title>
          , Federal Office for Information Security
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          28.
          <string-name>
            <given-names>P.</given-names>
            <surname>Godefroid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Levin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Molnar</surname>
          </string-name>
          ,
          <article-title>"SAGE: Whitebox Fuzzing for Security Testing"</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          29.
          <string-name>
            <surname>J. Kates</surname>
          </string-name>
          ,
          <article-title>"Securıty Testıng Is Not All The Same: A Reference Taxonomy, Data Securıty Management"</article-title>
          , Data Securıty Management
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          30.
          <string-name>
            <given-names>K.</given-names>
            <surname>Petersen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Feldt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mujtaba</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mattsson</surname>
          </string-name>
          ,
          <article-title>"Systematic mapping studies in software engineering," presented at the 12th International Conference on Evaluation and Assessment in Software Engineering (EASE</article-title>
          ),
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          31.
          <string-name>
            <surname>Van</surname>
            <given-names>Solingen</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Basili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Caldiera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            , &amp;
            <surname>Rombach</surname>
          </string-name>
          ,
          <string-name>
            <surname>H. D.</surname>
          </string-name>
          (
          <year>2002</year>
          ).
          <article-title>Goal question metric (gqm) approach</article-title>
          . Encyclopedia of software engineering.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>