Testçi Kod Yazabilse Developer Mı Olurdu? Test Mühendisliğindeki İkilemlere Bakış.

Gizem Saruhan
7 min readAug 13, 2021

--

https://unsplash.com/photos/-Xqckh_XVU4?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink

Herkese merhaba!

Bizim jenerasyon test mühendisliğine başladığımız dönemlerde “test” ve “testçi” kavramları Türkiye’de daha çok yeni şeylerdi ve insanların kafasında çeşitli sorular vardı. En kaba tabirle testçi; sorumlulukları çok da net olmayan kişilerdi. Hatta çoğu şirkette test kavramı yerleşse dahi testçi kavramı yoktu ve ekipteki herkes ve çoğunlukla analistler işlerin testini de yapmak durumunda kalıyordu.

Yıllar geçti ve hala her yerde olmasa da test, test mühendislerinin sorumlulukları ve ekipteki önemi büyük ölçüde netleşti. Şirketler test konusuna önem vermeye ve test alanına dedike elemanlar almaya başladı. Hatta testçiler bir developer kadar değerli görülmezken, günümüzde bir developerdan farksız görülmeye başlandı.

Zamanla birlikte bazı boşlukların yeri dolarken, daha farklı boşluklar açılmaya başladı. Bu durum da aslında çok doğal, eğer gelişen bir sektördeyseniz. Yani demek istediğim şu ki, zamanının sancıları dinmiş olabilir ama hala kafalarda net olmayan ve karşımıza ilk defa çıkan sorular var. Bu yazımda da en çok ikilemde kalınan konular üzerine fikirlerimi paylaşmak istedim ve öncesinde de dünya şirketlerini, dünyanın teste bakışını ve test vizyonunu ne kadar takip edebiliyoruz bunları görebilmek adına bir anket paylaştım. Cevaplayan 321 kişiye buradan da tek tek teşekkür edeyim.

321 kişinin yanıtlarıyla veriye dayalı olacak fakat şu çok önemli ki, bu yazıda tamamen kişisel düşüncelerimi ve deneyimlerimi, çevremde gördüklerimi paylaşacağım. Gerçi bazı zamanlarda ben de “keşke test mühendisleri karar kurulu olsa da, şu ikileme bir son verse veya yazılı bir kural koysa” diyorum, doğruya doğru.

  1. Her yazılım ekibinin bir test mühendisine ihtiyacı var mıdır?

İlk olarak aslında sürecin en başından beri en büyük ikilemlerden biri olan “test mühendisi gerekli mi” sorusuyla başlamak istedim. Katılan 321 kişinin %91'i (292 kişi) evet derken, %6,9'u (22 kişi) hayır dedi. Sonuca göre çoğunluk bir ekipte test mühendisinin gerekli olduğunu kavramış. Bence başlangıç için güzel bir adım.

Ama asıl burada tek tük verilen “Diğer” yanıtlardan biraz konuşmak istiyorum.

Benim fikrim proje ne olursa olsun ekipte mutlaka test mühendisi olmalı.

— Kişi sayısı 20'den fazla ise gereklidir denmiş, geliştirilen bir iş dahi olsa test mühendisi gereklidir diye düşünüyorum. Test gereksinimi ekibin sayısına göre şekillenen bir olgu değil bence.

— Developer da test yapabilir denmiş tabii yapar, fakat önemli olan şu ki developer bir test mühendisi gibi test yapamaz.

— Test mühendisi nihai kararı veren son noktadaki kişidir, bunun için takım lideri var testçiye gerek yok denmiş. Hayatımda hiç böyle bir bakış açısıyla karşılaşmamıştım. Garip geldi çünkü test mühendisi son noktada olduğu kadar aslında tüm akışın baş noktasında da olmalıdır. Takım liderliği çok farklı bir sorumluluk.

2. Test mühendisleri, developerlardan önemsiz midir?

İkinci sorum aslında zamanında sık sık benim de hissettiğim bir duyguydu. Test mühendisleri olarak developerlardan önemsiz miyiz? Gerek işinin maddi karşılığını almak, gerek ekipte karşılaştığın davranışlar olsun bence bunu herkes hissetmiştir. Hiç hissetmemiş test mühendisi arkadaşlarım varsa, inanın çok şanslısınız :)

