<!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>Makine Öğrenmesi ile Mobil Uygulama Sınıflandırılması ve Otomatik Keşif Testi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mehmet Çağrı Çalpur</string-name>
          <email>mehmetcagri@sabanciuniv.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sevgi Arca</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tansu Çağla Çalpur ve Cemal Yılmaz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Keşif Testi, Model Bazlı Test</institution>
          ,
          <addr-line>Yazılım İş Alanı Analizi, Uygulama Metin Madenciliği, Otomatik Test, İş Alanı Sınıflandırması</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Mühendislik ve Doğa Bilimleri Fakültesi Sabancı Üniversitesi</institution>
          ,
          <addr-line>İstanbul</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>357</fpage>
      <lpage>367</lpage>
      <abstract>
        <p>Özet. Uygulamaların kullanıldığı iş alanı hakkındaki bilgi yazılım testlerinin gerçekleştirilebilmesi için önemli bir kaynaktır. Bu nedenle bir yazılımın iş alanının tanımlanabilmesi ve bu iş alanında yerine getirilen görevlerin bulunması, otomasyonun yapılabilmesinin temelindedir. Bu bilgiler ile testlerde kullanılacak veri seti de otomatik olarak oluşturulabilir ve tüm test sürecinin otomatize edilmesi mümkün olabilir. Bu çalışmada uygulamaların benzerlik derecelerinin bulunması için makine öğrenmesi tekniklerini kullanıyoruz. Aynı iş alanı için geliştirilen uygulamaların benzerlik oranının yüksek olması gerektiği varsayımından yola çıkarak, aynı iş alanındaki uygulamaların, o alanın içindeki benzer görevleri yerine getirmekle yükümlü olacağı öngörülebilir. Bu hipotez doğrultusunda, belli bir iş alanı için genelleştirilmiş bir sonlu durum makinesi modeli oluşturulabilmesi durumunda; aynı iş alanındaki uygulamaların yerine getirdiği görevlerin bu modeldeki belirli durum ve geçiş kümeleri ile eşleştirilmesi mümkün olabilir. Bir iş alanı ile ilgili uygulamaların genel modelindeki durum ve geçiş kümeleri eşleşen uygulamaların test edilmesi için, daha önceden bu kümeye eşleştirilmiş uygulamalar için hazırlanmış olan test betiklerinin ve veri setinin yeniden kullanılması mümkün olabilecektir. Bu çalışmada iki yeni kavramı öne sürüyoruz. Model Giydirme ve Otomatik Keşif Testi. Model giydirme kavramı bir uygulamayı, o uygulamanın iş alanı için üretilmiş bir modele eşleştirme işlemini tanımlamaktadır. Otomatik Keşif Testi ise bir iş alanının bilgisi ve bu alandaki uygulamarın test edilmesi ile elde edilen tecrübenin uygulama testinde yeniden kullanılmasıdır.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Mobile Application Classification using Machine
