Kullanıcı arayüzü otomasyon kalıpları ve masaüstü uygulamaları için en iyi uygulamalar


9

Arka fon

Şu anda MS Office için bir eklenti için bazı testleri otomatikleştiriyorum. VS 2010'da Kodlu UI testleri oluşturuyoruz. Sanırım " Kodlu UI test oluşturucu " aracını kullanabilirim, ancak bu benim özel durumuma gerçekten uymuyor.

Bu nedenle, farklı eylem işlevselliği eklediğim her UI Kontrol / Harita için kendi UI Map sınıfımı ve uzantı yöntemlerimi oluşturdum. Örneğin düğmelere basın veya bazı kullanıcı arayüzü değerlerini onaylayın.

Test senaryolarının senaryoları test sınıflarındadır.

Bu alanda yeniyim ve aynı zamanda bir otomasyon test cihazı olarak çalışıyorum.

Soru

İnsanlar, programlama / tasarım açısından masaüstü uygulamalarında test otomasyonu için bazı iyi uygulamalar için deneyimlerini ve tavsiyelerini paylaşacak kadar nazik olacak mı?


Birincil rollerimden biri UI otomasyonunda ... ve bu soruyu okurken yarım düzine kez kayboldum. Kullandığınız teknik terimlerin yarısının ne anlama geldiğini bilmiyorum. Bu soru bazı ortamlara veya dile özgü mü? Muhtemelen bir etiket olmalı.
Sparr

@Sparr Soruyu daha erişilebilir hale getirmek için düzenledim. Umarım hala gereksinime uyar.
Gary Rowe

Yanıtlar:


6

UI Otomasyon Testi için en iyi uygulama, mümkün olduğunca az şey yapmaktır. Kullanıcı arayüzleri sık sık değişir, yani otomasyonunuzu sürekli güncellemeniz gerekir. Ürün kodunu genellikle UI Otomasyonu olmadan otomatik test yapılmasına izin verecek şekilde yapılandırmak tercih edilir.

Bununla birlikte, her zaman UI Otomasyonundan kurtulamayacaksınız. Ofisten bahsediyorsunuz, bu yüzden Windows için kodlama yaptığınızı ve .Net kullandığınızı varsayıyorum. Şu anki işimde biraz çalışıyorum. İşte öğrendiğim bazı şeyler.

1) .Net 3.0'da sunulan UIAutomation kütüphanelerine bakın. Otomasyon için kapsamlı ve kullanımı oldukça kolay bir kütüphane sağlarlar. (Http://msdn.microsoft.com/en-us/library/ms753107.aspx)

2) UISpy'ı indirin (http://msdn.microsoft.com/en-us/library/ms727247.aspx)

3) Ürününüzün kullanıcı arayüzlerini Otomatikleştirin.

3a) WPF ise AutomationID'leri her şeye koyun.

3b) Farklı denetim ve pencere sınıfı adları (kaynak kodu sınıf adı değil UI Sınıfı adları) oluşturmaya çalışın. Ne demek istediğimi bilmiyorsanız, UI Spy'ı yükleyin ve pencerelere bakmaya başlayın. Farklı uygulamalardaki kaç pencerenin # 32770 sınıf adına sahip olduğuna dikkat edin. Bu, Windows İletişim Kutusu'nun sınıf adıdır. İletişim kutusunu genişleten ve kendi adını ayarlamayan herhangi bir pencere, varsayılan olarak budur. Bu, bir UI Otomasyon açısından her türlü kedere neden olur.

4) Thread.Sleep () ifadelerinden kaçının. Bunun yerine Garsonlar'ı kullanmayı deneyin (bkz. UIAutomation belgeleri).

5) Test kodunu ASLA UI Otomasyon koduyla karıştırmayın. UI Otomasyonunu gerçekleştirmek için ayrı kütüphaneler oluşturun. Bu kütüphaneleri testlerinizden çağırın. Kullanıcı arayüzü değiştiğinde, otomasyonun güncellenmesi çok daha kolay olacaktır.

6) Olayın tetiklenmesine neden olacak eylemi gerçekleştirmeden önce mutlaka bir UI Etkinliği için bir dinleyici kaydedin. Pratikte, bu konu ile çalışacağınız anlamına gelir.

6a) Örnek: pencereyi açmak için bir düğmeyi tıklattıktan sonra Pencere Açıldı olayını beklemeye başlamayın. Pencere, garson kaydedilmeden önce açılabilir ve asla olayı alamaz.

7) Asla yeni açılan pencerenin istediğiniz pencere olduğunu varsaymayın. Windows'ta her türlü pencere beklenmedik bir şekilde açılabilir.

Daha fazla devam edebilirdim, ama bu biraz uzun sürüyor.


1) - 3) başvuruyu teste tabi tutan kişiler içindir. 6) benim için de zor bir öğrenimdi. :)
Andreas Reiff

2

Yeniden kullanılabilir kullanım durumlarından fonksiyonel testler oluşturun

Uygulamanızı yerinde uçtan uca test etme zamanı geldiğinde, fonksiyonel test gerçekleştirirsiniz. Genellikle, sınadığınız bir dizi gereksiniminiz olur ve bunları temsil eden çeşitli kullanım örnekleri oluşturabilirsiniz.

Örnek olarak, "Standart kullanıcı olarak oturum aç" kullanım durumunu ele alalım. Test çerçeveniz uygulamayı başlatır, oturum açma ekranını bekler, bazı kimlik bilgilerini girer, oturum açma düğmesini tıklar ve uygun ekranın oturum açmanın başarılı olduğunu gösterdiğini doğrular.

"Standart kullanıcı olarak giriş yap" kullanım senaryosunu yaptıktan sonra, başka bir şey, belki de "Kullanıcı bilgilerimi düzenle" kullanım senaryosu yapmak için bunun üzerine inşa etmek istersiniz. "Standart kullanıcı olarak oturum aç" kullanım durumundaki tüm kodu tekrarlamak istemezsiniz, bu yüzden bu biti yapan test çerçevesi koduna referansta bulunursunuz.

Bu , kullanım durumlarının bir listesini içeren bir çeşit aşırı kemerli fonksiyonel testinizin olduğu anlamına gelir . Bu kullanım örnekleri, uygulama davranışına neden olmak için test çerçevesi yöntemlerini içerir (X düğmesini tıklatın) ve davranışı doğrular (ekran maviye döndü).

Genel olarak, belirli dizileri hedefleyen ve belirli yanıtları test eden bir yeniden kullanılabilir kullanım örnekleri grubu oluşturabilir ve daha sonra bunları iş gereksinimleriyle yakından ilişkili çeşitli fonksiyonel testlerde toplayabilirsiniz. Bunu yerine getirdikten sonra , tüm oluşturma sürecinizi tamamen otomatikleştirmek için mükemmel bir pozisyondasınız .

Daha fazla okumak istiyorsanız, bu yaklaşım hakkında başka bir yerde yazdım , ancak makale, istediğiniz masaüstü uygulamaları yerine Java'daki web uygulamalarını (Maven ve SeleniumRC kullanarak) hedefliyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.