Bir QA Ekibi, Günlük Hata Bulamadığında Yazılım Geliştirmede Ne Yapar?
Yayınlanan: 2023-01-27Kalite güvence (QA) mühendisleri genellikle şunu duyar:
"Ekibin dün yirmi böcek tespit etti, ama bugün sende hiç yok!"
Bu duruş, ne kadar geçerli görünse de, yazılım geliştirmede kalite güvencesinin amaç ve hedefleriyle çelişir.
QA, yazılım geliştirmede tam olarak ne yapar?
Bu makalede, ITRex'te Kalite Güvence Birimi Başkan Yardımcısı Andrey Gilyov, daha az hata bulsalar bile Kalite Güvence ekibinizin neden boş durmadığını açıklıyor. Ayrıca, yazılım mühendisleri tarafından kod testi yaptırmak yerine kurum içi veya dış kaynaklı BT ekibinizi büyütmek için neden her zaman QA mühendisleri tutmanız gerektiğini öğreneceksiniz.
KG hedeflerini ve neden hata izleme ile sınırlı olmadıklarını anlama
Oluşturmak istediğiniz yazılım çözümünün türüne ve karmaşıklığına bağlı olarak, yarı zamanlı bir KG uzmanına veya projenize atanan özel bir KG ekibine ihtiyacınız olabilir. Ve sorumlulukları, hataları saptamanın ve bunları proje yöneticisine ve geliştirme ekibine bildirmenin çok ötesine geçer.
Özellikle, kalite güvence hedefleri şunları kapsar:
- Hata önleme. Son anketler, yazılım mühendislerinin zamanlarının yaklaşık %20'sini hataları düzeltmekle geçirdiklerini gösteriyor. Bu süreyi, ortalama bir yazılım mühendisinin saatlik ücretiyle çarptığınızda, kusurlu kodun şirketinize ne kadara mal olabileceğini anlayacaksınız. Hataları düzeltmenin maliyeti de yazılım geliştirme iş akışındaki zamanla katlanarak artar ve bu, güvenlik açıkları, azalan müşteri deneyimi ve itibar kayıpları gibi hatalarla dolu yazılımları üretime sunmanın uzun vadeli sonuçlarından bahsetmiyor. Bu nedenle, yazılım geliştirmede kalite güvencesinin temel amacı, hataları önemli bir hasara neden olmadan önce bulmaktır. Bu başarıyı gerçekleştirmek için, bir QA ekibi bir yazılım çözümüne el atmadan çok önce test için hazırlanır. Bu hazırlık faaliyetleri, test belgelerinin gözden geçirilmesini, bir test planı ve test senaryolarının yazılmasını, uygun test araçlarının seçilmesini ve test ortamının yapılandırılmasını içerir.
- Yazılım durumu izleme ve değerlendirme. Yazılım projelerinde bilinçli kararlar almak için, proje yöneticisi ve müşteri, üzerinde çalıştıkları yazılım ürünü hakkında güncel bilgilere ihtiyaç duyar. Diğer şeylerin yanı sıra kalite güvence hedefleri, bu bilgilerin yazılım projesi zaman çizelgesi boyunca herhangi bir dönemde sağlanmasını içerir. Bununla birlikte, kalite güvence mühendislerinin bir yazılım çözümünün canlıya alınması için en iyi zamanı seçmediklerini belirtmekte fayda var. Bunun yerine, nihai kararı veren müşteridir. QA ekibine danıştıktan sonra, bir müşteri belgelenmiş hatalar ve hatalar içeren bir yazılım çözümü sunmaya bile karar verebilir! Örneğin, ürününüzü piyasaya sürmek için gereken zaman çerçevesi nispeten dar olduğunda ve ödül arasındaki ödünleşim - yani rekabeti geride bırakmak veya kritik bir özelliği etkinleştirmek - onu küçük hatalarla piyasaya sürme riskinden daha büyük olduğunda böyle bir karar verebilirsiniz. Her iki durumda da, bu hataları tespit etmeniz, belgelemeniz ve önceliklendirmeniz gerekir ve bu aynı zamanda QA ekibinizin hedeflerinden biridir.
- Gereksinim doğrulaması. QA'nın yazılım geliştirmedeki birincil rolü, yazılım çözümünüzün beklendiği gibi çalıştığını ve yazılım gereksinimleri belirtimi (SRS) belgesinde tanımlanan tüm kriterleri karşıladığını doğrulamaktır. Kalite güvence uzmanları manuel veya otomatik testler gerçekleştirip hataları belirlediklerinde, geliştirme ekibi için Jira veya ClickUp gibi bir hata izleme yazılım sisteminde bir çağrı oluştururlar. Geliştirme ekibi hataları düzelttikten sonra test döngüsü tekrar eder. Bu nedenle, hata bulmak kalite güvencesinin amacı değildir; bunun yerine, KG faaliyetlerinin bir yan ürünüdür.
QA ekipleri bazen herhangi bir hata bulamıyor. Ve sorun değil
Artık KG amaç ve hedeflerine kafa yorduğunuza göre, bu makalenin başında ortaya koyduğumuz soruya geri dönelim.
Hata raporları günlerce sıfır hata içeriyorsa, bir QA ekibi yazılım geliştirmede ne yapar?
QA uzmanlarının yazılımınızda herhangi bir hata bulamamasının birkaç nedeni vardır:
- Yazılım kapsamlı bir şekilde test edilmiştir. Yazılım çözümü kapsamlı testlerden geçtiyse, KG döngüsü tekrarlandığında veya ürün üretime girdiğinde hataların ortaya çıkması daha az olasıdır.
- Yazılım basit bir tasarıma sahiptir. Sınırlı özellik setine, entegrasyonlara ve basit kullanıcı arayüzlerine sahip uygulamaların hata içerme olasılığı, daha karmaşık mimariye ve performans gereksinimlerine sahip yazılımlara göre daha düşüktür.
- Yazılım, en iyi uygulamalar kullanılarak oluşturulmuştur. Temiz ve iyi belgelenmiş kod yazan, kodlama standartlarını izleyen ve sürüm denetimi kullanan yazılım mühendisliği ekipleri, yazılım ürünlerini genellikle birkaç hatayla teslim eder. Bu hatalar, test sürecinin başlarında tespit edilip düzeltilir ve daha sonraki aşamalarda başka hiçbir kusur kendini göstermez.
- Test süreci daha kapsamlı olabilirdi. Zaman, kaynak veya beceri eksikliği, QA uzmanlarının yazılım çözümünüzü kapsamlı bir şekilde test etmesini engelleyebilir. Sonuç olarak, bazı hatalar gözden kaçabilir.
- Hatalar tekrar üretilemez. Bazen, hatalar tutarlı bir şekilde meydana gelmediği için kalite güvencesi uzmanları herhangi bir hata bulamayabilir. Yazılımın karmaşıklığı, üçüncü taraf kitaplıkların kullanımı veya dış bağımlılıkların varlığı gibi çeşitli faktörler bu tür durumlara yol açabilir.
Nedeni ne olursa olsun, yazılım geliştirmede QA'nın önemini hafife almamalısınız, geliştiricilerin kodu sizin için test etmesine izin verme fikriyle oynamayı bırakın.
Beni yanlış anlamayın: geliştiricilerin işlevler arası Çevik ekiplerde otomatikleştirilmiş testler yazıp yürütmesinde sorun yoktur. Hatta yazılımı manuel olarak test edin.
Bununla birlikte, proje rollerinin sıklıkla paylaşıldığı bu tür ekiplerde birincil amaç, çalışan yazılım veya özellikleri daha hızlı yayınlayarak, değer elde etme süresini kısaltarak ve erken geri bildirim toplamaktır. Burada, önceki bölümde açıklanan riske karşı ödül konusuyla ilgileniyor olabiliriz. Ve böylece projeniz teknik borç biriktirerek gelecekte performans sorunlarına ve önemli hata ayıklama maliyetlerine yol açabilir.
Özel KG uzmanlarını işe almanın diğer nedenleri şunlardır:
- Nasıl kod yazılacağını bilmek, potansiyel hatalar için kodu nasıl gözden geçireceğinizi bilmekle aynı şey değildir.
- Geliştiriciler nadiren test yapmaktan hoşlanırken, QA uzmanları keyif alıyor
- Yazılım mühendislerinin saatlik ücretleri genellikle kalite güvence uzmanlarından daha yüksektir.
- Geliştiriciler ve KG mühendisleri normalde farklı sosyal becerilere sahiptir. Kalite Güvenceleri için ayrıntılara dikkat, karmaşık sistemleri analiz etme yeteneği ve çoklu görev ön plandadır. Öte yandan, yazılım mühendisleri genellikle ortak çalışma ortamlarında çalışır ve aynı anda tek bir göreve odaklanır.
Bu nedenle, QA ekibiniz bugün sıfır hata bulsa bile, kalite güvence uzmanlarını işten çıkarmaya veya test görevlerini birincil geliştirme ekibine emanet etmeye kalkmayın. Bu yaklaşım kısa vadede maaşınızı azaltsa da, zayıf yazılım performansı veya hatayla ilgili siber saldırılar nedeniyle müşterilerinizi kaybetmenin maliyeti çok daha yüksek olabilir.
Ve yazılımınızın iyi performans gösterdiğini, SRS'nizde veya teknik vizyonunuzda belirtilen tüm gereksinimleri karşıladığını ve iş hedeflerinize ulaşmanıza yardımcı olduğunu doğrulamak için yardıma ihtiyacınız varsa, ITRex QA uzmanlarıyla iletişime geçin!
İlk olarak 20 Ocak 2023'te https://itrexgroup.com adresinde yayınlandı.