Learning and Automated Exploratory Testing
Mehmet Cagri Calpur, Sevgi Arca, Tansu Cagla Calpur and Cemal Yilmaz
Faculty of Engineering and Natural Sciences</p>
      <p>
        Sabanci University, İstanbul, Turkey
{mehmetcagri,cyilmaz}@sabanciuniv.edu
Abstract. The knowledge of the business domain of a
Software-UnderTest (SUT) is crucial for testing. Therefore identification of business
domain and the underlying business processes is the basis for automated
testing. Test cases and test input set can be automatically generated
depending on the domain and process information. In this research, we
apply machine learning techniques to determine the similarity of
applications. Applications in the same domain should be highly similar and
we can say that, same business processes are implemented in the
applications of a business domain. Our hypothesis argues that assuming we
can create a generalized Finite State Machine (FSM) model of a business
domain, the states and transitions of the FSM could be matched to the
business processes of a business domain. Previously created test cases
and test input could be used for testing an application that is coherent
with the states and transitions of the formal model. In this research we
coin two novel terms,Model Dressing and Automated Exploratory
Testing. Model dressing is matching an application to the generalized model
of a business domain. Automated exploratory testing is using the
previously gathered business domain knowledge to test new applications and
gradually merging outcome to the previous know-how to improve testing
process.
Yazılım testlerinin otomasyonunun doğru yapılabilmesi ve girilen veri seti ile elde
edilen sonuçların değerlendirilebilmesi için test edilmekte olan yazılımın iş alanı
ile ilgili bilgiye sahip olunması gerekmektedir. Tamamen otomatikleştirilmiş bir
yazılım test platformu tasarlanabilmesi için yazılımların iş alanlarına göre
sınıflandırılması ilk adım olarak görülebilir. Benzer uygulamaların benzer görevleri
yerine getirdikleri varsayımından yola çıkılarak önceden iş alanı bilinen bir
yazılım için hazırlanmış veri seti ve test durumlarının aynı iş alanına sınıflandırılmış
bir uygulamanın test edilmesinde kullanılabilir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Araştırmamızda yazılımların
iş alanlarına göre sınıflandırılması için uygulamaların içindeki metinleri
kullanıyoruz. Uygulamaların içindeki metinler geliştirme aşamasında, veya uygulama
yayınlanmasından sonra elde edilebilmektedir. Uygulamanın yayınlanmasından
sonra da metin bilgilerinin elde edilebilmesi, iş alanı sınıflandırmasının dinamik
uygulama test sürecine entegre edilmesini de sağlar.
      </p>
      <p>Grafik arayüzü temelli olmaları ve hızlı gelişen bir ekosisteme sahip olması
nedeniyle araştırmamızı mobil uygulamalar üzerinde gerçekleştirdik. Mobil
uygulamalar genel olarak ince istemci mimarisine sahip uygulamalar olmaktadır.
Mobil uygulamalar aktivite adı verilen ve birbirinden bağımsız olan program
bileşenlerinden oluşmaktadır. Her bir aktivite veya ardışık aktiviteler grubu bir
uygulama iş alanındaki iş görevlerinin hayata geçirilmesinden sorumlu
olmaktadır. Aktiviteler arası geçişler veri girişi, grafik arayüz elemanlarının tıklanması
veya jestlerle yapılabilmektedir. Kullanıcı etkileşimi mobil telefon ekranı ve
düğmeler aracılığıyla fiziksel olarak gerçekleşmektedir. Bu nedenle de mobil
uygulamaların sistematik test edilmesi için normal bir kullanıcının etkileşimin simule
edilmesi gerekmektedir. Standart bir kullanıcı bilinci yardımıyla bir uygulama ile
olan etkileşimini ve girmesi gereken verinin belirlenmesini sezgisel olarak yerine
getirebilmektedir. Araştırmamızda böyle bir bilginin otomatik olarak keşfedilip
edilmeyeceği sorusunu soruyoruz.</p>
      <p>Mobil uygulama marketlerindeki kategorizasyon, araştırmamızdaki iş alanı
sınıflandırması için gereken kategorilerin temelini oluşturdu. Mobil
uygulamaların grafik arayüzleri, uygulama kaynak kodu ve konfigürasyon dosyaları zengin
metin içeriğine sahiptir ve bu metinler sınıflandırma işleminin veri kaynağını
oluşturmaktadır. Araştırmamızın ilk aşaması metin verileri üzerinde makine
öğrenmesi teknikleri kullanılarak uygulama benzerliklerinin bulunması oldu. İkinci
aşamada aynı iş alanında sınıflandırılmış olan uygulamaların gerçekleştirdiği
görevlerin kendi içlerinde sınıflandırılması yapılmıştır. Bu sınıflandırma deneyi aynı
iş alanındaki uygulamaların yerine getirdiği temel görevler için ortak çözümler
kullanması ve bu ortak çözümlerin test edilmesinde daha önce benzer
uygulamalarda kullanılan test durumlarının yeniden kullanılabileceği varsayımına
dayanmaktadır. Üçüncü aşama mobil uygulamaların arayüzünde bulunan bir
arayüz elemanının uygulamanın hangi görevi yerine getiren aktivitesinde olduğunun
tahmin edilmesinden oluşmaktadır. Araştırmamız için çok çeşide sahip bir
örnek mobil uygulama havuzu oluşturduk. Bu havuzda 10 farklı iş alanı ve her iş
alanında da 10 mobil uygulama bulunmaktadır.</p>
      <p>Tablo 1. İş Alanları ve Örnek Uygulamalar
