GTAC 2015: Sunular

Açılış Konuşmaları

Yvette Nameth (Google)

Açılış Konuşması

Jürgen Allgayer (Google)

Uygulamalar Arası/Cihazlar Arası Test'in Uber Challenge

Apple Chow (Uber) ve Bian Jiang

Bağlantılar: Video, Slaytlar

Mart 2015'te Uber'e katıldıktan kısa bir süre sonra, mobil uygulamalarımızın kullanıcı arayüzü test araçlarını incelerken Uber'e özgü bir sorunla karşılaştık. Birçok sağlık testimiz, uçtan uca test senaryosunu tamamlamak için yolcu uygulamamızın ve sürücü uygulamamızın birbiriyle iletişim kurmasını/koordine etmesini gerektirir. Bu konuşmada, Octopus adlı platformdan bağımsız çözümümüz hakkında konuşacak ve farklı cihazlarda çalışan farklı uygulamalar arasındaki iletişimi nasıl koordine ettiğini ele alacağız. Bu çözüm, farklı uygulamalarda veya cihazlarda koordinasyon/iletişim gerektiren tüm testler (ör.çok kullanıcılı bir oyun, çok kullanıcılı mesajlaşma/iletişim uygulaması vb.) için kullanılabilir.

Robot Destekli Test Otomasyonu

Hans Kuosmanen (OptoFidelity) ve Natalia Leinonen (OptoFidelity)

Bağlantılar: Video, Slaytlar

OptoFidelity, Ar-Ge testi otomasyon çözümlerini geliştirme ve sunma konusunda 10 yıllık deneyime sahip Finlandiyalı yüksek teknolojili bir şirkettir. Bu konuşmada, mobil cihaz kullanıcı arayüzü performans testlerinde kullanılan ve rahatsız edici olmayan test yöntemleriyle ilgili deneyimlerimiz ve görüşlerimiz ele alınacaktır. Chrome OS ekibinin Android ve ChromeOS cihazlarındaki uçtan uca gecikmeyi ölçmek için OptoFidelity'den bir robot çözümü kullandığını biliyor muydunuz?

Eğlence ve Kâr için Zincirli Testereler: Mobil Platformlar Arası Entegrasyon Testi'nden Çıkarılan Dersler

Dan Giovannelli (Google)

Bağlantılar: Video, Slaytlar

Mobil uygulama geliştirmek zordur. Test altyapısı oluşturmak zordur. Platformlar arası çalışmalar yapmak zordur. Üçünü birleştirdiğinizde felaket için bir tarif var. Bu konuşmada Dan Giovannelli, platformlar arası mobil test altyapı projesi üzerinde çalışırken yaşadığı deneyimi anlatacak. Doğru olan, tartışılan (çok) yanlış olan noktaları ve kullanmaya başlamak istediği dersleri anlatacak. Mobil olmayan mühendisler için mobil araçlar tasarlamayla ilgili analizlere bakın. Matris'in ne olduğunu ve kendi oyununda nasıl başarılı olunacağını öğrenmek için bizi takip edin.

Gerçek Cihazları Kullanarak Mobil Oyun Testi Otomasyonu

Jouko Kaasila (Bitbar/Testdroid)

Bağlantılar: Video, Slaytlar

Günümüzde uygulama mağazalarında en çok para kazandıran kategori mobil oyunlardır. Bu nedenle her oyunun, her kullanıcının cihazında çalıştığından emin olmak her oyun geliştiricisi için yüksek önceliğe sahiptir. Bunu doğrulamanın önemine rağmen, mobil oyunların test edilmesini otomatikleştirmek için çok az örnek veya çerçeve bulunmaktadır. Bu durum, oyun geliştiricilerin oyun şirketlerinin küresel pazarlarını kapsaması gereken ölçüde ölçeklenmeyen manuel testlere başvurmalarını zorunlu kılar. Bunun başlıca nedenlerinden biri, geleneksel uygulamalara maruz kalmamaları nedeniyle oyunların doğrudan ekrana erişmesi, OS tarafından sağlanan tüm kullanıcı arayüzü hizmetlerini atlaması ve çoğu test otomasyonu çerçevesini yararsız hale getirmesi nedeniyle oyunların mobil uygulamalar olarak benzersiz yapısıdır.

