=Paper=
{{Paper
|id=Vol-1980/YTM_2017_paper_10
|storemode=property
|title=Grafiksel Kullanici Arayuzleri icin Duzenli Ifade Bazli Test Kapsama Kriterleri(Coverage Criteria For Testing Graphical User Interfaces Based On Regular Expressions)
|pdfUrl=https://ceur-ws.org/Vol-1980/YTM_2017_paper_10.pdf
|volume=Vol-1980
|authors=Onur Kilincceker,Fevzi Belli
|dblpUrl=https://dblp.org/rec/conf/uyms/KilinccekerB17
}}
==Grafiksel Kullanici Arayuzleri icin Duzenli Ifade Bazli Test Kapsama Kriterleri(Coverage Criteria For Testing Graphical User Interfaces Based On Regular Expressions)==
Grafiksel Kullanıcı Arayüzleri için Düzenli İfade Bazlı Test Kapsama Kriterleri Onur Kılınççeker1,3 and Fevzi Belli2,3 1 Mugla Sitki Kocman University, Mugla, Turkey 2 Izmir Institute of Technology, Izmir, Turkey 3 Paderborn University, Paderborn, Germany okilinc@mail.upb.de,belli@upb.de Özet. Grafiksel Kullanıcı Arayüzleri (GKA), insan-bilgisayar etkileşimi açışından, bilgisayar tabanlı sistemlerin ana bileşenleridir. Bu çalışma, GKA’ların düzenli ifadeler (Dİ; regular expression) ile modellenmesi ve dahası test kapsama (coverage) kriterleri elde edilmesi için yeni bir yaklaşım öne sürmektedir. Verilen GKA, ya doğrudan bir Dİ ile, ya da (pratikte daha çok yapıldığı şekilde) olay bazlı bir yönlü çizge (YÇ; digraph) ile modellenir ve bu YÇ bir Dİ’ye dönüştürülür. Ne var ki bu Dİ semantik bakımından yalnızca olay bazlıdır. Modeli durum açısından zenginleştirmek için Dİ özel bir teknik ile endekslenir. Önerilen yaklaşım, bu endekslenmiş Dİ’yi analiz ederek durum ve olay bazlı test kapsama kriterleri üretir. Ön araştırmalar göstermektedir ki, önerilen yaklaşım, diğerleri ile karşılaştırıldığında, daha özlü (compact) test takımı üretimine olanak sağlamaktadır. Anahtarlar: Grafiksel Kullanıcı Arayüzü, Modelleme, Test Kapsama Kriterleri, Düzenli İfadeler, Sonlu durum makinaları Coverage Criteria For Testing Graphical User Interfaces Based On Regular Expressions Onur Kılınççeker1,3 and Fevzi Belli2,3 1 Mugla Sitki Kocman University, Mugla, Turkey 2 Izmir Institute of Technology, Izmir, Turkey 3 Paderborn University, Paderborn, Germany okilinc@mail.upb.de,belli@upb.de Abstract. Graphical User Interfaces (GUI) are popular for enabling comfortable user interactions (UI) of computer-based systems with users. This paper introduces a new approach for modeling GUIs with regular expresion 332 (RE), and moreover, obtaining coverage critaria for GUI testing. The GUI under test is assumed to be modeled by a RE, the symbols of which are semantically interpreted as events. For enriching this RE by information also about states, the RE will be scanned by equivalent FSAs, forwards and backwards. Thereby, the appearing states will be noted as indices of the RE. The resulting coded format of the RE, which is obtained by simultaneous backwards and forwards scanning, contains all information necessary for generating coverage citeria that includes both event and state information. Preliminary experiments show that proposed approach enables to generate more compact test cases at less costs compared with others. Keywords: Graphical User Interface, Modeling, Test Coverage Criteria, Regular Expression, Finite State Automata, Event Sequence Graphs 1 Giriş Günümüz karmaşık yazılım sistemleri gözönünde bulundurulduğunda bilgisayar tabanlı sistemlerin ana bileşenlerinden biri olan Grafiksel Kullanıcı Arayüzlerin (GKA) geniş kullanım alanları, gün geçtikçe daha karmaşık GKA’ların inşa edilmesini sağlamaktadır [15]. GKA’lar ile geleneksel yazılımlar arasında bir çok farklılık göze çarpmaktadır. Bu farklılıklar, GKA’ların tasarım ve sınanmasnda farklı yetenekler ve tekniklerin geliştirilmesini gerektirmektedir [9]. GKA’larin modellenmesi ve elde edilen modeller aracılığı ile inşa ve test edilmesi süreci için gereken zaman, geleneksel yazılımlarda olduğu gibi, modelsiz sürece nazaran daha ekonomiktir. Arzu edilen bu zaman ve masraf tasarrufu, şüphesiz analiz ve test işlemleri için uygun modeller seçilmesi ile mümkündür. Bu bildiri, GKA’ların düzenli İfadeler (Dİ) ile modellenmesini önerir ve bu modellerle ifade edilebilen GKA’ların test edilmesi için gerekli test kapsama kriterleri üretilmesi amacı ile yeni bir yaklaşım öne sürmektedir. Test kapsama kriterleri test sürecini değerlendirme ve sonlandırma açısından çok önemlidir. Yaklaşım ana hatları ile şu adımlardan oluşmaktadır: 1. İncelenen sistem (İS; system under consideration) bir Dİ ile modellenir. Bu modelleme şekli yaygın olmadığından, önce olay bazlı bir yöntem ile, örneğin yönlü çizge (YÇ; digraph) ile modellenir ve bu YÇ bilinen kuramsal metodlar ile otomatik olarak bir Dİ’ye dönüştürülür [1],[12], [16]. 2. Elde edinilen Dİ, yalnızca olay bazlıdır ve aşağıda belirtilen özel teknik ile endekslenir. Bu endekslenmiş Dİ, İS’in olay ve durum bazlı karakteristik bilgilerini içermektedir. 3. Bu bilgiler Bağlam Kapsama Kriterlerini (context coverage criteria) üretmek için kullanılır. İkinci adımda değinilen teknik, ilk etapta elde edinilen Dİ’ye ve bu Dİ’nin tersten okunmasından (mirrored term) oluşan sonlu durum makinalarını (SDM) kurar. Akabinde eldeki Dİ, bu makinalar tarafından önce doğrudan (forwards scanning), sonra tersinden (backwards/reverse scanning) okunur ve makinaların tarama anlarında aldıkları durumlar Dİ’nin o anki olayına (=simgesine) üst (ön okuma; 333 forwards indexing) ve alt (backwards/reverse indexing) endeks olarak işlenir. Dİ’nin aynı anda üst ve alt endekslenmesi (coding) önerilen yaklaşım için gerekli bütün bağımsal (contextual) bilgileri içerir. Bildirinin 2. Bölüm’ünde ilgili çalışmalar gözden geçirilecek, sunulan yaklaşım ile ilgileri kısaca açıklanacaktır. 3. Bölüm’de GKA modellenmesi için önerilen yöntem bir örnek ile anlatılacak, ardından 4. Bölüm’de Dİ’lerin önemli özelliklerinin endeksleme yöntemi ile elde edilmesine konu olacaktır. 5. Bölüm’de yeni kapsama kriterleri tanımlanacaktır. 6. Bölüm’de ise önerilen kapsama kriterlerinin bir uygulaması olarak test üretimi için örnekler verilecektir. Son olarak 7. Bölüm’de elde edilen sonuçlar ve gelecek için planlanan çalışmalar özetlenecektir. 2 İlgili Çalışmalar Literatürde verilen bir sistemin bir model yardımıyla test edilmesi ‘model tabanlı test etme’ olarak geçmektedir. Bu bildiride önerilen yaklaşım ile ilişkili modeller: Olay Sıra Çizgesi (OSÇ) (Event Sequence Graph ) [9] ve Olay Akış Çizgesi (OAÇ) (Event Flow Graph) [15]. OSÇ’ler bir çok interaktif sistemin modellenmesinde kullanılmaktadır. Bunlara gerçek zamanlı sistemler, gömülü sistemler ve GKA’lar örnek olarak verilebilir [8]. Bununla birlikte yine bu model aracılığı ile sistemin analiz edilmesi ve test durumlarının üretilmesi [6],[7],[8],[9] ise bir diğer avantajlı yanıdır. OAÇ’ler ise yapısal olarak OSÇ’ler ile benzerlikleriyle birlikte her iki modelde bir çok ortak uygulama alanı bulmaktadır. Bunlar ise çoğunlukla GKA’ların modellenmesi ve test edilmesi üzerine yoğunlaşmaktadır [14], [15]. Sonlu durum makinaları (SDM) on yıllardan beri sıralı (sequential) yazılım ve donanım sistemlerinin modellenmesi ve test edilmesi için kullanılmaktadır. Bu çalışmalara ilk olarak Chow [10] öncülük etmiş, SDM ile modellenen sıralı sistemlerin sınanması için ‘w-metodu’ olarak adlandırılan bir metot öne sürmüştür. Bu çalışmanın ardından SDM bazlı modellerin test sürecinde kullanılması için bir çok metot ileri sürülmüştür. Dİ’lerin gerek modelleme gerekse test için kullanımıyla ilgili çalışmalar diğer modellerle kıyaslandığında yok denecek kadar azdır. Örneğin, Web of Science veri tabanında “düzenli ifade” ve “test üretimi” anahtar kelimeleri aratıldığında, konuyla alakalı yalnızca altı çalışma ile karşılaşılmaktadır. Bunlardan bir tanesi [17] donanım için test üretimi ve daha ziyade belirli bir seviyede verilmiş donanımın test edilebilirlik analizi ve optimizasyonu üzerinedir. Diğer beş çalışma ise Dİ’ler ile modellenen yazılımların test edilmesi hakkındadır. Bu veritabanında rastlanılmayan [11]’de Dİ’ler sıralı devrelerin test edilmesi için rastgele test takımları üretiminde kullanımı için bir yaklaşım verilmektedir. Ayrıca Shaw tarafından [18]’de öne sürülen yaklaşım, Dİ’lerin yazılım tasarımı (design) ve belirtimi (specification) için kullanımı üzerinedir. Liu ve Miao çalışmasında [13] Dİ yardımıyla yazılım davranışları için test modelinin kurulması hakkındadır. Bir diğer çalışmada Belli ve Grosspietsch [3] Dİ ile modellenen karmaşık yazılım sistemlerinin kusur dayanıklılığı (fault tolerance) 334 açısından analiz edilmesi ve bu analiz sonucunda, sistem arzu edilen özellliği içermiyorsa genişletilip kusur dayanıklı hale getirilmesi ile ilgilidir. Mevcut literatür incelendiğinde Dİ’lerin GKA’ların test kapsanımları için kullanımına ilişkin bir çalışmaya şu ana kadar yapılan araştırmalarda rastlanılmamıştır. 3 GKA ve Modellenmesi Günümüzde kullanılan GKA’lar basitten karmaşığa çok çeşitli şekillerde karşımıza çıkmaktadır. Aşağıda Şekil 1’de basit bir örnek verilmektedir. . Şekil 1. Örnek bir GKA [7] Şekil 1’de gösterilen örnek GKA’yı en basit olarak bir yönlü çizge (YÇ; digraph) ile modelleyebiliriz (Şekil 2’ye bkz.). [ : start (entry menu); ]: finish (exit menu); a:pick an object; b: copy an object; c: delete an object; d: paste an object Şekil 2. Şekil 1.’de gösterilen örnek GKA’nın yönlü çizge (YÇ) modeli Bu örnekten şu test dizilerini üretebiliriz: [ab],[abc],[abcd] (1) Aynı test dizileri bu YÇ’ye tekabül eden Dİ ile edinmek mümkündür. Düzenli İfadeler: Aşağıdaki kurallar çerçevesinde, bir düzenli ifade, verilen bir al- fabeα’nın sıfır veya daha fazla a, b, c, ... sembollerinin dizisi ile ifade edilir. Bu dizi- ler aşağıda verilen operatörlerin aracılığı ile kurulur; 335 • Bitiştirme – belirli bir sembol ile ifade edilmeyen bir operatör. Öyle ki ab gibidir ve ‘a izlenir b tarafından’ anlamındadır. • Seçim (Birleştirme), + ile gösterilir. Öyle ki a+b gibidir ve ‘a veya b’ anlamında- dır. • Yineleme (Kleene Yıldız operatörü), * ile gösterilir. Öyle ki a* gibidir ve ‘a isteğe bağlı olarak tekrarlanır’ (sıfır tekrarda içerilmektedir ve bu ‘boş kelime λ’yı ifade eder). Benzer şekilde, a+ ise a’nın en az bir kez oluşunu belirtir, yani λ hariç tutu- lur. Şekil 2’deki YÇ’ye tekabül eden Dİ’yi şu şekilde tanımlayabiliriz. [(ab(c+d)*)*] (2) Kolayca görüleceği gibi, (1)’deki test takımları üstte gösterilen Dİ tarafından da üretilebilir. Konunun ayrıntıları için [4],[9]’a bkz. 4 Düzenli İfadelerin Önemli Özelliklerinin Endekslenme Yolu ile Tanımlanması Giriş bölünde amacı belirtilen ve özetlenen Dİ endekslenmesi, bu bölümde ayrıntılı olarak açıklanacaktır. Bu çerçevede, semboller arasındaki bağlamsal ve uygunsal ilişkilerin çıkarılabilmesi için gerekli bağlamsal (contextual) ileri, geri, sağ ve sol endeksleme kavramları tanımlanacaktır. Bu endeksleme işlemlerine dayanarak elde edilecek olan İleri Bağlam, Geri Bağlam ve Uygunluk Tablosu tanımları verilecektir. Bu bölümde tanıtılacak olan kavramlar bir sonraki bölümde GKA test kapsamları üretilmesi aşamasında kullanılacaktır. 4.1 Bağlamsal (contextual) İlişkilerin Görüntülenmesi Bu bölüm, bir örnek aracılığı ile Dİ’nin karakteristik ilişkisini ortaya çıkaran belirli bir forma dönüştürülmesini göstermektedir. Örnek olarak (2)’de verilen Dİ kullanıla- caktır. İlk aşamada, (2)’nin her bir sembolü oluş sırasına göre ifade edilir. Böylece aşağı- daki bağlamsal (contextual) endekslenmiş ifade elde edilir. ([1(((a1(b1((c1+d1)*)))*)]1) (3) Burada, “a1” “a”nın ilk defa var olması demektir. Aynı şekilde diğer sembollerin endeksleri de “1”dir. Yani (3) içerisinde her sembol yalnızca bir defa bulunmaktadır. 4.2 Dİ’ye Doğrudan ve Tersinden Tekabül Eden SDM Kurulması Ardından, iyi bilinen yönteme dayanarak [3],[5], Dİ’ye tekabül eden durum tablosu Eforw elde edilir (Tablo 1). Bu tablo, verilen Dİ’ye doğrudan (forward) tekabül eden SDM’dir. Eforw, SDM’nin Dİ’ye dönüşümünde kaybolan, ya da doğrudan Dİ ile çalı- şıldığında mevcut olmayan durum bilgisini Dİ’ye endeks ile eklemeyi sağlayacaktır. 336 Sembol Durum [ a ] b c d 0 1 [1 1 2 3 a1 2 4 ]1 3 b1 4 2 3 5 6 c1 5 2 3 5 6 d1 6 2 3 5 6 Tablo 1. Eforw Durum Tablosu Eforw kurulması hk. Örneğin, Eforw sıfır (0) başlangıç durumundadır ve “[” sembo- lünü okur, bu doğru bir şekilde “[1” dir ve ardından durum 1’e geçilir. Sembol “a” doğru olarak durum 1’de okunur ve bu daima “a2” olur. Ardından bu durum 2’ye geçileceği anlamına gelir. (2) tarafından oluşturulmayan her bir sembol Eforw tarafından da kabul edilmez. 4.3 Olay ve Durumların Kaynaştırılmasi - Dİ’nin İleri Endekslenmesi s sembolleri ve (2) arasındaki ek ilişkiler ışığında, si sembolünün endeksi i ile si’yi i içeren durumların kümesi ile yer değiştirilirse, Eforw’un durumları elde edilir. Böylece (4)’teki 𝑇𝑓𝑓𝑓𝑓 oluşturulmuş olur. Eforw ile yeniden tanımlanan durum bil- gisi 𝑇𝑓𝑓𝑓𝑓 ’un endekslerini tanımlamaktadır. [1( a2b4((c5 +d6))*)* ]3 (4) Görülen endeksler, verilen Dİ’nin Eforw tarafından doğrudan, yani soldan sağa (forward), “okunması” durumunda sembollerde bırakacağı durum (state) izleri olarak kabul edilebilir. Bu işlem (2)’nin ileri (forward) endekslemesi olarak adlandırılır. 4.4 Dİ’nin Ters Endekslenmesi ve Kodlanması İleri endekslemeye benzer şekilde, (2)’nin ters görüntüsü (mirror) Tmirr endekslen- diğinde Tmirr (5) oluşturulur. ]1 ((((d1+c1)*b1)a1))*[1) (5) Şimdi, (4)’ü elde etmek icin uygulanan işlemlerin aynısını (5)’e, yani Tmirr’a uygu- larsak Tmirr_forw elde edilir (6). Tmirr_forw sayesinde (2)’nin tersten okunmasıyla elde edilen Dİ’ye tekabül eden SDM’nin durum bilgisi tekrardan kazanılmış olur. (]1 ((((d4+c3)*b2)a6))*[1) (6) Bu işlem geri endeksleme olarak adlandırılır. Burada, ikinci bir ters görüntü işle- minden sonra (7) yani T mirr forw mirr veya Tback elde edilir. [1 ( a6 b2 (( c3 + d4 ))* )* ]1 (7) 337 𝑓𝑓𝑓𝑓 İleri ve geri endeksleme aynı anda gerçekleştirilirse, (8) yani 𝑇𝑏𝑏𝑏𝑏 oluşturulur. [15 (𝑎62 𝑏24 (𝑐35 + 𝑑46 )∗ )∗ ]13 (8) Bu çift yönlü endeksleme (2)’nin kodlanması olarak adlandırılır. Buradaki önemli bir araç kodlanan sji sembollerindeki bir ileri endeks i ve bir geri endeks j’nin tüm ikililerini içeren uygunluk ilişkisi C’dir. Bu isj’nin iCj notasyonları ile tanımlanır. Yani i ve j durumları s sembolü ile uygundur anlamına gelmektedir. Şekil 3.(b) (2) için bu C ilişkisini vermektedir. İkinci olarak, daha karmaşık bir araç, sol bağlam ve sağ bağlam sırasıyla lforw , lback ve rforw, rback ilişkileri kullanılır. Bunlar her bir si ve sj için birinin sonraki ve önceki sembollere karar verir. Şekil 3.(a) (2) için bu bağlam ilişkisini vermektedir. Bu konu- larda detaylı bilgi [5]’de bulunabilir. Şimdiye kadar önemli olan bir çok kavram açıklandı ve bunlara örnekler verildi. Bir sonraki bölümde, Tanım 1’den itibaren öne sürülen yaklaşımda kullanılacak kavramlara yer verilecektir. (b) (a) Şekil 3. (a) Bağlam ve (b) Uygunluk Tablosu 5 GKA Kapsama Kriterleri Bu bölümde kapsama kriterlerinin tanımları verilecektir. Bu kriterler arasındaki ilişkiler (subsumption relation) Şekil 4’te görülmektedir. Şekil 4. Kriterler arası kapsama ilişkisi 338 Dİ’de kullanılan semboller olayları adlandırmaktadır. Dolayısı ile Şekil 3’de gösterilen Bağlam ve Uygunluk Tabloları, bu olayların birbirlerine olan bağımlılıklarını ifade etmektedirler. Daha da ötesi, bu bilgileri, SDM’nin durumları ile zenginleştirmektedirler. Bu da, sembollerin semantiğine göre kullanıcı için önemli bilgileri içermektedir. Bu amaçla tablolardan aşağıdaki GKA kapsama kriterlerini üretiyoruz. Bu kriterler, kombine edilerek ya da kullanılan ilişkilerin geçişli kapamaları (transitive closure) alınarak daha da kuvvetlendirilebilirler. Burada tek yönlü ok, kriterler arasındaki kapsama ilişkisini açıklamaktadır. Örneğin Bağlam Kriteri hem Sol hem de Sağ kriteri kapsamaktadır. Uygunluk kriteri ise Sağ ve Sol arasında uygunluk testi için kullanıldığı için çift yönlü ok ile gösterilmiştir. Tanım 1: Bir Bağlam Kapsama Kriteri (Context Coverage Criterium), üretilen test takımının, tüm durumları Bağlam Tablosu tarafından içerilmesi olarak tanımlanır. Bu formel olarak; 𝑗 ∀𝑡𝑛 ∈ 𝑇 ⇒ 𝑡𝑛 = 𝑐 ∈ 𝐶𝑖 Tanım 2: Bir Sol Bağlam Kapsama Kriteri (Left Context Coverage Criterium), üretilen test takımının, tüm durumlarının Bağlam Tablosu’nun sol endekslenmiş sembolleri tarafından içerilmesi olarak tanımlanır. Bu da formel olarak; ∀𝑡𝑛 ∈ 𝑇 ⇒ 𝑡𝑛 = 𝑐 ∈ 𝐶 ⏟ 𝑙𝑙𝑙𝑙 Sağ Bağlam Kapsama Kriteri (Right Context Coverage Criterium), Sol Bağlam Kapsama Kriteri’ne benzer şekilde tanımlanır. Tanım 3: Bir İleri Bağlam Kapsama Kriteri (Forward Context Coverage Criterium), üretilen test takımının, tüm durumlarının İleri Bağlam Tablosu tarafından içerilmesi olarak tanımlanır. Buda formel olarak; ∀𝑡𝑛 ∈ 𝑇 ⇒ 𝑡𝑛 = 𝑐 ∈ 𝐶 𝑗 Geri Bağlam Kapsama Kriteri (Backward Context Coverage Criterium), İleri Bağlam Kapsama Kriteri’ne benzer şekilde tanımlanır. Tanım 4: Bir Uygunluk Kapsama Kriteri (Compatibility Coverage Criterium), üretilen test takımının, tüm durumlarının Uygunluk Tablosu’nda verilen endekslere tam uyumlu olması olarak tanımlanır. Buda formel olarak; ∀𝑡𝑛 ∈ 𝑇 ⇒ 𝑡𝑛 = 𝑢 ∈ 𝑈 Yukarıda tanımı verilen kapsama kriterleri bir Dİ’nin analizi sonucunda elde edilen tablolar ile tespit edilmektedir. Bahsedildiği gibi SDM’den Dİ’ye dönüşümlerde durum bilgisi kaybolmaktadır. Kaybolan durum bilgisi endeksleme işlemi sayesinde tekrardan oluşturulmaktadır. Bu bağlamda öne sürülen kapsama kriterleri ile literatürde sıkça kullanılan durum kapsama (state coverage), geçiş kapsama (transition coverage) vb. kriterleri arasında bir ilişki vardır. Ancak mevcut çalışma bu ilişkiden ziyade öne sürülen kapsama kriterlerinin tanım ve kullanımına yöneliktir. 339 6 Uygulama 6.1 Test Takımı Üretimi Test takımları bir önceki bölümde verilen kapsama kriterlerini sağlayacak şekilde bağlam tablosundan elde edilir. Şekil 3.(a)’da verilen bağlam tablosu test takımı üretimi için kullanılacaktır. Örnek olarak sol bağlam ve ileri bağlam kapsama kriterleri seçilecek olursa, test takımları t1 ve t2 Şekil 3.(a)’nın sol tarafında bulunan ileri bağlam ve sürekli sola doğru (x’R) semboller seçilerek elde edilebilir. t1 = [1 𝑎2 𝑏 4 ]3 (9) t2 = [1 𝑎2 𝑏 4 𝑐 5 𝑑 6 ]3 (10) (9) ve (10)’da verilen test takımları sol bağlam ve ileri bağlam kriterleri dikkate alınarak üretildiği için bu kriterleri sağlamaktadır. Elde edilen bu test takımlarının diğer kapsama kriterlerini sağlayıp sağlamadığı şu şekilde test edilir. Öncelikle (9) ve (10)’un Şekil 3.(b)’de verilen uygunluk tablosu ile uyumluluğuna bakılır. Yani test takımlarının endeksleri uygunluk tablosunda verilen endeksler ile aynı mıdır diye kontrol edilir. Böylece, t1 ve t2 için tüm semboller uygunluk tablosu ile uyumlu olduğu görülebilir. Bu durumda üretilen her iki test takımı da uygunluk kapsama kriterini sağlamaktadır. t1 ve t2’nin alt endeksleri uygunluk tablosu aracılığı ile bulunur. Bu durumda (11) ve (12) elde edilir. t1 = [15 𝑎62 𝑏24 ]13 (11) t2 = [15 𝑎62 𝑏24 𝑐35 𝑑46 ]13 (12) Ardından elde edilen alt endekslerin geri kapsama kriterini sağladıkları Şekil 3.(a)’daki tablonun sağ tarafındaki tablo ile uyumlu olduğu çıkarılabilir. Böylece, t1 ve t2 tüm tablolar ile uyumlu olduğu için tüm kapsama kriterlerini sağlamaktadır ve bu durumda bağlam kapsama kriterini de sağlar. 6.2 Test Takımı Üretimini Durdurma ve Test Masrafları Test takımı üretimini durdurmak (Test Termination Criteria) için sağ bağlam kriterini kapsayacak şekilde üretim yapılıyorsa ve tabloya uygunsa “]” sembolü seçildiğinde, bu üretimin durduğunu ifade etmektedir. Aksine sol bağlam kriterini kapsayacak şekilde üretim yapılıyorsa ve eğer tabloya uygunsa “[” seçildiğinde, bu üretimin durduğunu ifade etmektedir. Sol ve sağ bağlam kriterlerinin başlangıç sembolleri sırasıyla “[” ve “]”dır. Dolayısıyla test takımları bu sembollerle başlayıp yine bu sembollerle bitmektedir. Test masrafları ise üretilen test takımlarının uzunluğu (Test Length) ve sayısı ile orantılıdır. Kapsama kriterleri ile maksimum uzunlukta üretilebilecek test takım uzunlukları arasındaki ilişki aşağıda Tablo 2’de verilmektedir. 340 Kapsama Kriterleri Maksimum Test Takımı Uzunluğu Sol, İleri �𝑗 � �𝐶 𝑙𝑙𝑙𝑙 Sağ, İleri �𝑗 � � 𝐶 𝑟𝑟𝑟ℎ𝑡 Sol, Geri � 𝐶⏟𝑖 � 𝑙𝑙𝑙𝑙 Sağ, Geri � 𝐶⏟𝑖 � 𝑟𝑟𝑟ℎ𝑡 Uygunluk |𝑈| Bağlam �𝑗 � , � 𝐶 max{� 𝐶 �𝑗 � , � 𝐶⏟𝑖 � , � 𝐶⏟𝑖 �} 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 Tablo 2. Kapsama Kriterleri ve Test Takımları Uzunluğu Üretilebilecek test takımları sayısı ise yine Tablo 2’te verilen kardinalitelere bağlıdır. Kardinalite hesabı yaparken Dİ’yi oluşturan semboller ve daha da belirleyici olarak bu semboller arasındaki operatörler gözönünde bulundurulur. Bu operatörler Bölüm 3’de verildiği üzere birleşim “+”, bitiştirme “” ve yineleme “*”’dir. Bağlam tablosu girdisi olarak operatörler ile sembol sayısı ilişkisi aşağıdaki gibi özetlenir; �𝑗 � , � 𝐶 • [(a1a2a3 ... an)] → max �� 𝐶 �𝑗 � , � 𝐶⏟𝑖 � , � 𝐶⏟𝑖 �� = 2𝑛 − 1 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 �𝑗 � , � 𝐶 • [(a1a2a3 ... an)*] → max �� 𝐶 �𝑗 � , � 𝐶⏟𝑖 � , � 𝐶⏟𝑖 �� = 2𝑛 − 1 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 �𝑗 � , � 𝐶 • [(a1 + a2 + a3 + ... + an)] → max �� 𝐶 �𝑗 � , � 𝐶⏟𝑖 � , � 𝐶⏟𝑖 �� = 2𝑛 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 �𝑗 � , � 𝐶 • [(a1 + a2 + a3 + ... + an)*] → max �� 𝐶 �𝑗 � , � 𝐶⏟𝑖 � , � 𝐶⏟𝑖 �� = 𝑛2 − 𝑛 + 1 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 𝑙𝑙𝑙𝑙 𝑟𝑟𝑟ℎ𝑡 Üstte verildiği gibi test takımlarının üretildiği tablo eleman sayısı birleşim “+” ve kapama “*” operatörlerinin birlikte verildiği son durumda n sembolden oluşan bir Dİ için 𝑛2 − 𝑛 + 1 yani karesel bir artış göstermektedir. Diğer durumlarda ise artış doğrusaldır. Yani en kötü durumda tablo sembol sayısı 𝑛2 − 𝑛 + 1 olmaktadır. Böylece üretilebilecek maksimum test takımı uzunluğu da 𝑛2 − 𝑛 + 1’dir. Unutulmaması gerekir ki mevcut test kapsama kriterleri, çoğunlukla yalnızca olay bazlı ya da yalnızca durum bazlıdır. Buna rağmen test kapsama kriterleri kübiksel bir artış gösteren sayıda eleman üretmektedir [2]. 341 7 Sonuçlar Bu çalışmada GKA’lar için bir model olarak Dİ’ler verilmiştir ve bu model ile mevcut modeller arasında dönüşümler açıklanmıştır. Ayrıca bu model aracılığı ile test takımları üretimine olanak sağlayan ve literatürde mevcut olmayan kapsama kriterleri tanımlanmıştır. Açıklanan kavramlar ve yöntemler bir örnek üzerinde gerçekleştirilmiş ve elde edilen sonuçlar irdelenmiştir. Önerilen yaklaşımın özelliği, test kapsama kriterleri üretirken, mevcut kuramsal test yöntemlerinin ötesinde, incelenen sistemin yalnızca olaysal değil, aynı zamanda durumsal özelliklerini de göz önünde tutmasıdır. Test süreci masrafında önemli rol oynayan test uzunluğu ise doğrusal, en olumsuz durumda karesel artmaktadır ki bu da mevcut yöntemlere göre büyük bir avantajdır. Bundan sonra yapılacak çalışmalar, ileri sürülen kapsama kriterlerinin GKA’ların testi için öne sürülen diğer çalışmalardaki kapsama kriterleri ile ilişkisinin yanı sıra diğer avantajları ve dezavantajlarını ortaya koymak olarak planlanmaktadır.Örneğin hata bulma kabiliyeti (bulunan hataların sayısı, bulunan hataların arasındaki zaman mesafeleri v.b.) ve masrafları (hata bulma zamanı, tüm test sayısı ve uzunlugu v.b.) gelmektedir. Ayrıca modelleme ve test işleminin bütünsel (holistic) olarak yapılması, yani pozitif (hatalı olmayan modeller ile) ve negatif test (hatalı olan modeller ile) uygulanması diğer bir ileriki çalışmadır. Test üretim sürecinin otomatik hale getirilmesini mümkün kılacak bir aracın geliştirilmesine başlanmıştır. Teşekkür Yazarlar çok değerli tavsiyelerinden ve yardımlarından dolayı Yard.Doç.Dr.Mutlu Beyazıt’a , Yard.Doç.Dr.Nida Gökçe’ye ve sempozyumun anonim hakemlerine teşekkür ederler. Kaynakça 1. Aho, Alfred V., and Jeffrey D. Ullman. Foundations of computer science. Computer Science Press, 1992. 2. Belli, Fevzi, and Christof J. Budnik, "Test minimization for human-computer interaction", Appl. Intell. 26(2), (2007) 161-174. 3. Belli, Fevzi, and K-E. Grosspietsch. "Specification of fault-tolerant system issues by predicate/transition nets and regular expressions-approach and case study." IEEE Transactions on software engineering 17.6 (1991): 513-526. 4. Belli, Fevzi, Christof J. Budnik, Lee White, Event-based modelling, analysis and testing of user interactions: approach and case study. Softw. Test., Verif. Reliab. 16(1), (2006) 3-32. 5. Belli, Fevzi, Extending Regular Languages for Self-Detection and Self-Correction of Syntactical Faults (PhD Thesis in German; Technical Univ. Berlin), Bericht 119 der Gesellschaft für Mathematik und Datenverarbeitung, Oldenburg Verlag, 1978. 342 6. Belli, Fevzi, Mutlu Beyazit, and Atif Memon. "Testing is an event-centric activity." Software Security and Reliability Companion (SERE-C), 2012 IEEE Sixth International Conference on. IEEE, 2012. 7. Belli, Fevzi, Mutlu Beyazit, and Nevin Güler. "Event-Oriented, Model-Based GUI Testing and Reliability Assessment—Approach and Case Study." Advances in Computers 85 (2012): 277-326. 8. Belli, Fevzi, N. Nissanke, Ch. J. Budnik, A. Mathur, "Test Generation Using Event Sequence Graphs", Technical Report, University of Paderborn, 2005. 9. Belli, Fevzi. "Finite state testing and analysis of graphical user interfaces." Software Reliability Engineering, 2001. ISSRE 2001. Proceedings. 12th International Symposium on. IEEE, 2001. 10. Chow, Tsun S. "Testing software design modeled by finite-state machines." IEEE transactions on software engineering 3 (1978): 178-187. 11. David, Rene, and Pascale Thevenod-Fosse. "Minimal detecting transition sequences: application to random testing." IEEE Transactions on Computers29.6 (1980): 514-518. 12. Hopcroft, John E, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages, and Computation. Harlow: Pearson Addison-Wesley, 2014. 13. Liu, Pan, and Huaikou Miao. "Theory of test modeling based on regular expressions." International Workshop on Structured Object-Oriented Formal Language and Method.", Springer International Publishing, 2013. 14. Memon, Atif M. "An event-flow model of GUI-based applications for testing." Software Testing Verification and Reliability 17.3 (2007): 137-158. 15. Memon, Atif M., Mary Lou Soffa, and Martha E. Pollack. "Coverage criteria for GUI testing." ACM SIGSOFT Software Engineering Notes 26.5 (2001): 256-267. 16. Myhill, J., “Finite Automata and the Representation of Events”, Wright Air Devel. Command, TR 57-624, pp. 112-137 (1957). 17. Ravi, Srivaths, Ganesh Lakshminarayana, and Niraj K. Jha. "TAO: Regular expression- based register-transfer level testability analysis and optimization." IEEE Transactions on Very Large Scale Integration (VLSI) Systems 9.6 (2001): 824-832. 18. Shaw, Alan C. "Software specification languages based on regular expressions." Software Development Tools. Springer Berlin Heidelberg, 1980. 148-175. 343