Otomatik keşif testi için ilk adım uygulamanın içinde bulunduğu veya
benzediği iş alanına sınıflandırılması işlemidir. İş alanının belirlenmesi test
otomatının uygulamanın bağlamından haberdar olması nedeniyle veri ve test uzayının
daraltılmasını sağlayacaktır. İş alanı içindeki belirli iş görevleri mobil
uygulamadaki aktivitelere veya aktivite gruplarına karşılık gelmektedir. Bu aktiviteler
ile de uygulama sonlu durum modelindeki durumlar eşleştirilebildiğinde, aynı
alandaki uygulamaların test edilmesinde kullanılacak temel bir test durumu
deposu oluşturulabilir. Test otomatı uygulama içinde bir grafik arayüz elemanı
ile karşılaştığında, bu elemandan elde edeceği metin bilgisi kullanılarak önceden
öğrenilmiş uygulama modelinde bir aktiviteye eşleşmesi sağlanabilir. Bu sayede
test otomatı hangi iş görevinin yerine getirildiği aktivitede bulunduğunu
tanımlayabilir ve aktivite ile ilgili testleri başlatabilir. Sınıfandırma süreçleri görseli
şekil 1’de incelenebilir.</p>
      <p>Deney platformu olarak Android Platformunu kullanıyoruz ancak
önerdiğimiz yöntem donanım ve yazılım platformlarından bağımsız prensiplere
dayanmaktadır. Bir android uygulaması aktivite denilen programlardan oluşmaktadır.
Aktiviteler başka aktivitelerden gelecek bilgi ile çalışması gerekse bile, yaşam
süreçleri uygulamadaki diğer aktivitelerden bağımsızdır. Uygulama paketleri her
aktivite için gerekli bilgi ve kaynak dosyalarını barındırmaktadır; aktiviteler ve
aralarındaki ilişkiler de bu paketlerdeki veri ile oluşturulmaktadır. Aktivitelerin
birbirinden bağımsız olmaları onları sonlu durum makinasının durumları
olarak tanımlamak için uygun bir temel oluşturmaktadır. Aktivitenin
konfigürasyonu değişse bile temel yerine getirdiği iş görevi aynı kalacaktır, bu nedenle
aktiviteleri "Meta-Durum" olarak da tanımlayabiliriz ve konfigürasyonlarını da
alt/iç-durum olarak adlandırabiliriz. Geçiş, veri girişi ve aksiyon
kombinasyonları sonrası bir durumdan başka bir duruma ulaşmak olarak tanımlanabilir. Bir
geçiş kendine döngüye neden olabilir, yani belirli bir geçiş aksiyonu sonrası aynı
durumda kalma/ulaşma ile sonlanabilir. Mobil uygulamanın değerlendirmediği
geçersiz işlemler yapılması nedeniyle uygulamanın geçerli işlemleri bekleyerek
aynı durumda bulunması ile tanımlanan geçiş kendine döngü olur. İkinci
kendine döngü ise alt-durumlar arası geçiş nedeniyle Meta-Durumda kendine döngü
olan geçiş tanımlanmasıdır. Bu durumda Meta-Durum değişmez ancak aktivite
konfigürasyonu değişmiştir, bu nedenle alt-durumlar arası geçiş olmuştur. Bu
durumda etkileşim sağlanan parçalar değişmiş olabilir bu da geçiş tanım kümesi
fonksiyonunu değiştirir. Kısaca özetlemek gerekirse, önerdiğimiz yöntem bir
aktiviteyi model durumuna, bir veri giriş alanını durum parametresine ve kullanıcı
aksiyonunu (kaydırma, tıklama, v.b.) da geçişe eşleştirmektedir.
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Mobil Uygulamaların Sınıflandırılması</title>
      <p>Uygulama fonksiyonel gereksinimlerinin test edilmesi için uygulanacak kara kutu
