Model-Tabanlı ve Rastgele Karma Yöntem

Benzer belgeler
Android Uygulamaları için Kötü Huylu Test Yaratımı

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi GÜVENLİK VE İZİNLER. BLM401 Dr.Refik SAMET

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi YAYIN ALICILARI. BLM401 Dr.Refik SAMET

MOBİL UYGULAMA GELİŞTİRME

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi İNTENT VE İNTENT. BLM401 Dr.Refik SAMET

MOBIL UYGULAMA GELIŞTIRME

Android Platformunda Uygulama Geliştirme.

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Android Kaynakları (Resources)

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi KULLANICI ARAYÜZ. BLM401 Dr.Refik SAMET

SİGORTACILIK İÇİN FARKLI BİR GELECEK TASARIMI

Android de Çökme Tespitini İyileştirme Amaçlı Model-Tabanlı ve Rastgele Karma Yöntem

Proje 1. Arayüz Tasarımı

Bireysel İnternet Şubesi

MOBİL UYGULAMA GELİŞTİRME

ANDROID İŞLETİM SİSTEMLERİ İÇİN KURULUM. Kurulum Ön Hazırlık (Tamamını Okumadan Lütfen KURULUMA BAŞLAMAYIN )

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

AMACSEO TEMASI KULLANIM KILAVUZU. AmacSeo temasının Amacdizayn.com tarafından hazırlanmış kullanım kılavuzudur. 1

SAP Sisteme Kayıtlı Personel Fotoğrafını Dışarı Alma

19 Şubat 2016 Cuma

Türk Telekom Güvenlik Güvenli Aile(Safe Family) Ürünü Kurulum Kılavuzu

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi SERVİS BİLEŞENLERİ. BLM401 Dr.Refik SAMET

Makey Oz Modülünü Bilgisayardan Programlamak Uygulama Kurulumu

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

ETA Work İLE ETA CEBİNİZDE

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Akıllı Akü den el terminaline veri aktarımı aşağıda belirtilen basamaklar takip edilerek gerçekleştirilir:

Vodafone Akıllı Bas Konuş Servisi Masaüstü Uygulaması Kullanım Kılavuzu

İçindekiler 1. ConnectProf a Geçiş Entegrasyon Adımları... 3 a. Paket Seçimi... 3 b. Link Ekleme ve Analiz... 4 c. Analiz Sonucu ve Alan

Bireysel İnternet Şubesi

Netsis CRM. Her yerden erişim Diğer web servislerinden faydalanma (Google Takvim, Haritalar, Outlook)

SMARTOXY. Deteksiyon Parametreleri

FAN SELECTOR FAN SELECTOR FAN SEÇİM YAZILIMI.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Listview Kullanımı. Aşağıdaki örnekte bir ListView'ı birkaç ülke ismiyle dolduracağız.

SIMAN KULLANIM KILAVUZU

SP-1101W/SP-2101W Hızlı Kurulum Kılavuzu

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

1. Prestigio MultiPad 2. AC Adaptör 3. Taşıma Kılıfı 4. USB Kablosu 5. Hızlı Başlangıç Klavuzu 6. Garanti Kartı 7. Yasal Güvenlik Uyarıları

AKINSOFT CMS (İçerik Yönetim Sistemi)

NB Macro Kullanımı Hakkında Genel Bilgiler

YABİL. Açık Lise Öğrencilerinin Maol.meb.gov.tr den Alımı KILAVUZU. Ocak


Android e Giriş. Öğr.Gör. Utku SOBUTAY

SU KALITE SİSTEMİ. Türkiye Halk Sağlığı Kurumu

Trimble icapture Mobil Yazılımı. Ömer ALPORAL

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Malzeme Detay Listesi

Öğr. Gör. Serkan AKSU 1

emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı

Android Ders Notları

Fatura Dinamik Kodlama İyileştirmeleri

SLCM Program Müfredatlarının (Gereksinim Kataloğu) yaratılması

İÇİNDEKİLER VII İÇİNDEKİLER

İÇİŞLERİ BAKANLIĞI KAYITÇI KULLANIM TALİMATI

1. Prestigio MultiPad 2. Sarj Adaptörü 3. Taşıma Kılıfı 4. USB Kablosu 5. Hızlı Başlangıç Klavuzu 6. Garanti Belgesi 7. Yasal ve Güvenlik Uyarıları

SMS İŞLEMLERİ MODÜLÜ

Kablosuz N USB Adaptör

ASP.NET ile Bir Web Sitesi Oluşturma

