Etkili QA En İyi Uygulamaları

Effective'de çalışmak 30'dan fazla farklı projeye katıldım. Hepsi tamamen farklıydı: web ve mobil, büyük ve küçük, karmaşık ve basit. Sıfırdan projeler yapıyor, yeni özellikler ekliyor ve mevcut projeleri sürdürüyorduk.

Kalite güvence sürecinde, testte, yönetimde ve geliştirmede birçok zor vaka vardı ve şimdi ekibimiz Per Aspera ad Astra'yı geçti gibi hissediyor.

Şu anda, özel bir şey yapılmamış gibi hissediyor, ancak şimdiki Etkili'yi karşılaştırmak ve ileriye doğru büyük bir adım attığımızı söyleyebilirim. Hataların analizi yapıldı, ekip dilekleri ve önerileri, kalite güvencesi için aşağıdaki en iyi uygulamalar listesini hazırladım. Bu listenin amacı, genç ekiplerin araştırma için fazla zaman harcamadan kendileri için neyin yararlı olabileceğini anlamalarına yardımcı olmaktır. Bazı deneyimli olanlar için bu bisikletin yeniden icadı gibi görünebilir :) İşte başlıyoruz!

İş hedeflerini anlama ve Kabul Kriterleri'ni netleştirme

Bu bir projenin temel taşıdır ve gelişim başlamadan önce netleştirilmelidir. Bir proje ekibinin ne yapılması gerektiğini, hedef kitlenin / özellik tüketicisinin kim olduğunu ve yapacak bir şey olmadığını nasıl anlayacağını anlamalıdır.

İş hedeflerini anlamanız, ‘Neye ihtiyacımız var ve onu kim kullanacak? 'Gibi soruları yanıtlamanıza yardımcı olacaktır. Kabul kriterleri, bir özelliğin işletme hedeflerini karşılayıp karşılamadığını anlamanıza yardımcı olacaktır. Tecrübelerime göre, işletme hedeflerinin ve kabul kriterlerinin bir müşteri veya müşteri temsilcisi tarafından onaylanması gerektiğini söyleyebilirim. Ek olarak, açık ve şeffaf iş hedeflerine ve kabul kriterlerine dayanarak, yetenekli dış kaynak yazılım geliştirme şirketleri bir iş fikrini yükseltebilir veya daha iyi bir çözüm önerebilir.

CI / CD - Sürekli Entegrasyon / Sürekli Dağıtım

Tanıdık geliyor… Öyle değil mi? Mevcut yazılım geliştirmedeki en önemli avantajlardan biri olan QA ekibi perspektifinden en son özelliklerle veya düzeltmelerle kolayca bir yapı elde edebilmemizdir.

Geliştirme döngüsü boyunca, geliştirme ekibimiz farklı özelliklerle ilgili birçok git şubesine sahip olabilir, ancak yalnızca bir şube en güncel kodu içerir. CI aracı bu şubeyi kontrol eder ve kod değiştirildiğinde, yeni bir derleme oluşturur ve belirtilen dağıtım servisiyle paylaşır.

TeamCity ve Jenkins'i denedik. Bunların ikisi de harika araçlardır. TeamCity'nin daha güzel bir kullanıcı arayüzü var, ancak Jenkins tamamen ücretsizdir, bu yüzden Jenkins'i seçtik.

Uygulama dağıtım hizmetleri

Genel olarak, özel bir şeye benzemez ama başlık altında, ayarlanmış uygulama dağıtım servisleriyle sürekli entegrasyon, istediğiniz test cihazında veya ortamda en son sürüme ulaşmanın en kolay ve en hızlı yolunu sunar. Bir cihaza USB üzerinden derleme yüklemek tamam. Fakat yapıyı 10 farklı cihaz kullanarak kontrol etmeniz gerekirse? Mesele bu.

Mobil projeler için HockeyApp, Beta kumaştan kumaş (Crashlytics), Apple tarafından Test Uçuş, Google'dan Play Console gibi birkaç farklı hizmet denedik. Tabii ki daha çok hizmet var ama bunlar en popüler olanı seçildi. Şimdi bu hizmetler esnek olduğu için Test Uçuş ve Oyun Konsolu'na oy veriyorum, dahili ve harici test özelliklerini ve Apple ve Google'dan ve test edenlerden gelen resmi hizmetleri desteklemek için yalnızca e-posta gerekli. Buradaki tek kısıtlama, Google (bir kerelik ödeme) için 25 ABD doları, her yıl (ABD Doları) için 99 ABD doları olan Apple ve Google geliştirici hesabına ihtiyacınız olmasıdır.

HockeyApp veya Beta gibi diğer hizmetler, özellikle iOS'ta, projeye yeni test uzmanlarının eklenmesinde bazı zorluklar yaşamaktadır. Apple güvenlik bakımı nedeniyle, test cihazlarından, cihazlarının UDID'sini geliştiriciye sağlamak gerekir ve geliştiricinin bu UDID'leri projeye eklemesi gerekir. Dev geliştirmeleri müşterilerimizle paylaştığımızdan (genellikle birçok farklı cihaza sahip olan ve bunları düzenli olarak değiştiren) hepimiz bu UDID toplama faaliyetlerinden bıktık. Bu yüzden Test Flight ve Play Console'u seçtik.

Web projeleri için her şey biraz daha basit çünkü geliştirme dalı değiştirildiğinde CI aracı tarafından güncellenen özel bir test ortamı kullanıyoruz.

Belgeleri Test Etme