Neyse ki bazı yaratıcılığı ve herkesin kullanımına açık kitaplıkları kullanarak oyunlardaki gerçek mobil cihazlarda test otomasyonunu teşvik etmek için standart mobil test otomasyonu çerçevelerinden yararlanabilirsiniz. Sunusunda Testdroid'den Jouko Kaasila gerçek dünyadan örnekler ve bazı örnek kodlarla üç farklı yaklaşımdan bahsedecek.

Çorba Mantıları Bileşenlerini Test Etme

Toni Chang (Google)

Bağlantılar: Video, Slaytlar

Güvenilir olmayan testleri test etmek için çok fazla zaman harcayan kişiler, testleri ayrıştırmamız gerektiğini kabul eder. Ancak bunlardan bazıları zorlaşır, emin olamayabilir. Diğeri ise tüm senaryoları doğrulamak için E2E testine ihtiyaç duyduğumuzu düşünen ekip arkadaşlarının zorbalığa maruz kalabileceği. Ürününüzü bileşenlere alışkın olmadığınızda fikri anlamak zaman zaman zor olduğundan, parçalara ayrılamayan bir parçayı parçalayıp bileşenleri bu testlere nasıl uygulayacağınızı göstermek için soyut bir çorba soyutlama örneğini kullanacağız.

E2E testini bileşen ürününe dönüştürmenin eğlenceli bir yolculuğunu tamamlayacağım ve bu sayede, son ürüne güvenebilirsiniz. Bu bilgilerin, kendi ürünlerinize baktığınızda size yeni bir bakış açısı sunacağını umuyoruz.

Chromecast Test Otomasyonu

Brian Gogan (Google)

Bağlantılar: Video, Slaytlar

Nesnelerin interneti, bağlı cihazların çoğalmasına yol açtı. Çeşitli birlikte çalışabilirlik cihazları genelinde davranışın doğrulanması önemli bir test adımıdır. Chromecast'i test etmek için çeşitli yaklaşımlar benimsendi. Üründen güvenilir kalite sinyalleri oluşturmak amacıyla geliştirdiğimiz test çerçeveleri, laboratuvar altyapısı ve test araçları hakkında bilgi ediniyoruz. Gürültülü ağ kullanan ortamlarda çalışan bir ürünün test edilmesindeki zorluklar ayrıntılı bir şekilde açıklanmaktadır. Chromecast gibi cihazlar için test araçlarının daha başlangıç aşamasında olduğunu ve yazılım testi mühendisliğinde yenilik fırsatları sunduğunu düşünüyoruz.

Android Uygulama Testi için Robotları Kullanma

Dr.Shauvik Roy Choudhary (Georgia Teknoloji/Checkdroid)

Bağlantılar: Video, Slaytlar

Maymun gibi yazılım robotları, herhangi bir manuel işlem gerekmeden bir Android uygulamasını test etmek için kullanılabilir. Akademik çalışmalar için önerilen ancak Android uygulamalarını artırmak için test girişlerini otomatik olarak oluşturmayı amaçlayan birçok araç mevcuttur. Bu konuşmada, bir dizi temsili test oluşturma aracı sunacak ve güçlü yönlerini ve sınırlamalarını vurgulamak için karşılaştırmalı bir çalışma sunacağım. Bu araçların dahili özellikleri ve uygulamanızı test etmek için bu araçları nasıl kullanabileceğiniz hakkında bilgi edineceksiniz. Çalışmanın ayrıntılarına, araçlarla birlikte bir sanal makine kurulumundan ulaşabilirsiniz: http://bear.cc.gatech.edu/~shauvik/androtest/

Testleriniz Sorunsuz Değil

Alister Scott (Otomat)

Bağlantılar: Video, Slaytlar

Flaky testleri otomatik test mühendislerinin hata ayıdır. Birisi (muhtemelen Alister) "dezenformasyon aynı testleri tekrar tekrar çalıştırıp farklı sonuçlar elde ediyor" dediği gibi. Flaky testler umutsuzluğa neden olmaz, ancak güvenilir olmayan testler gibi bir şey de vardır. Belki bu soruna farklı bir bakış açısıyla bakmamız gerekir. Daha kararlı, daha test edilebilir sistemler geliştirmeye daha fazla zaman ayırmalı ve bu testlere dayanıklı ve kalıcı testler hazırlamaya odaklanmalıyız. Alister, test hatalarının sistemin altına ne zaman gerçek sorunları gizlediğiyle ilgili bazı örnekler ve daha iyi sistemler oluşturarak test kusurunu çözmenin nasıl mümkün olduğuyla ilgili örnekler paylaşacak.