test yönteminin doğru yapılabilmesi için uygulamanın iş alanı bilgisi
gerekmektedir. Yazılım testlerinin çok çeşitli iş alanlarına giren çok sayıda uygulamanın
test edildiği geniş çaplı bir test servisi öngörüyoruz. Bu yoğunlukta bir servis
devasa boyutlarda uygulama verisinin ve test yapıtının (test durumu, girdi, v.s.)
sağlayabilir. Bu veri birikimi uygulamaların iş alanlarını sınıflandırma yöntemi
ile otomatik belirlenmesinde kullanılabilir. Araştırmamızdaki öngörümüz,
mobil uygulamaların kaynak dosyalarından metin madenciliği ile toplanan verilerin
böyle bir sınıflandırma için gerekli ve yeterli olabileceğidir. Sınıflandırma için
elde edilen metin verisinin toplu halde kullanılması mümkündür, ancak önceki
bölümde bahsedilen iş görevi ve grafik arayüz elemanı sınıflandırma işlemleri için
veri üzerinden ek işlemler gerekecektir.
2.2</p>
      <p>Genelleştirilmiş Sonlu Durum Makinesi
İş alanının otomatik olarak tanımlanmasından sonra, iş alanları için biriken bilgi
ile bir iş alanı modeli oluşturulabilir. Bu model hem iş görevlerini hem de
kullanıcıların uygulamayı kullanırken gerçekleştirebileceği aksiyonları tanımlar. Bu
modelin oluşturulması için sonlu durum makinası konsepti kullanılabilir.
Uygulamayı oluşturan alt üniteler(aktiviteler) de bu sonlu durum makinasında
gösterilebilir. Şekil 2 havayolu rezervasyon sistemi iş alanı için oluşturulabilen
genelleştirilmiş sonlu durum makinasına örnektir.
Şekil 2. Havayolu rezervasyon iş alanının kısmi sonlu durum modeli ve durum
parametreleri. Örnek uygulamalardaki metinler ingilizcedir, model içindeki durum isimleri
ve parametreler de aslına uygun olarak ingilizce isimleri ile eklenmiştir.</p>
      <p>Elimizde bir iş alanı modeli ve test edilecek bir uygulama olduğunda,
hedefimiz bu uygulamayı model ile eşleştirebilmektir. Bu sayede test edilecek program
için test durumları bu model üzerinden üretilebilir. Uygulama - model
eşleştirmesi işlemini model giydirme, modelde birikmiş bilgiyi kullanarak testleri
yürütmeyi ise otomatik keşif testi olarak adlandırıyoruz. Model giydirmenin amacı,
bir test otomasyon ajanının önceden öğrenilmiş bir uygulamanın test
durumlarını, yeni test edilecek uygulamaya uyarlamasını sağlamaktır. Önerilen yöntemin
pratik faydası olduğuna inanıyoruz, çünkü bulut tabanlı test servisleri sayıca
artmakta ve bu servislerin test ettikleri her uygulamadan test ile ilgili yeni bir
şey öğrenmesi ve öğrendiği bu test bilgisi yığınını gelecek test işlerini geliştirmek
için kullanması mümkündür.
2.3</p>
    </sec>
    <sec id="sec-3">
      <title>Uygulama İş Görevlerinin Sınıflandırılması</title>
      <p>Aynı iş alanı içinde sınıflandırılan uygulamaların bilgilerinin kendi içinde
