Her geliştirici ve testçi, her otomasyon testinin hızlı ve kararlı olmasının esas olduğunu bilir. Fakat bu iki özellikten ilki nasıl elde edilir?
Burada 10 tavsiye bulabilirsiniz:
- Her şeyden önce, tek bir test senaryosundan ziyade tüm test takımının yürütme süresiyle daha fazla ilgilendiğimizi anlamamız gerekiyor. Bu nedenle yapabileceğimiz ilk şey, testlerimizi paralel olarak yürütmektir. Bu, listedeki diğer tavsiyeler arasında kesinlikle en etkili yaklaşımdır. Modern test çerçevelerinin çoğu böyle bir yetenek verir. Sadece belgeleri kontrol edin. Örneğin, grade ve testng kullandığınızda maxParallelFork parametresini ayarlayabilirsiniz. Ancak dikkatli olun, testleriniz iyi tasarlanmadıysa ve birbirlerine bağımlılıkları varsa, muhtemelen bazıları başarısız olmaya başlayacaktır.
- Çerçevenizin paralelleştirme stratejisini kontrol edin. Bazıları test senaryolarını paralel ve bazı sınıflarda çalıştırır. İkinci yaklaşımda, büyük test sınıflarınız olduğunda, bunları daha küçük sınıflara bölmeyi düşünebilirsiniz.
- Yürütme sırasını belirleme yeteneğiniz varsa, her zaman en çok zaman alan şeyi ilk sıraya koyun. Açgözlü algoritmalara göre, test senaryolarını en düşükten en hızlıya doğru sıralamak en iyi sonuçları verecektir.
- UI ve e2e testleri için, test kurulumunu gerçekleştirmek için uygulamanızın API’sini kullanmayı düşünün. Uygulamanız herhangi bir api sağlamasa bile, bu amaç için ham HTTP çağrılarını kullanmayı deneyebilirsiniz. Bu şekilde çok zaman kazanabilirsiniz.
- Sisteminizin durumunu kaydedebiliyorsanız, her testten önce her şeyi ayarlamamayı düşünün. Bunun yerine önceden hazırlanmış ortamı kullanın.
- En yavaş test senaryolarını tespit etmek için test çerçevesi veya CI sunucusu (örn. Jenkins test eklentisi) tarafından oluşturulan raporları kullanın ve yeniden düzenlemeyi düşünün.
- Test kodunuzda asla sabit kodlanmış uykuları kullanmayın. Daha iyi bir yaklaşım, bir olayı beklemek veya sistemi küçük zaman aralıklarıyla yoklamak.
- Kodunuzu temiz tutun. Eski kod, gerektiğinden çok daha fazlasını yapma eğilimindedir. Her eylem biraz zaman alır. Bu yüzden kod yapınıza ve kodlama standartlarınıza odaklanın.
- Testlerinizde fazlalıktan kaçının. Genellikle birkaç test benzer kontrolleri yapar. Genel olarak aynı şeyi birçok farklı düzeyde test etmeye gerek yoktur. Alt seviye testler daha hızlıdır, bu nedenle her zaman mümkün olan en düşük seviyede test edin.
- Uygulamanızın test ortamındaki harici giriş/çıkışlarını mock’larla değiştirmeyi düşünün ve sözleşme testi yapın. Salatalık yaratıcısı tarafından mikro hizmetleri çok verimli bir şekilde test etme stratejisi hakkında ilginç konuşmayı burada bulabilirsiniz: https://skillsmatter.com/skillscasts/9971-testable-software-architecture-with-aslak-hellesoy
- Son olarak, ekstra tavsiye. Sahip olduğunuz tüm testlere gerçekten ihtiyacınız olup olmadığını kendinize sorun. En kapsamlı test paketinin bile, hiçbir zaman veya neredeyse hiç çalıştırılmadığında işe yaramaz olduğunu unutmayın. Hızlı geri bildirim çok önemlidir, bu nedenle sizi risk bile olmayan kusurlara karşı koruyan testleriniz olup olmadığını kontrol edin ve bunları kapatmayı düşünün.
Umarım bu kısa liste, test takımlarınızı hızlandırmanıza ve hayatınızı daha iyi hale getirmenize yardımcı olur. 😉