<!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>Karar Tablosu Destekli Olay Sıra Çizgeleri Temelli Sınama Durum Üretim Aracı</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fevzi Belli</string-name>
          <email>1fevzibelli@iyte.edu.tr</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Linschulte</string-name>
          <email>2m.linschulte@andagon.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tuğkan Tuğlular</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Andagon GmbH</institution>
          ,
          <addr-line>Köln, Almanya</addr-line>
        </aff>
      </contrib-group>
      <fpage>408</fpage>
      <lpage>413</lpage>
      <abstract>
        <p>Özet. Model temelli sınama alanında otomatik sınama durum üretimi önemli konuların başında gelir. Otomatik sınama durum üretimi için formel bir modelleme yöntemi ile üretim için algoritmalar gereklidir. Bu bildirinin ilk yazarının geliştirdiği Olay Sıra Çizgeleri (İng. Event Sequence Graphs) formel modelleme yöntemi ve sınama durum üretim algoritmaları, bu bildirinin diğer yazarları tarafından karar tabloları destekli şekilde genişletilmiştir. Ortaya konan modelleme yöntemi ve algoritmalar kodlanarak bir sınama durum üretim aracı 2008 yılından beri geliştirilmektedir. Anılan araç birçok çalışmada kullanılmış ve bu çalışmaların anlatıldığı yayınlarda bu araçtan söz edilmiştir. Bu bildiride karar tabloları destekli olay sıra çizgeleri temelli sınama durum aracının son durumu tanıtılmış ve anılan araç ile bir örnek çalışma sergilenmiştir. Anahtar Kelimeler: olay sıra çizgeleri, karar tablosu, model-temelli sınama, otomatik sınama durum üretimi, sınama durum üretim aracı.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Model temelli sınamada “sınama altındaki bir sisteme ait bir model kümesinden
otomatik ve sistematik olarak sınama durumları üretilir” [1]. Model temelli sınama
yaklaşımının önemli avantajı modellerin formel modeller olabilmesi ve bu sayede
sınama durumlarını üretecek algoritmaların bu modelleri kullanacak ş ekilde
geliştirilebilmesidir. Sınama durumları; sınama girdisi ve sınama çıktısı olarak
tanımlanır ve “sınama girdilerine karşılık gelen beklenen çıktıları üretirse sistem
sınamayı geçer; aksi takdirde sistem sınamadan kalır” [2]. Geçme/kalma kararını
kahin (İng. oracle) verir. Model temelli sınama yaklaşımında formel modellerin
kullanımı kahin problemini çözmeye yarar.</p>
      <p>Olay Sıra Çizgeleri (İng. Event Sequence Graphs) çizge temelli bir formel
modelleme yöntemidir [3]. Olay Sıra Çizgelerinden sınama durumu üreten değişik
algoritmalar geliştirilmiştir [4,5,6]. Bu bildirinin amacı Olay Sıra Çizgeleri ile modellemeyi
mümkün kılan ve geliştirilen modeli kullanarak sınama durumu üretim algoritmalarını
çalıştırıp sınama durumlarını listeleyen aracı tanıtmaktır. Bunu yaparken çok bilinen
bir bilet otomatı örneği üzerinden ilerleyerek bu araç tanıtılacaktır. Model temelli
sınama yaklaşımının endüstride hak ettiği yeri bulamadığı gözlemi [1] bildiri yazarları
tarafından da paylaşılmakta ve araç yokluğunun nedenlerden biri olduğu düşüncesi ile
bu bildiri hazırlanmıştır.</p>
      <p>2. Bölümde çalışmada kullanılan örnek irdelenmiştir. 3. Bölümden itibaren izlenen
yöntemin çalıştırıldığı araç tanıtılacaktır. Bu aracın sadece Olay Sıra Çizgesi ile
çalışan kısmı 3. Bölümde, Karar Tablosu Destekli Olay Sıra Çizgesi ile çalışan kısmı
4. Bölümde açıklanmıştır. Sonuç bölümünde böyle bir aracın önemi vurgulanmıştır.
2</p>
      <p>Çalışmada Kullanılan Örnek</p>
      <p>Model temelli sınamada kullanılan modellere; sonlu durum makinaları ile UML
durum diyagramları örnek olarak verilebilir. Bu bildiride örnek olarak bir bilet
otomatı kullanılmıştır. Bilet otomatı, hem tam para bekleyen ve tek tip bilet alınabilen
basit bilet otomatı olarak hem de para üstü verebilen ve bilet türünün seçilebildiği
gelişmiş bilet otomatı olarak kurgulanmıştır. Basit bilet otomatı durum diyagramı
Şekil 1-a’da ve gelişmiş bilet otomatı durum diyagramı Şekil 1-b’de verilmiştir.
bilet_tipi
(adet)
beklemede
bilet  seçildi
para
para</p>
      <p>tamam
bilet  basıldı</p>
      <p>para
para  eklendi
iptal
iptal  edildi
tamam  
[tam  para]
bilet  basıldı</p>
      <p>para