GRAFİK TASARIM. ACTION SCRIPT 3.0 Ders1 YARD. DOÇ. DR. MEHTAP YALÇINKAYA

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

BIL684 Nöron Ağları Dönem Projesi

Multitek IP Interkom. VIP70 Somfy Genel Bilgi Dokümanı

Mobil Uygulama Kullanma Kılavuzu

KULLANICI KILAVUZU: UEA FİX KULLANICILARININ SSLVPN ERİŞİMİ İMKB İÇİNDEKİLER

Pencereler Pencere Özellikleri

Model No : IP610 IP Kamera Kurulum/Kullanım Kılavuzu

IDA Pro ile Remote Linux Debugging

Arayüz Geliştirme Dokümantasyonu

ODTÜ BLOG SERVĐSĐ ve BLOG HAZIRLAMA

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

MOBİL CİHAZLARDA KULLANIM REHBERİ

Sanal Santral A.Ş. Çözümleri

DS150E Kullanıcı El Kitabı. Dangerfield June V3.0 Delphi PSS

SPSS (Statistical Package for Social Sciences)

Mobil uygulama kullanıcı kılavuzu

Üst Düzey Programlama

Google Play Zararlısı İnceleme Raporu

Ana Menü. Ana Menü (Main Page) İçerisindekiler;

Bireysel İnternet Şubesi

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Bilgisayar Programcılığı Ön Lisans Programı WEB EDİTÖRÜ. Öğr. Gör. Rıza ALTUNAY

Sorumluluk Sınavlarının Hazırlanması YABİL. Sınav Planlama Programı İş

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

T.C GAZİOSMANPAŞA ÜNİVERSİTESİ

VIO ERP12 Muhasebe Kurulum

Bilgisayar en yavaş parçası kadar hızlıdır!

GLIDA EWD 7979 Dokunmatik Akıllı Çocuk Saati Hızlı Kurulum ve Kullanım Kılavuzu

T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

SATIŞ EKRANININ KULLANIMI:

1 - Button Kontrolu Nasıl Yapılır?

Merkezi İşlem Birimi Kavramı (CPU)

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

General myzyxel.com myzyxel.com Servis Yönetim Servis Name Content Filter Name Password myzyxel.com Submit Redirected URL

Transkript:

Android de Çökme Tespitini İyileştirme Amaçlı Model-Tabanlı ve Rastgele Karma Yöntem Yavuz Köroğlu Mustafa Efendioğlu Alper Şen Bilgisayar Mühendisliği Bölümü Boğaziçi Üniversitesi, İstanbul/Türkiye yavuz.koroglu@boun.edu.tr depend.cmpe.boun.edu.tr 11. Ulusal Yazılım Mühendisliği Sempozyumu (UYMS 17), Yazılım Test Mühendisliği Alt Alanı (YTM 17)

Günümüzde Android Kullanımı Ortalama her günümüzün 3 saati yukarıdaki gibi geçiyor!

Günümüzde Android Kullanımı Ortalama her günümüzün 3 saati yukarıdaki gibi geçiyor! Sürekli hata mesajları alıyoruz.

Günümüzde Android Kullanımı Ortalama her günümüzün 3 saati yukarıdaki gibi geçiyor! Sürekli hata mesajları alıyoruz.

Günümüzde Android Kullanımı Ortalama her günümüzün 3 saati yukarıdaki gibi geçiyor! Sürekli hata mesajları alıyoruz.

Günümüzde Android Kullanımı Ortalama her günümüzün 3 saati yukarıdaki gibi geçiyor! Sürekli hata mesajları alıyoruz.

Otomatik Android Grafik Kullanıcı Arayüzü (GKA) Testi GKA Testi Tuşlara tıkla, yazı yaz, sürükle bırak, kaydır, interneti aç/kapa... Otomatik Olmazsa Android marketi > 2.2M uygulama. Bu kadar uygulamanın testini nasıl yapacağız?

Bir Android Uygulamasının (.APK Dosyası) İç Yapısı Statik Yapı 1 İcra edilebilir.dex dosyası, 2 AndroidManifest.xml, ve 3 Diğer kaynaklar - resimler, sesler vs. AndroidManifest.xml Aktivite İsimleri, Başlatılabilir Aktiviteler, ve İzinler - Kimlik bilgileri vs..dex Dosyası Java sınıflarından oluşur. Her sınıfın metodları vardır.

Android için Java Sınıfları (Java Classes) Sınıf Çeşitleri 1 Aktivite (Activity): Uygulamanın farklı ekranlarını temsil eder.