Büyük Ölçekli Otomatik Görsel Test

Adam Carmi (Uygulama Araçları)

Bağlantılar: Video, Slaytlar

Otomatik görsel test, geliştirici / test topluluğunda yaygın olarak karşılaşılan bir trenddir. Bu konuşmada, görsel testin ne olduğunu ve neden otomatik olması gerektiğini öğreneceksiniz. Görsel test otomasyonuyla ilgili bazı teknolojik zorlukları ayrıntılı olarak inceleyip modern araçların bunların üstesinden nasıl geldiğini göstereceğiz. Tarayıcılar arası ve cihazlar arası görsel testler çalıştırmayı mümkün kılan en son teknolojileri tanıtacağız ve büyük ölçekli görsel testlerle başarıya ulaşmanıza yardımcı olacak önemli ipuçları vereceğiz.

Regresyon Testi Test Ediyor

Karin Lundberg (Twitter) ve Puneet Khanduri (Twitter)

Bağlantılar: Video, Slaytlar

Ekibiniz bir hizmetin önemli ölçüde yeniden düzenlemesini tamamladı. Tüm birim ve entegrasyon testleriniz başarılı oldu. İstek gönderildi. Ama henüz işiniz bitmedi. Şimdi, hiçbir şeyi kırmadığınızdan ve henüz yakalamadığınız tuhaf hataların olmadığından emin olmanız gerekiyor. Diffy'yi işe koyuyoruz.

Kodunuzun sağlam olmasını sağlayan araçların (ör. birim veya entegrasyon testleri) Diffy, yeni hizmetinizin örneklerini ve eski hizmetinizi yan yana getirerek değiştirilmiş hizmetinizin davranışını karşılaştırır, örnek istekleri her bir yönlendirmeye yönlendirir, yanıtları karşılaştırır ve bu karşılaştırmalardan kaynaklanan regresyonları geri verir.

Ayrıca, kısa süre önce bu aracı kullanıma sunduk ve Twitter'ın açık kaynak projeleri arasında en popülerlerden biri haline geldi.

Android Uygulamaları için Otomatik Erişilebilirlik Testi

Casey Burkhardt (Google)

Bağlantılar: Video, Slaytlar

Bu konuşmada, Android platformundaki temel erişilebilirlik imkanları tanıtılacak ve erişilebilirlikle ilgili bazı yaygın geliştirici hataları ortaya çıkacaktır. Yeni Android Erişilebilirlik Test Çerçevesi ve Espresso ile Robolectric test çerçevelerine entegrasyonu hakkında bilgi edineceksiniz. Son olarak, mevcut Android proje testlerinize otomatik erişilebilirlik kontrolünü eklemenin ne kadar kolay olduğunu öğreneceksiniz.

İstatistiksel Veri Örnekleme

Celal Ziftci (Google) ve Ben Greenberg (MIT yüksek lisans öğrencisi)

Bağlantılar: Video, Slaytlar

Testlerde üretim verilerinin bir örneğini kullanmak yaygın bir uygulamadır. Örnekler:

  • Tutarlılık Testi: Herhangi bir hata olup olmadığını görmek için sisteminize üretim verilerinin bir örneğini aktarın.
  • A/B Testi: Büyük miktarda üretim verisi alın, bunları sisteminizin mevcut ve yeni sürümlerinde çalıştırın ve sonuçları inceleme için çeşitlendirin.

Üretim verilerinin bir örneğini almak için ekipler genellikle aşağıdakiler gibi anlık çözümler kullanır:

  • Belirli alanların (ör. sayısal alanlar) dağılımına manuel olarak bakma,
  • Tamamen rastgele bir örnek seçiliyor

Ancak bu yaklaşımların ciddi bir dezavantajı vardır: Nadir görülen olayları (ör.nadir durumlar) kaçırabilirler. Bu da üretimde yakalanmamış hata riskini artırır. Ekipler bu riski azaltmak için çok büyük örnekler seçer. Ancak bu kadar büyük örneklerin başka dezavantajları var:

  • Nadir etkinlikler hâlâ kaçırılabilir.
  • Testlerin çalışma süresinde
  • Farklar insanın anlayamayacağı kadar büyük ve çok tekrarlanıyor.