sınıflandırılması ile uygulama iş görevlerini ayrıştırmak mümkün olabilecektir.
Aktivitelerden elde edilen metin yığınlarını aktivite adları ile etiketleyerek benzerlik
sınıflandırması yaptığımızda aynı iş görevi ile ilgili görevi yerine getiren
aktivitelerin aynı sınıfa düşmesi ile görevleri sınıflandırmamız mümkün olacaktır. Bu
sınıflandırma sonrasında da uygulamaların sahip olduğu aktiviteler
genelleştirilmiş sonlu durum makinesindeki durumlara eşleştirerek model giydirme işlemi
yerine getirilir.
2.4</p>
      <p>Grafik Arayüz Bilgilerinden İş Görevi Belirlenmesi
İş görevi sınıflandırması için kullanılan makine öğrenmesi modelleri, test
otomasyon ajanlarının test edilen uygulamada bulundukları yeri otomatik tespit
etmeleri için kullanılabilir. Test edilmeye başlanan bir uygulamanın kullanıcı
arayüzündeki elemanların bilgisi kullanılarak hangi iş görevi ile ilgili aktivitede
bulunduğunun tespit edilmesi ile testler aktivite bilgisi doğrultusunda devam
ettirilik. Bu yer belirleme gereksinimi uygulama modelinin tüm uygulamalar için
genelleştirilmesi nedeniyle ortaya çıkmaktadır. Hakkında iş alanı dışında bilgi
sahibi olunmayan bir uygulamanın aktif halde bulunan aktivitesinin hangi iş
görevi ile ilgili olduğu bu sayede belirlenir ve otomatik keşif testine devam edilir.
3</p>
      <sec id="sec-3-1">
        <title>Deneysel Çalışmalar ve Sonuçların Analizi</title>
        <p>Araştırmamızın ilk aşaması olan iş alanı sınıflandırması ile aynı iş alanının
bulunması için yaptığımız araştırmada, mobil uygulama paketlerinin içinden metin
madenciliği ile çıkardığımız metin yığınlarını uygulama marketlerinden
aldığımız iş alanı bilgisi ile etiketledik. 4 katlı çapraz doğrulama destek vektör
makinesi kullanarak yaptığımız deneylerde yüksek kesinlik ve duyarlık değerlerinde
sınıflandırma sonuçları elde ettik (Tablo 2 ve 3). F1-ölçütünü baz aldığımızda
ortalama %92’lik başarım ortaya çıkmaktadır.</p>
        <p>Deney setimizdeki iş alanlarından havayolu rezervasyon ve hava durumu
kategorilerini seçerek iş görevi sınıflandırma deneylerimizi gerçekleştirdik. Manuel
olarak gerçekleştirdiğimiz iş görevi tanımlama işlemi sonucunda bu kategoriler
için bulduğumuz iş görevleri ve kaç tane uygulamanın bu görevleri içerdiği ile
ilgili bilgi aşağıdaki tablolarda (4 ve 5) incelenebilir.</p>
        <p>
          Tablo 4 ve 5’de verilen iş görevleri ile etiketlenmiş aktivite bilgileri üzerinde
gerçekleştirdiğimiz 4 katlı çapraz doğrulama destek vektör makinesi
sınıflandırması sonuçları aşağıda görülebilir (Tablo [
          <xref ref-type="bibr" rid="ref6 ref7">6,7,8,9</xref>
          ]). Bu iki iş alanındaki