para  eklendi
tamam  
[fazla  para]
para  üstü  verildi</p>
      <p>iptal
iptal  edildi
Şekil 1-a. Basit bilet otomatı durum
diyagramı [7]
Şekil 1-b. Gelişmiş bilet otomatı durum
diyagramı [8]</p>
      <p>Basit bilet otomatı şu ş eklinde çalışır: Para eklendikçe toplam parayı gösterir.
Beklenen tutara gelene kadar ya para eklenir ya da vazgeçilir. Beklenen tutara
ulaşıldığında ya bilet basılır ya da vazgeçilir. Vazgeçilmiş ise eklenen para geri
verilir. Gelişmiş bilet otomatı şu şeklinde çalışır: Önce bilet türü ve kaç adet bilet
alınacağı seçilir. Sonra para eklenmeye başlanır. Eklenen para tutara eşit veya
tutardan fazla olana kadar ya para eklenmesi ya da vazgeçilmesi beklenir. Vazgeçilmiş ise
eklenen para geri verilir. Eklenen para tutardan büyük ise önce üstü verilir ve sonra
bilet basılır, eşit ise sadece bilet basılır.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Olay Sıra Çizgeleri ile Modelleme Aracı</title>
      <p>Bir olay sıra çizgesi, basit olarak açıklamak gerekir ise, durum temelli modelleme
yaklaşımından farklı olarak olay temelli modelleme yaklaşımı benimser. Durum
makinaları ve diyagramlarında durumlar arası geçişler söz konusu iken olay sıra
çizgesinde olaylar arası geçişler söz konusudur. Olay Sıra Çizgeleri formel tanımı [3]
içinde detaylı olarak anlatılmıştır ve bu bildiride tekrarlanmayacaktır. Basit bilet
otomatına ilişkin olay sıra çizgesi sözü edilen araç ile çizilmiş ve ekran görüntüsü Şekil
2’de verilmiştir.</p>
      <p>Şekil 2. Basit bilet otomatına ait olay sıra çizgesi
Şekil 2’deki olay sıra çizgesi, daha önce sözü edildiği üzere olayların akışı üzerine
kurgulanmıştır ve geçerli olası olay akışlarını göstermektedir. [4,5,6] içinde verilen
sınama durum üretim algoritmaları ilgili araç içinde kodlanmış ve araçtaki çark
simgesi tıklanıp çalıştırıldığında geçerli olay akış sıralarını (bakınız Şekil 3) içeren
sınama durumlarını üretmektedir. CES (Complete Event Sequence) başlığı altında yer
alan her satır bir sınama durumuna karşılık gelmekte ve her sınama durumu içinde kaç
olay olduğu sınama durumunun başında belirtilmektedir.</p>
      <p>Şekil 3. Basit bilet otomatına ait geçerli olay akış sıralarını içeren sınama durumları</p>
      <p>Karar Tablosu Destekli Olay Sıra Çizgeleri ile Gelişmiş
Modelleme Aracı</p>
      <p>Olay sıra çizgeleri karar tablosu desteği ile genişletilmiştir. Karar Tablosu Destekli
Olay Sıra Çizgelerinin formel tanımı [9] içinde detaylı olarak anlatılmıştır ve bu
bildiride tekrarlanmayacaktır. Gelişmiş bilet otomatına ilişkin olay sıra çizgesi ekran
görüntüsü Şekil 4’te ve gelişmiş bilet otomatına ilişkin karar tablosu destekli olay sıra
çizgesi ekran görüntüsü Şekil 5’te verilmiştir.</p>
      <p>Şekil 4. Gelişmiş bilet otomatına ait olay sıra çizgesi
Şekil 5. Gelişmiş bilet otomatına ait karar tablosu destekli olay sıra çizgesi
Şekil 5, Şekil 4 ile karşılaştırıldığında “bilet ver” olayından sonraki akışa ait
detaylar çift halkalı düğüm içine gömülmüş ve bu düğüm ile ilgili işleyiş bir karar tablosu
olarak ifade edilmiştir. Bu karar tablosunda para üstü var koşulu ile “para üstü ver”
olayı tetiklenirken ve para üstü yok ise “birşey yapma” işletilmektedir. Karar tablosu
desteği ile olay akış çizgesindeki karmaşıklık azaltılmakta ve değişik veri tiplerindeki
değişkenler üzerinde tanımlanan koşullar ile olay akış sıra çizgeleri
genişletilmektedir.</p>
      <p>Araçtaki çark simgesi tıklanıp çalıştırıldığında geçerli olay akış sıralarını içeren
sınama durumlarını üretilmiş ve Şekil 6’da verilmiştir.</p>
      <p>Şekil 6. Gelişmiş bilet otomatına ait geçerli olay akış sıralarını içeren
sınama durumları</p>
      <p>Söz konusu araç aynı zamanda geçersiz olay akış sıralarını içeren sınama