%94,1 (302 kişi) hayır, herkes ayrı ayrı çok önemlidir derken, %3,7 (12 kişi) evet developer daha önemlidir demiş. Bu 12 kişinin bir kısmının developerlar, bir kısmının da maalesef bu duyguyu her gün hisseden test mühendisleri olduğunu düşünüyorum. Çünkü bizleri böyle hissettiren kimi zaman da developerlar oluyor maalesef.

Diğer yanıtlardan “gizli kalan ırkçılık gibidir” tabiri benim çok hoşuma gitti.

Benim fikrim, böyle bir değer karşılaştırmasının anlamsız olduğu ve hepimizin bir diğerinden üstün olmadığı yönünde. Umarım bu madde yıllar sonra %100 Hayır yanıtına dönüşür ve gereksiz egolarımızdan sıyrılırız.

Bu arada yurtdışında test mühendisleri developerlardan çok daha fazla kazanıyor. Bu yüzden kendi değerimizi yükseltmek ve bu önyargıları kırmak bizim elimizde.

3. Test Mühendislerinin title’ının ne olması gerektiğini düşünüyorsun

Eveeet gelelim üçüncü ve en çok farklı cevap gelen soruya :)

%44,5'lik dilimle (143 kişi) QA Engineer title’ı öne çıkıyor sonrasında Test Engineer, SDET şeklinde gidiyor liste.

Tek tek her madde için konuşmaya gerek yok fakat, bence Software Developer In Test (SDET) bizim için global süreçleri de takip ediyorsanız en uygun title gibi görünüyor. Sadece bir geliştirmenin testini yapan değil, üstüne otomatize edilebilecek tüm süreçleri otomatize eden, test alanında etki yaratan “geliştirmeleri” yapan bir sorumluluk bahsettiğim. Bu sorumluluk da beraberinde kalite ve güvenceyi de getiriyor bu yüzden SDET is the new QA Engineer diyebiliriz :)

4. Test mühendisleri Manuel veya Otomasyon testi yapanlar olarak ayrılmalı mı?

Bir zamanların yine en çok tartışılan konularından biri de test yapanlar manuel ve otomasyon olarak ayrılmalı mı? Bu konuda ankete katılanlar %62 oranla (199 kişi) hayır ayrılmamalı bir test mühendisi her ikisini de yapmalı derken, %35,8 oranla (115 kişi) evet ayrılmalı demiş.

Manuel test bir test mühendisine test case çıkarma yeteneği ve bu yeteneği geliştirme imkanı sağlar; ufuk açar. Otomasyon testi ise manuel testin yanında balayı gibidir. Sürekli sadece manuel test yapan birinin işinden çok sıkılacağını ve kendini hiç geliştiremeyeceğini gözlemliyorum ben, diğer tarafta sürekli sadece otomasyon testi yapan birinin de test case çıkarmakta yetersizleştiğini, uç caseleri gözden kaçırdığını gözlemliyorum. Bu yüzden bence bir test mühendisi kendine sınırlar çizmemeli ve her ikisini de yapmalı.

5. Test mühendisinin sorumluluklarını nasıl tanımlarsın?

Test mühendisinin sorumlulukları nedir sorusunda ise %72,9 oranla (234 kişi) Test ve tüm süreçlerin kalitesini artırmak için operasyonel süreçlerde de rol almak maddesi ağır basıyor.

Açıkçası bu soru benim oranını en merak ettiğim soruydu. Çok büyük oranla eskiden bakış açısı sadece test et, bug aç, canlıya çık, raporla döngüsündeyken artık süreç iyileştirecek görevleri de kendine dert edinmek, operasyonel işlerde de rol almak günlük iş akışımıza girmiş gibi görünüyor. Bu da dünya test bakışına yakınlaştığımızın en somut göstergelerinden.

6. TestOps kelimesini duydun mu?