Yıllar boyunca QA ekibimiz müşterilerle veya paydaşlarla paylaşılabilecek en değerli dört belgeyi buldu:

  • Desteklenen platformlar
  • Test planı
  • Test Durumları / Kontrol Listeleri
  • Sürüm notları

Desteklenen platformlar dokümanı, bir proje başladığında ve müşteriyle imzalandığında mümkün olduğunca erken hazırlanmalıdır. Desteklenen donanım ve yazılım yapılandırmaları, bilinen sınırlamalar ve kısıtlamalar hakkında bilgi içermelidir. Ayrıca, hedef kitle cihazlarına da dayanmaktadır, çünkü cihaz pazarları farklı ülkelerde farklıdır.

Bunu müşterilerimizle imzalayarak, bir ürünün ilk versiyonunun listelenen konfigürasyonlar üzerinde mükemmel çalıştığını garanti etmekteyiz, ayrıca müşterilerimizin diğer konfigürasyonlar üzerinde çalışabileceğini bilmekteyiz, ancak bazı sorunlar görünebilir. Ürün ve hedef kitle büyürse, ek platform desteği analiz edebilir ve uygulayabiliriz. Gelecekte, bu belge geliştirme ve hata düzeltmede belirtilen platformlara odaklanmamızı sağlayacaktır.

Test planı da başlangıçta hazırlanmalı ve müşteri ile paylaşılmalıdır. Bu belge, ürün geliştirme sırasında her bir tür için tanımlanmış bir amaç için kullanılacak tüm test türlerini içermelidir. Test planında KG ekibi, testler, test senaryoları veya kontrol listeleri için ne kullanacaklarına karar vermelidir. Genellikle, proje süresine ve işlevsel karmaşıklığa bağlıdır. Desteklenen platformlar da test planına bağlanmalıdır. Son olarak, test planı, proje geliştirme ve yayınlanma zaman çizelgesini takip eden tarihlere göre planlanan test faaliyetleri hakkında bilgi içermelidir.

Test projeleri / kontrol listeleri her proje için gerekli bir şeydir. Elbette, bu teslimatların hazırlanması biraz zaman alır ve bu belgelerin desteklenmesi için ek zaman alabilir, ancak size bir tür ağaç gövdesi verir ve bu gövdeyi kullanarak, sadece dallar ekleyerek kolayca hayal edebileceğiniz ve yeni test senaryoları oluşturabilirsiniz. Bagajın Daha sonra, hazırlanan test durumlarını müşterinin yanında bulunan UAT ekibi ile veya beta test uzmanlarıyla paylaşabilir veya hatta test durumlarını proje geliştirme ekibine gösterebilirsiniz. Dev ekibi, test durumlarını gereksinimlerin bir parçası olarak kullanabilir ve gerçekten bazı sorunları önlemek için onlara yardımcı olabilir.

Effective'de, birçok TMS (Test Yönetim Sistemi) denedik ve TestRail'i test vakaları yönetimi ve test yönetimi için en popüler, özelleştirilebilir, hızlı ve kullanışlı araçlardan biri olarak seçtik. TestRail kullanmak test vakalarını ve kontrol listelerini kolayca güncel tutmamızı sağlar. Bizim için, bu araç harika, ama yine de birçok alternatif var. Buradaki ana ipucu, uygun TMS’yi kullanmak ve Google Dokümanlar ve E-Tabloları test senaryoları ve test günlükleri için kullanmamaktır :)

Sürüm Notları, Kalite Güvence ekibimiz tarafından müşteriler için hazırlanan ve proje hakkında gerçek bilgiler içeren belgedir. Sprint'te hangi özellikler tamamlandı, halen devam etmekte olan sorunlar, bilinen sorunlar nelerdir, demo yapımının nereden ve nasıl indirilebileceği. Her zaman sürümlerini sprint ve sürümleri ile hazırlarız. Müşterilerimize geliştirme süreci hakkında ek şeffaflık sağlar.

Keşif testi

Asla unutulmaması gereken son şey Keşif Testi. Bu testin temel amacı, ürününüzü daha iyi anlamak ve kullanıcının bakış açısına bakmaktır. Keşif ve senaryo testlerini birleştirmek (senaryo testleriyle, test senaryoları veya kontrol listeleri kullanımı demek), test cihazı ile kullanıcının ürün algısını birleştirmek ve iş hedeflerini göz önünde bulundurarak üzerinde çalıştığınız ürünü mümkün olduğunca mükemmel hale getirebilirsiniz.

Keşif testinin bir parçası olarak, sürü testi yaklaşımını da kullanıyoruz. Test Uçuş ve Oyun Konsolu'nu kullanarak, genellikle projeden çıkmayan ve beta test edicisi olarak görev yapan Etkili çalışan harici testçileri davet ediyoruz. Bu, kullanıcının bakış açısından bir ürüne genel bakış elde etmemizi ve kullanılabilirliğe dikkat etmemizi sağlar.

Etkili QA Best Practices özeti:

  • İş Hedeflerini Anlayın
  • Kabul Kriterleri'ni açıkça belirtin
  • Desteklenen Platformlarınızı bilin
  • Test Planı Hazırla
  • Test Durumlarını / Kontrol Listelerini Kullan
  • Sürekli Entegrasyon + Sürekli dağıtım kullanın
  • Test Durumlarını / Kontrol Listelerini güncel tutun
  • Sürüm Notlarınızı müşterilerinizle paylaşın
  • Keşif Testi'ni asla unutma

Okuduğunuz için teşekkürler! Daha fazla bilgi edinmek, katılmamak ya da herhangi bir sorunuz olması halinde yorum yapmaktan çekinmeyin :)