sonuçlarda ortaya çıkması tahmin edilebilir bir ilişki göze çarpmaktadır. İş alanı için
Tablo 2. İş alanı sınıflandırması için 4 katlı çapraz doğrulama destek vektör makinesi
Tablo 5. Hava durumu iş görevleri ve bulundukları örnek uygulama sayısı
niş sayılabilecek iş görevlerinde yüksek başarım olmasına karşın benzer metin
bilgileri içeren iş görevlerinin sınıflandırmasında başarım düşmektedir. Bu düşüş
makine öğrenmesi teknikleri kullanılarak sınıflandırmanın sorun yaşayabileceği
noktaları göstermekle birlikte, araştırmamızda öne sürdüğümüz otomatik keşif
testinde önceden elde edilen bilgilerin yeniden kullanılması konusunda sorun
teşkil etmemektedir. Benzer metinleri içeren aktivite/iş görevleri olması nedeniyle
ihtiyaç duyulan veri seti ve test durumlarının benzerlik olan aktivitelerde de
bulunması gerektiği düşünülebilir. Bu durumda bu veriler ve test durumları aktivite
yanlış sınıflandırılsa bile test kapsamasını yükseltecek ve gerekli durumların test
edilmesini sağlayacaktır.
        </p>
        <p>
          Tablo 6. Havayolu iş alanındaki uygulamaların iş görevlerinin sınıflandırılması
İş alanları arasında benzerlik madenciliği Dong [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] tarafından ortaya atılmış yeni
bir fikirdir. Bu teknik çeşitli iş alanlarındaki data setlerine uygulanarak iş alanları
arasındaki analog benzerlikler ortaya çıkarılmaktadır. Yazarın ortaya attığı sav iş
alanları arasındaki benzerlik madenciliğinin bir iş alanı hakkındaki bilginin başka
bir iş alanına aktarılabileceği üzerinedir. Bu sayede sınıflandırma ve kümeleme
etkinliği arttırılabileceği anlatılmaktadır.
Tablo 8. Hava durumu iş alanındaki uygulamarın iş görevlerinin sınıflandırılması
        </p>
        <p>
          Zhu vd. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] çok büyük sayıda android uygulaması kullanarak grafik arayüz
benzerliklerini ortaya çıkarmaya çalışmaktadır. Araştırma için veri uygulamarın
içindeki XML kaynak dosyalarından toplanmaktadır. Resim dosyaları ve
metin bilgileri uygulama benzerliği metriğinin hesaplanmasında kullanılmaktadır.
Bu sayede uygulamaların telif haklarına uyulmadan kopyalanması veya zararlı
içeriğin uygulamalara eklenmesinin ortaya çıkarılması hedeflenmektedir.
        </p>
        <p>
          He vd. [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] Java grafik arayüzlerini tanımlayan XML dosyalarını işleyerek
ekran benzerliklerini ortaya çıkarmaktadır. Farklı grafik arayüzler için hazırlanmış
test durumlarını birleştirerek test suitinin çeşitliliğinin arttırılması
hedeflenmektedir.
        </p>
        <p>
          Hallenberg ve çalışma arkadaşları çalışmalarında [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] düzgün test durumu
üretilebilmesi için iş alanı bilgisine ihtiyaç olduğunu belirtmektedir. Kalite kontrol
çalışanlarının test odakları ile iş süreçlerinin ihtiyaç duyduğu odaklamanın farklı
olduğunu öne sürmekteler. Grafik arayüzüne odaklanmaktalar ve uygulama
modelinden gerçekleştirilebilecek test aksiyonlarını ortaya çıkarmaktalar.
        </p>
        <p>
          Makine öğrenmesi teknikleri aynı zamanda static kaynak kod analizinde de
kullanılmaktadır. Shabtai vd. [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] makine öğrenmesi araçlarının android
uygulamalarının iş alanlarını öğrenmekte kullanılabileceğini söylemekteler. Belirlenen
alanın güvenlik araştırmasında kullanılabileceğini ve zararlı yazılımların ortaya
çıkarılabileceğini söylemekteler. Kaynak kodu ve XML dosyaları sınıflandırma
için veri kaynağı olarak kullanılmatadır.
        </p>
        <p>
          Kowalczyk ve çalışma arkadaşları [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] grafik arayüz, kaynak dosyaları,
