Hepimizin internetle tanışmasından sonra belkide en çok kullandığı Google test nasıl yapılıyor hiç merak ettiniz mi? 2012 yılında katıldığım "Google ölçeğinde test" isimli bir sunumda benim de merak ettiğim bir çokta aydınlanmış oldu. Bu sayede test organizasyonun ve teste verilen önemin hangi boyutlara gelmiş olduğunu gözlemlemiş oldum. Bu yazımda önemli gördüğüm bazı noktaları aktarmak istiyorum.
Öncelikle "Google ölçeğindenin" ne anlama geldiğini anlamak gerekir. Bir yılda çalıştırdıkları toplam test case sayısı yaklaşık olarak
100x10^9 başka bir söyleşle bir yılda yaklaşık olarak
14.000 yılda çalıştıralabilecek kadar test case çalıştırılıyor. Peki bunu nasıl becerebiliyorlar? Bu başarı ancak t
est otomasyonu ve
sürekli bütünleştirme (continious integration) ile gerçekleştirilebilir. Her test otomasyon altına alınamadığı için bazı testleri manuel olarak gerçekleştiriliyor. Burada aslında yazılımcı sadece yazılım işinden sorumlıu değildir aynı zamanda test işindende sorumludur. Google'ye göre
yazılımcı = code + test,
test uzmanı = quality enabler. Bu sistem içerisinde çok az test uzmanı vardır. Varolan test uzmanları projelere atanır ve bir test danışmanı gibi çalışarak yapılan testlerin kalitesini kontrol eder, bu yüzden
kalite sağlayıcı olarak isimlendirilmişlerdir. Aşağıdaki görsellerden anlaşılacağı gibi test uzmanı sayısı çok azdır ve danışmanlık rolünde görev yaparlar.
|
Google Test ve Geliştirici Birlikteliği |
Yazılımcı kod yazılmasından, fonksiyonel testler ve ayrıca entegrasyon testlerinden ve yazılan kodun kod tabanına eklenmesinden ve dolaysıyla sürekli bütünleştirmenin sonuçlarını değerlendirmesinden sorumlu demiştik. Bunların başarılması için ise herşeyin otomasyon altına alınması gibi bir hedefleri var yani sadece test caselerin değil aynı zamanda geliştirme ortamından test ortamına aktıralmasında sorumlu işleri, test datalarının oluşturulmasında, test sonuçlarının değerlendirilmesinde gibi yapılması gereken aktiviteleride otomasyon altına almayı amaçlamışlar. Bir diğer önemli yenilik ise sürekli olarak
kod-kapsamını (code coverage) arttırarak, sürümlerin canlıya çıkmadan önceki
aday sürümlerin (release candidate) oranını azaltmışlar, yine amaçlanan sürüm başına aday sürüm sayısını ikinin altına çekmek
(release candidate < 2). Alttaki görselden görüleceği üzere code coverage sürekli arttırmak bir hedef bunu herkes tarafından görünür kılarak bilinçlendirme sağlanmaktadır. Burada renkler kod kapsamının oransal olarak büyüklüğünü, kutuların boyutları ise kod kapsamına alınan satır sayısının miktarını belirtmektedir.
|
Google Code-Coverage |
Bir diğer yenilik ise
tuvalette test (test on toilet) kavramıyla tuvalette bile testlere devam edilebiliyor olmasıdır. Yani tuvaletlere yerletirlen ekranlar ile testlere devam edilebiliyor ve test kapsamları buralardan online olarak görüntülenebiliyor. Yaklaşık olarak 3.000 tuvaletin olduğu dşünülürse yine test başarısı adına önemli bir gelişme yaşanmış olur. Alttaki görselde burada aktaramadığım bilgilerin özetini bulabilirsiniz. Umarım Türkiye'de de kalite konusunda bu tür yaklaşımlar yer bulur ve daha kaliteli ürün çıkarabiliriz.
|
Testİstanbul 2012 - Google Sunumu Özet |