Bu konuşmada, üretim verilerinden "iyi" bir örnek seçmek için aşağıdaki özelliklere sahip yeni bir istatistiksel veri örnekleme tekniği öneriyoruz:

  • Nadir olayların atlanmayacağını garanti edersiniz.
  • Yinelenen örnekleri kaldırarak seçilen örneğin boyutunu en aza indirir.

Tekniğimiz nadir/sınırlardaki vakaları yakalar, örnek boyutunu en düşük düzeyde tutar ve geliştiriciler üzerindeki test çıkışları/aralıkları manuel olarak üzerindeki yükü azaltır. Ayrıca, paralel yürütmeyi de (ör.MapDown) destekler. Böylece, örneği seçmek için büyük miktarda veriyi kısa bir zaman aralığında işleyebilirsiniz.

Nest Automation Altyapısı

Usman Abdullah (Nest), Giulia Guidi (Nest) ve Sam Gordon (Nest)

Bağlantılar: Video, Slaytlar

Nest'in Thoughtful Home vizyonu, evinizi daha güvenli, daha verimli ve daha bilinçli hale getirmek için birlikte çalışan, bağlantılı ve akıllı cihazlar içerir. Bu konuşma, bu vizyonu gerçeğe dönüştürmek için tasarlanmış otomasyon altyapısına ve test araçlarına odaklanacak. Nest içindeki çeşitli ekipler, otomatik regresyon testi ve analizi için hem platformlar arası hem de cihaza/özellike özel sistemler üzerinde çalışmaktadır. Gerçek dünyadaki ürün testlerinden alınan belirli örneklerden yararlanarak döngü testi altyapısında ve güç regresyon analizi araçlarında ürünler arası donanımın yanı sıra kamera ve hareket algılamaya özel araç setlerini de ele alacağız.

Etkinlik Oluşturucular

Roussi Roussev (Splunk)

Bağlantılar: Video, Slaytlar

Bu konuşmada, Splunk'ta yazılım etkinliği oluşturma araçları geliştirme ve kullanma deneyimlerimiz ele alınmaktadır. Büyük ölçekte deneysel makineler çalıştırmadan etkinlik üreticilerinin fiziksel dünyayı anlamak için vazgeçilmez olduğu parçacık fiziğinden ilham alan günlük oluşturma araçları, modern ve eski üçüncü taraf yazılımlarıyla sayısız entegrasyonumuzu test etme yöntemimizi iyileştirdi. Bu konuşmada, temel işlevler ve gerçekçi günlükler oluşturmayla ilgili zorluklar ele alınmaktadır.

Çok İşli Test Sentezi

Murali Krishna Ramanathan (Hindistan Bilim Enstitüsü, Bangalore)

Bağlantılar: Video, Slaytlar

Çok statik ve yetersiz senkronizasyondan kaynaklanan, çok iş parçacıklı kitaplıklarda küçük eşzamanlılık hatalarının tespit edilmesi genellikle yalnızca statik teknikler kullanılarak kesin olarak belirlenemez. Öte yandan dinamik algılayıcıların etkinliği, veri yarışları, kilitlenmeler ve atmosfer ihlalleri dahil olmak üzere eşzamanlılık hatalarını tespit etmek ve tetiklemek için kullanılabilen çok iş parçacıklı test paketlerine bağlıdır. Genellikle, bu tür çok iş parçacıklı testlerde, bir hatanın açığa çıkması için uygun şekilde paylaşılan çağrılarla nesne içeren belirli bir yöntem kombinasyonu çağrılmalıdır. Hatayla ilgili bilgi sahibi olmadan bu tür testlerin oluşturulması zor olabilir.