Android için Java Sınıfları (Java Classes) Sınıf Çeşitleri 1 Aktivite (Activity): Uygulamanın farklı ekranlarını temsil eder. Başlatılabilir Aktivite: Uygulamanın ilk açılan aktivitesi.

Android için Java Sınıfları (Java Classes) Sınıf Çeşitleri 1 Aktivite (Activity): Uygulamanın farklı ekranlarını temsil eder. Başlatılabilir Aktivite: Uygulamanın ilk açılan aktivitesi. 2 Servis (Service): Arkaplanda çalışan işleri temsil eder. Aktiviteler tarafından çalıştırılıp durdurulabilir.

Android için Java Sınıfları (Java Classes) Sınıf Çeşitleri 1 Aktivite (Activity): Uygulamanın farklı ekranlarını temsil eder. Başlatılabilir Aktivite: Uygulamanın ilk açılan aktivitesi. 2 Servis (Service): Arkaplanda çalışan işleri temsil eder. Aktiviteler tarafından çalıştırılıp durdurulabilir. 3 İçerik Sağlayıcısı (Context Provider): Çeşitli servislerden sağlanan bilgileri ekrana dinamik olarak aktarmak için kullanılır. Servislerle bağlantılı olarak çalışır.

Android için Java Sınıfları (Java Classes) Sınıf Çeşitleri 1 Aktivite (Activity): Uygulamanın farklı ekranlarını temsil eder. Başlatılabilir Aktivite: Uygulamanın ilk açılan aktivitesi. 2 Servis (Service): Arkaplanda çalışan işleri temsil eder. Aktiviteler tarafından çalıştırılıp durdurulabilir. 3 İçerik Sağlayıcısı (Context Provider): Çeşitli servislerden sağlanan bilgileri ekrana dinamik olarak aktarmak için kullanılır. Servislerle bağlantılı olarak çalışır. 4 Yayın Alıcısı (Broadcast Reciever): Harici olayları (external events) algılayıp buna göre belirli kodları çalıştıran yapılardır. Aktivitelerden çalıştırılmazlar. Harici olaylarla çalışırlar.

Android için Java Sınıfları (Java Classes) Sınıf Çeşitleri 1 Aktivite (Activity): Uygulamanın farklı ekranlarını temsil eder. Başlatılabilir Aktivite: Uygulamanın ilk açılan aktivitesi. 2 Servis (Service): Arkaplanda çalışan işleri temsil eder. Aktiviteler tarafından çalıştırılıp durdurulabilir. 3 İçerik Sağlayıcısı (Context Provider): Çeşitli servislerden sağlanan bilgileri ekrana dinamik olarak aktarmak için kullanılır. Servislerle bağlantılı olarak çalışır. 4 Yayın Alıcısı (Broadcast Reciever): Harici olayları (external events) algılayıp buna göre belirli kodları çalıştıran yapılardır. Aktivitelerden çalıştırılmazlar. Harici olaylarla çalışırlar. 5 Diğer Sınıflar: java.lang.object sınıfından türeyen diğer bütün sınıflar.

Bir Android Uygulaması Çalışırken GKA Durumu (GUI State) Aşağıdakilerin bütünü bir GKA durumu oluşturur: 1 Java Paketi İsmi (Java Package name), 2 Aktivite İsmi, 3 Bağlamsal Durumlar (WiFi, Oryantasyon vb.), 4 Grafik Bileşenleri - Boyutları, etiketleri, etkileşilebilirliği vb.

Bir Android Uygulaması Çalışırken GKA Eylemi (GUI Action) Kullanıcı tarafından gerçekleştirilen olaylar: yaz, tıkla, kaydır vb.

GKA Eylemleri Listesi (List of GUI Actions) Tablo: GKA Eylemleri Listesi Bağlamsal olmayan Param1 Param2 Param3 Param4 Param5 x y - - - uzun x y - - - metin x y string - - kaydırma x1 y1 x2 y2 süre menü - - - - - geri - - - - - Bağlamsal bağlanırlık bluetooth konum uçuşmodu uyku Parametre açık/kapalı/değiştir açık/kapalı/değştir gps/gps&ağ/kapalı/değiştir açık/kapalı/değiştir açık/kapalı/değiştir Özel Param1 Param2 Param3 Param4 Param5 yenidenbaşlatmak paket aktivite - - -