TestOps sorusuna gelince, test mühendisliğinde “TestOps” son dönemlerin yeni trend topic’i diyebiliriz. Yukarda da bahsettiğim gibi, operasyonel süreçlerde de görev almak diyebiliriz kabaca bu kavrama.

%49,2 oranla (158 kişi) bu terimi duymamış. Bunu normal karşıladım çünkü dediğim gibi çok yeni bir kavram. Bu kavramı duyanların ise 1/4'ü ayrı bir departman olması gerektiğini düşünüyor, 3/4'ü ise test mühendisinin görevi olduğunu söylüyor.

Benim fikrim bir SDET olduğumuz, test ile ilgili tüm süreçlere dahil olmamız gerektiği, manuel-otomasyon ayrılmayıp her ikisini de yapmamız gerektiği konularında eğer anlaştıysak; TestOps kısmında da kendimize düşen görevleri elimizden geldiğince yapmamız gerektiği yönünde. Testimi yapar giderim yaklaşımı bana hiç doğru ve açıkçası ilerici gelmiyor. Farklı veya korkutucu gelebilecek şeyler elbet karşımıza çıkacaktır. Sadece kendimize daha fazla güvenmeli, daha fazla meraklı olmalı, daha fazla aktif olmalıyız.

7. Resource sıkıntısı olduğunda test mühendisi kod yazmalı / developer test yapmalı mıdır?

Evet geldik son ve gerçekten cevapları okurken en çok eğlendiğim sorumuza :)

Testçi kod yazmalı mıııı, developer test yapmalı mı sorumuza %65,2 oranla (208 kişi) herkesin sorumlulukları farklı cevabını vermiş ve %30,1 oranla (96 kişi) testçi kod yazabilir, developer da test yapabilir demiş.

Bu konu aslında içimde hala karar veremediğim bir soru olsa da, sanırım ben de oyumu herkesin sorumlulukları farklı’dan yana kullanırdım.

Bu arada tabi ki bir developer test yapabilir ve bir test mühendisi rahatlıkla kod yazabilir, bu arada selam arkadaşlar biz test mühendisleri zaten kod yazıyoruz :) Fakat görevler ayrılığı esasına göre bence de herkes kendi sorumluluklarını yerine getirmeli.

“Diğer” yanıtlarda çoğunluk developer test yapar ama testçi kod yazamaz cümleleri geçiyor ama, test mühendisleri olarak buglarınızı tek tek yayınlatmayın bize hahaha.

Şaka bir yana, bu konuda bence bu şekilde cevaplar gelmesinin sebeplerinden biri de aramızda sadece manuel test yapan, otomasyona kapalı olan test mühendislerinin oluşu. Bu yüzden bu yanıtı verenlere kızmıyorum çünkü bu bakış açısını kırmak biraz bizim elimizde. Sadece tüm meslektaşlarıma kendilerini yalnızca “manuel testçi” diye bir etiket altından çıkartmak için istekli olmalarını tavsiye etmek istiyorum. Çünkü burası çok güzel, gelsenize :)

Her ne title’da olsak da, her ne kadar değersiz hissettirilirsek de, her ne kadar manuel testçi otomasyon testçisi gibi etiketlensek de, yeri geldiğinde bir bugın sorumluluğu üstü kapalı şekilde üstümüze kalsa da; sürekli ama sürekli kendimizi geliştirmeliyiz, kendimizle ve işlerimizle gurur duymalıyız, her yerde yaptıklarımızı fikirlerimizi anlatmalıyız, testsiz iş çıkılmasına karşı durmalıyız, testin ve bizlerin önemini defalarca ve defalarca yılmadan anlatmalıyız. Daha fazla sorumluluk almayı ne zaman negatiften çıkartıp pozitif algılamaya başlarsanız, o zaman çevrenin algısının nasıl değiştiğini göreceksiniz. Hevesiniz her kırıldığında, her yıldığınızda alttaki screen shot’ı düşünün. :)

Bir developer atasözü

Umarım hoşunuza giden bir yazı olmuştur. Yorumlarınızı bekliyorum. Bu arada yazıyı beğendiyseniz alkış ile beni haberdar edebilirsiniz.

Önceki yazım ->

Sonraki yazım ->

--

--