Bu konuşmada, iş parçacığı güvenliği ihlallerini tespit etmek için testlerin sentezlenmesine yönelik hafif ve ölçeklenebilir bir teknik sunacağım. Çok iş parçacıklı kitaplık ve sıralı test paketi göz önüne alındığında, sıralı yürütme izlerini inceleyen ve aynı zamanda eşzamanlılık hatasının tetiklenmesine neden olan durumlara kitaplık yöntemi çağrıları aracılığıyla paylaşılan nesneleri yönlendiren eşzamanlı bir istemci programı oluşturan tam otomatik bir analiz anlatacağım. İyi test edilmiş çeşitli Java kitaplıklarıyla ilgili deneysel sonuçlar, yaklaşımımızın ne kadar etkili olduğunu gösterir ve çok sayıda karmaşık hatayı ortaya çıkarır.

Netflix'te Akış Denemelerini Etkinleştirme

Mineral Mishra (Netflix)

Bağlantılar: Video, Slaytlar

69 milyondan fazla kullanıcının canlı yayın deneyimi Netflix için çok büyük önem taşıyor. Hızlı bir şekilde bunu iyileştirmek için uyarlanabilir akış algoritmalarını JavaScript katmanına taşıdık. Bu durum, istemci akış yazılımını doğrudan tüketicinin akış deneyimini doğrudan etkileyen ve sık sık yayınlayan benzersiz bir zorluktu. Hizmet uygulamaları için geniş çapta ve başarıyla benimsenen sürekli dağıtım paradigmasını ödünç alarak bu sistemi, check-in yaşam döngüsü boyunca riski ortadan kaldırmak ve güncellemeleri sık sık sunmak için kullandık. Bu konuşmada, yazılım güncellemelerini etkinleştirmek için bu paradigmanın temel bir bileşenini açıklayacağız. Mevcut istemci ile durumu doğru bir şekilde karşılaştırmak için JavaScript istemcisinin ve araçlarının kullanıma sunma prosedürünü ayrıntılı olarak inceleyeceğiz. Bu süreçteki zorlukları da paylaşacağız.

İnternet'i taklit edin

Yabin Kang (LinkedIn)

Bağlantılar: Video, Slaytlar

Linkedin'de, hizmet düzeyi entegrasyon testleri için tüm giden trafikle alay etmeye yardımcı olan yeni bir aldatma sisteminden bahseden internet, biraz da Linkedin sahtekarlığı stratejisine genel bakıştan bahsedecek. Öğrendiklerimizi ve öğrendiklerimizi herkesle paylaşın.

GPS İzleme İstasyonu Alıcısının Etkili Testi

Andrew Knodt (Lockheed Martin)

Bağlantılar: Video, Slaytlar

Hava Kuvvetleri tarafından kullanılan GPS izleme istasyonlarının bakımı zorlaştı ve bu istasyonların yerine GPU ile hızlandırılmış Yazılım Tanımlı Radyo (SDR) yaklaşımı getiriliyor. Bu özel GPS alıcısının benzersiz test zorluklarıyla ilgili genel bir bakış ve çeşitli test yaklaşımlarının incelenmesi sunulacaktır. Bu test yaklaşımları bir GPS uygulaması üzerindeyken diğer üretim düzeyindeki SDR çalışmalarına kolayca uygulanabilir.

Giyilebilir Cihazlarda Otomasyon

Anurag Routroy (Intel)

Bağlantılar: Video, Slaytlar

Giyilebilir teknolojinin kişisel ve ticari kullanımındaki artışla birlikte, Android pazarında sağlam bir alanı olan tüm şirketler bu yeni teknolojiye odaklandı. Bu nedenle, uygulamalarını giyilebilir cihaz desteğiyle oluşturarak uygulamaları, giyilebilir cihazlarda test etme çabalarını da artırıyor. Bu nedenle, giyilebilir cihazlarda otomasyon, test çabalarını azaltmak ve verimliliği artırmak açısından önemlidir.

Birleşik Altyapı ve CI Entegrasyon Testi (Docker/Vagrant)

Maxim Guenis (Süpersonic)

Bağlantılar: Video, Slaytlar

Geliştiriciler sürekli olarak geliştirme, hata ayıklama ve sürekli entegrasyon entegrasyonundan geçerken çalışan bir yerel geliştirme ortamının hazır olması için uğraşır.Doci ve ciroyu CI aracıyla birlikte kullanarak bu sorunu çözebiliriz. Bu kombinasyon, geliştirme makinelerinde uygulamaların yığın düzeyinde kontrol edilmesine olanak tanır ve aynı zamanda entegrasyon testlerinde aynı yığını kullanabilir. Bu görüşmede şu konuları ele alacağız:

  • CI entegrasyon testlerinde Docker kullanımı
  • Tek bir dock veya uygulama yerine yığın denetimi.
  • Geliştirme ve test ortamlarının sürüm kontrolü; git ve docker araçları ile kolayca dağıtılır.
  • Docker'ları Mac ve Windows'larda sorunsuz çalıştırma desteği.