uygulama marketi tanımları ve eleştirilerinden çıkartılan verilerin kullanılması ile
uygulama davranışlarını incelemekteler. Makalede ortaya konan fikir bütün bu
verinin toplanması ile uygulamanın ne şekilde davranacağı ile ilgili fikir sahibi
olunabileceğidir.
Şu anda test süreçlerinde iş alanı bilgisi ve bu alandaki eksperlerin yardımı ile
elde edilmekte ve manuel çalışmaya dayanmaktadır. Bu nedenle de çalışanlar
için zaman kaybına ve insan hatasının test süreçlerine etki etmesine açık test
süreçleri yürütülmektedir. Yürüttüğümüz araştırmanın sonuçları ile ilgili analiz
bölümünde verdiğimiz başarım değerleri otomatik keşif testinin mümkün
olabileceğini göstermektedir. Test edilmekte olan bir uygulamanın iş alanının
tanımlanabilmesi, iş alanı tanımı sonrası uygulama tarafından gerçekleştirilen iş
görevlerinin tanımlanabilmesi, ve bu iş görevlerinin geçmiş bilgi birikimlerine
bağlı olarak ortaya çıkarılabilmesinin mümkün olması sürecin otomatize
edilebileceğini göstermektedir.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Kaynaklar</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Calpur</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arca</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calpur</surname>
            ,
            <given-names>T.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yilmaz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Model dressing for automated exploratory testing</article-title>
          .
          <source>In: 2017 IEEE International Conference on Software Quality</source>
          ,
          <article-title>Reliability and Security Companion (QRS-C)</article-title>
          . pp.
          <fpage>577</fpage>
          -
          <lpage>578</lpage>
          (
          <year>July 2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Dong</surname>
          </string-name>
          , G.:
          <article-title>Cross domain similarity mining: Research issues and potential applications including supporting research by analogy</article-title>
          .
          <source>SIGKDD Explorations</source>
          <volume>14</volume>
          (
          <issue>1</issue>
          ),
          <fpage>43</fpage>
          -
          <lpage>47</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Hallenberg</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carlsen</surname>
            ,
            <given-names>P.L.</given-names>
          </string-name>
          :
          <article-title>Declarative automated test</article-title>
          .
          <source>In: Proceedings of the 7th International Workshop on Automation of Software Test</source>
          . pp.
          <fpage>96</fpage>
          -
          <lpage>102</lpage>
          . AST '12, IEEE Press, Piscataway, NJ, USA (
          <year>2012</year>
          ), http://dl.acm.org/citation.cfm?id=
          <volume>2663608</volume>
          .
          <fpage>2663628</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Jiawei</given-names>
            <surname>Zhu</surname>
          </string-name>
          , Zhengang Wu, Zhi Guan, and Zhong Chen:
          <article-title>Appearance similarity evaluation for android applications</article-title>
          .
          <source>In: 7th International Conference on Advanced Computational Intelligence (March</source>
          <volume>27</volume>
          -29
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Kowalczyk</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Memon</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>M.B.</given-names>
          </string-name>
          :
          <article-title>Piecing together app behavior from multiple artifacts: A case study</article-title>
          .
          <source>In: 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE)</source>
          . pp.
          <fpage>438</fpage>
          -
          <lpage>449</lpage>
          (
          <year>Nov 2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Shabtai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fledel</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elovici</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Automated static code analysis for classifying android applications using machine learning</article-title>
          .
          <source>In: 2010 International Conference on Computational Intelligence and Security</source>
          . pp.
          <fpage>329</fpage>
          -
          <lpage>333</lpage>
          (
          <year>Dec 2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Zhi-Wei</surname>
            <given-names>He</given-names>
          </string-name>
          , Cheng-Gang Bai:
          <article-title>Gui test case prioritization by state-coverage criterion</article-title>
          .
          <source>In: IEEE/ACM 10th International Workshop on Automation of Software Test</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>