durumlarını da üretmektedir. Geçersiz olay akış sırası ile “modellenen yazılım bu
şekilde çalışmıyor olmalı” gösterilmektedir ve bu sınama durumları modellenen yazılıma
için üretilmiş negatif sınama durumlarıdır. Örneğin, gelişmiş bilet otomatı için [, bilet
tipi seç, para ekle, ] iki uzunluğunda bir negatif sınama durumudur. Negatif sınama
durumları çizge üzerinde düğümler arasında olmayan kenarlar ile üretilmektedir.
Detaylı algoritma ve örnekler [6, 10]’da verilmiştir.</p>
      <p>Söz konusu araç; basit bilet otomatı için 15 negatif sınama durumu ve gelişmiş
bilet otomatı için 48 negatif sınama durumu üretmiştir. Bu araç, 2.70 GHz Intel i7
işlemciye ve 8GB RAM belleğe sahip Windows 7 bilgisayar üzerinde çalıştırılmış ve
şekillerde görülen sürelerde sınama durumları üretilmiştir.
5</p>
    </sec>
    <sec id="sec-3">
      <title>Sonuç</title>
      <p>Bu bildiride, model temelli sınama yaklaşımlarından biri olan olay sıra çizgeleri ile
karar tablosu destekli olay sıra çizgeleri için geliştirilmiş araç tanıtılmış ve işleyişi
çok bilinen bir bilet otomatı örneği üzerinde gösterilmiştir. Bu bildiride tanıtılan</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>I. Schieferdecker</surname>
          </string-name>
          ,
          <article-title>"Model-Based Testing"</article-title>
          ,
          <source>IEEE Software</source>
          , vol.
          <volume>29</volume>
          , no .
          <issue>1</issue>
          , pp.
          <fpage>14</fpage>
          -
          <lpage>18</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli ve M. Beyazıt</surname>
          </string-name>
          ,
          <article-title>"Olay Tabanlı Sınama İçin Mutant Seçimi," 2013 Ulusal Yazılım Mühendisliği Sempozyumu</article-title>
          , İzmir,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <article-title>"Finite state testing and analysis of graphical user interfaces,"</article-title>
          <source>in Proceedings of 12th International Symposium on Software Reliability Engineering</source>
          ,
          <year>2001</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Budnik</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>White</surname>
          </string-name>
          ,
          <article-title>"Event based modelling, analysis and testing of user interactions: Approach and case study,"</article-title>
          <source>Software Testing, Verification and Reliability</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>1</issue>
          ,
          <issue>2006</issue>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          and
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Budnik</surname>
          </string-name>
          ,
          <article-title>"Test minimization for human-computer interaction,"</article-title>
          <source>Applied Intelligence</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>2</issue>
          ,
          <issue>2007</issue>
          , pp.
          <fpage>161</fpage>
          -
          <lpage>174</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Linschulte</surname>
          </string-name>
          ,
          <article-title>"On negative tests of web applications,"</article-title>
          <source>Annals of Mathematics, Computing &amp; Teleinformatics</source>
          , vol.
          <volume>1</volume>
          , no.
          <issue>5</issue>
          ,
          <issue>2008</issue>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>56</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>M.</given-names>
            <surname>Hübner</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Philippow</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Riebisch</surname>
          </string-name>
          ,
          <article-title>"Statistical usage testing based on UML,"</article-title>
          <source>Proceedings of the 7th World Multiconferences on Systemics, Cybernetics</source>
          and Informatics, Orlando, FL, USA, Jul
          <volume>27</volume>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>R. K. Swain</surname>
            ,
            <given-names>P. K.</given-names>
          </string-name>
          <string-name>
            <surname>Behera</surname>
            , and
            <given-names>D. P.</given-names>
          </string-name>
          <string-name>
            <surname>Mohapatra</surname>
          </string-name>
          ,
          <article-title>"Minimal TestCase Generation for Object-Oriented Software with State Charts," arXiv preprint</article-title>
          ,
          <source>arXiv:1208.2265</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>T.</given-names>
            <surname>Tuglular</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Linschulte</surname>
          </string-name>
          ,
          <article-title>"Input Contract Testing of Graphical User Interfaces,"</article-title>
          <source>International Journal of Software Engineering and Knowledge Engineering</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>02</issue>
          ,
          <year>2016</year>
          , pp.
          <fpage>183</fpage>
          -
          <lpage>215</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <article-title>"A holistic view for finite-state modeling and testing of user interactions</article-title>
          .
          <source>" Proceedings of the 1st South-East European Workshop on Formal Methods</source>
          .
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.T.</given-names>
            <surname>Endo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Linschulte</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Simao</surname>
          </string-name>
          ,
          <article-title>"A Holistic Approach to ModelBased Testing of Web Service Compositions,"</article-title>
          <source>Software: Practice and Experience</source>
          , vol.
          <volume>44</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>201</fpage>
          -
          <lpage>23</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Güler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Linschulte</surname>
          </string-name>
          ,
          <article-title>"Does 'Depth' Really Matter? On the Role of Model Refinement for Testing and Reliability"</article-title>
          ,
          <source>Proc. 35th Annual IEEE Computer Software and Applications Conference (COMPSAC)</source>
          , pp.
          <fpage>630</fpage>
          -
          <lpage>639</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>