Faydalı olmayan test bitlerini ortadan kaldırma

Patrick Lam (Suloo Üniversitesi)

Bağlantılar: Video, Slaytlar

Test paketleri için statik analiz tekniklerini uygulamak ilginç sonuçlar sağladı. Daha önce çoğu testin basit düz çizgi kodu olduğunu, yani bir dizi ifadenin ardından iddiaları içeren bir yük olduğunu öğrendik. Statik analizin işe yaramayan kurulum ifadelerini nasıl tanımlayabileceğini ve geliştiricilerin test örneklerini basitleştirip hızlandırabildiğini gösteriyoruz.

Kapsam, Test Paketinin Etkililiğiyle Çok Alakalı Değil

Laura Inozemtseva (Suloo Üniversitesi)

Bağlantılar: Video, Slaytlar

Test paketinin kapsamı genellikle hataları algılaması için proxy olarak kullanılır. Ancak kod kapsamı ile test paketinin etki düzeyi arasındaki ilişkiyi araştıran önceki çalışmalar, bu test paketi özellikleri arasındaki ilişkinin niteliği ve gücü konusunda fikir birliğine varamadı. Dahası, çalışmaların çoğu küçük veya sentetik programlarla yapıldı. Bu da, sonuçlarının daha büyük programlara uygun olup olmadığını netleştirmedi. Bazı çalışmalar, test paketi boyutunun baş döndürücü etkisini hesaba katamadı. Gerçek zamanlı Java programları için test paketinin boyutu, kapsamı ve etkinliği arasındaki ilişkiyi değerlendirerek bu çalışmaları genişlettik. Araştırmamız, literatürde bugüne kadarki en büyük araştırma oldu. Bu süitlerin ifade kapsamı, karar kapsamı ve değiştirilen koşul kapsamını ölçtük ve hata algılamanın etki düzeyini değerlendirmek için mutasyon testini kullandık. Paketteki test sayısı kontrol altına alındığında, kapsam ile etki düzeyi arasında düşük-orta düzeyde bir ilişki olduğunu tespit ettik. Ayrıca, daha güçlü kapsam biçimlerinin, paketin verimliliğiyle ilgili daha fazla bilgi sağlamadığını gördük.

RpcReplay ile Sahte Arka Uçlar

Matt Garrett (Google)

Bağlantılar: Video, Slaytlar

Testlerin hızlı ve kararlı olmasını sağlamak son derece önemlidir. Sunucular birçok arka uça bağlı olduğunda bu zorlaşır. Geliştiriciler uzun ve güvenilir olmayan testler arasından seçim yapmalı ya da sahte uygulamalar okuyup bunları sürdürmeyi tercih etmelidir. Testler bu arka uçlardan kaydedilen trafik kullanılarak çalıştırılabilir. Böylece her iki ortamdan da en iyi sonuçları elde ederek geliştiricilerin gerçek arka uçlarla hızla test gerçekleştirmesine olanak tanımış olursunuz.

ChromeOS Test Otomasyon Laboratuvarı

Simran Basi (Google) ve Chris Sosa (Google)

Bağlantılar: Video, Slaytlar

ChromeOS şu anda her biri kendi yazılımını çalıştıran 60'tan fazla Chromebook/kutu göndermektedir. Sahada müşteriler 6 haftada bir yeni bir sistem alıyor. 200'ü aşkın geliştiricimizin yaptığı Kesintisiz Entegrasyon Sistemi check-in'leri olmadan bunu başaramazdık. Bu konuşmada, genel mimariyi test otomasyon laboratuvarımıza özel bir şekilde odaklanarak açıklayacağız. Ayrıca, tek bir Chromebox'tan çalışan tüm test otomasyonu altyapımız olan Moblab'i (mobil cihazlar için kısa test (lab) testi) ele alıyoruz. Bu sistem, iş ortaklarımızın çoğu tarafından kullanılmaktadır. Böylece testler bizim tarafımızdan da test edilebilir.