Monkey Monkey Rastgele 1 Sistem olayları ve 2 GKA eylemleri yaratır. İşletim sistemi ile beraber gelir. Çok hızlı, saniyede binlerce olay yaratabilir.

Monkey Avantaj/Dezavantajları Avantajları Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

Monkey Avantaj/Dezavantajları Avantajları menü Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

Monkey Avantaj/Dezavantajları Avantajları More Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

Monkey Avantaj/Dezavantajları show arrow view Avantajları Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

Monkey Avantaj/Dezavantajları Avantajları menü Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

Monkey Avantaj/Dezavantajları Avantajları cache view Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

Monkey Avantaj/Dezavantajları Avantajları Monkey bu çökmeyi kısa sürede BULAMAZ. Çok derinde. Hız Olay çeşitliliği Dezavantajları Saçma girdiler Yüzeysellik Monkey; PUMA, DynoDroid, SwiftHand, Sapienz, ve A 3 E den daha çok çökme tespit etmektedir.

AndroFrame AndroFrame Otomatik, Model öğrenen, ve Kara-kutu test aracı. _ yenidenbaşlatmak v1 v2 metin1 metin2 Özellikler v1' v2' v1'' v2'' Sonlu durum modeli. Kaynak koduna gerek duymaz. Eylem seçimi: Makine öğrenmesi tabanlı. metin1 v1''' v3 metin2

AndroFrame Örnek Eylem: yenidenbaşlatmak com.tum.yahtzee MainActivity _ yenidenbaşlatmak v1

AndroFrame Örnek Eylem: 200 390 ( play) _ yenidenbaşlatmak v1 v2

AndroFrame Örnek Eylem: 200 410 ( ok) _ yenidenbaşlatmak v1 v2

AndroFrame Örnek Eylem: metin 200 270 12345 (metin1) _ yenidenbaşlatmak v1 v2 metin1

AndroFrame Örnek Eylem: yenidenbaşlatmak com.tum.yahtzee MainActivity _ yenidenbaşlatmak v1 v2 metin1

AndroFrame Örnek Eylem: metin 200 270 12345 (metin1) _ yenidenbaşlatmak v1 v2 metin1

AndroFrame Örnek Eylem: metin 200 330 12345 (metin2) _ yenidenbaşlatmak v1 v2 metin1,metin2

AndroFrame Örnek Eylem: 200 390 ( play) _ yenidenbaşlatmak v1 v2 v3 metin1,metin2

AndroFrame Örnek Eylem: 200 390 ( play) _ yenidenbaşlatmak v1 v2 v3 metin1 metin2 v1'

AndroFrame Eylem Önceliklendirilmesi Destekli Öğrenme (Reinforcement Learning). 80 uygulamanın modelleri üzerinden aktivite kapsamasını artıracak soyut durum-eylem ikilileri öğrenme. Durumları içlerinde bulundurdukları eylem sayısına göre soyutlama ( 1, 3, 8, 15, > 15). Eylemleri tiplerine göre soyutlama (, metin, vb.). Yeni test üretilirken daha yüksek skorlu ikililere daha çok ihtimal vermek.

AndroFrame Avantaj/Dezavantajları Avantajlar Daha çok aktivite keşfediyor. Model-tabanlı test olanağı sağlıyor. Dezavantajlar Daha az çökme tespit ediyor. Yavaş.

AndroFrame-Monkey (AFM) Ana Fikir AndroFrame i T/2 süre çalıştıralım. Kalan T/2 sürede de keşfettiğimiz her aktivitede ayrı ayrı Monkey çalıştıralım.

Sonuçlar Deneyler F-Droid sitesinden rastgele seçilmiş 20 uygulama, Her uygulama için 10 ar dakika. Aktivite Kapsaması ve Çökme Tespiti Ölçümü Deneylerin üçer kere tekrarlanması. AFM 27.7 54.73 Monkey 22 20.85 AndroFrame 6 52.76 Aktivite Kapsaması (%) Tespit Edilen Hata Sayısı

Gelecek Çalışmalar AFM çalışırken, her aktivite için Monkey eşit süre harcıyor. Aktiviteye göre Monkey i farklı oranlarda çalıştırmak (Geri-Dönüm Güdümlü Monkey Testi - Feedback Directed Monkey Testing). Deney sayısını artırmak ve diğer araçları da kıyaslamaya katmak, Sınıf, metod, ve kod kapsaması da toplamak, Kapsama ve çökme tespitlerinin zamana bağlı değişimini inceleyerek tespit ve kapsama artırım hızları hakkında yorum yapmak.

Teşekkürler...