what is sdet know difference between tester
Bu Eğitimde Beceri Seti, Roller ve Sorumluluklar, Maaş ve Kariyer Yolu Dahil olmak üzere bir SDET'in (Testteki Yazılım Geliştirme Mühendisi) Tüm Yönleri Açıklanmaktadır:
SDET rolünü, şirketlerin beklediği bu rolden beklentileri ve sorumlulukları, bir SDET'in sahip olması gereken beceri setini, adayın uygulamalı olması gereken araçları ve teknolojileri ve ayrıca genel olarak maaşları derinlemesine tartışacağız. teklif edildi.
Ne öğreneceksin:
SDET Rolünü Anlamak
SDET'in genişletilmiş formu - Yazılım Geliştirme Mühendisi Testte
Çok basit bir deyişle, bu rol, saf bir geliştirici rolü ile saf bir testçi rolü arasındaki bir ara öğenin birleşimidir. SDET'ler hem Kalite Mühendisliği hem de Yazılım Geliştirme alanlarında yetenekli profesyonellerdir.
SDET terimi ilk olarak Microsoft tarafından icat edildi ve daha sonra Google, Amazon, Adobe, Expedia, vb. Gibi çoğu büyük Ürün isimleri tarafından takip edildi ve kullanıldı. Ana beklentiler, verimliliği artırmak için manuel olarak tekrarlanan görevleri bazı otomasyonlarla değiştirmekti. test edilen uygulamalar için güvenilirlik.
SDET ve Manuel KG Arasındaki Karşılaştırma
Manuel KG test cihazları, esas olarak Kara kutu veya Uygulama testine odaklanır. Bunun anlamı, bir QA test kullanıcısı için önemli olan, belirli bir girdi verildiğinde bir uygulamanın nasıl davranmasının beklendiğine dair bir özelliktir.
android market için ücretsiz müzik indirici
QA test cihazı, herhangi bir normal kullanıcı / müşterinin kullanacağı gibi, test edilen Uygulamayı / Sistemi kullanır, ancak daha fazla ayrıntıya ve farklı girdi kombinasyonlarını deneyerek uç senaryolara odaklanarak vb.
SDET’ler, hem Beyaz Kutu hem de Kara Kutu testindeki uygulamalara odaklanır. Başka bir deyişle, uygulamanın hem Beyaz Kutu hem de Kara Kutu test tekniklerini kullanarak Otomasyon testleri yazmalarına olanak tanıyan iç işleyişinin de farkında olacaklardır.
Temelde, Testteki bir Yazılım Geliştirme Mühendisi, uygulamanın daha iyi kalite standartları ve daha az kusurlu bir yazılım ürünü sağlayan iç işleyişini anlamak için tüm Kara Kutu test tekniklerinin yanı sıra uygulamalı geliştirme / kodlama bilgisinden haberdar olmalıdır.
Esasen, bir SDET, herhangi bir yöntemle etkili bir kalite güvence için bir kolaylaştırıcı olarak hareket etmelidir. Bu aynı zamanda, bireyin test edilen yazılımın tüm bölümlerinin hem işlevsel hem de işlevsel olmayan alanların test edilmesini içerecek şekilde mümkün olan en iyi şekilde doğrulanmasını sağlamak için becerilerini kullanacağı anlamına gelir.
SDET ve Manuel test cihazı karşılaştırmasını farklı parametreler üzerinde görelim
Parametre | SDET | Manuel Test Cihazı |
---|---|---|
Test Kapsamı | Çok çeşitli test tekniklerine ve türlerine odaklanır. Misal: İşlevsel, İşlevsel Olmayan, Güvenlik, Performans vb. | Genel olarak, test edilen uygulamanın işlevsellik perspektifine odaklanın. Bir manuel test cihazı, test edilen uygulamanın bir kullanıcısı / müşterisi gibi davranır ve bu bakış açısıyla onu doğrular. |
Otomasyon | SDET'ler, manuel test uzmanlarının daha karmaşık ve uç senaryolara odaklanabilmelerini ve bant genişliğini ve becerilerini daha verimli kullanabilmelerini sağlamak için çoğunlukla tekrar eden senaryoları otomatikleştirmeye odaklanır. | Manuel test ediciler, otomasyon için bazı becerilere sahiptir veya hiç yoktur. Ancak, manuel test uzmanlarının manuel teste yardımcı olan araçların kullanımından haberdar olması gerekir. Misal: API uç noktalarını yürütmek için Postman'ı kullanmak, farklı platform sürümlerinde testleri yürütmek için sos laboratuvarları gibi bulut sağlayıcıları kullanmak, vb. |
Birincil beceri seti | SDET'ler, öncelikle test senaryolarının otomatikleştirilmesinin yanı sıra ekibin tekrarlayan çabaları azaltmasına yardımcı olan yeniden kullanılabilir komut dosyaları / araçlar yazmaktan sorumludur. SDET ekibinin kıdemli bir üyesi ayrıca otomasyon çerçeveleri oluşturmaktan ve diğer SDET'lerin çerçeveyi kullanarak testler yazmasını sağlamaktan sorumludur. | Manuel test uzmanları öncelikle uygulama işlevselliğine odaklanır, uç durum senaryolarına ve karmaşık test senaryolarına odaklanır. Örneğin: Bir mobil uygulamayı test eden manuel bir test cihazı, tüm işlevsel senaryolara ek olarak, - Devam eden bir arka uç işlemi / ağ araması varken uygulamayı kapatırsam ne olur? - Müşteri uygulamadaki belirli bir sayfadayken mobil aniden kapanırsa ne olur? - Bir uygulamaya belge yüklerken İnternet kesilirse ne olur? |
Maaşlar | SDET'lere sahip oldukları beceriler ve sahip oldukları deneyimler nedeniyle genellikle daha yüksek maaşlar (manuel test yapanlardan ~% 40-50 daha yüksek) sunulur. | Saf manuel test rolleri, manuel test uzmanının yeni araçlar öğrenmeye ve teslim edilen ürüne değer katmaya çalıştığı karma bir role kıyasla daha düşük bir maaş gerektirir. |
Test Becerilerinde Yazılım Geliştirme Mühendisi
Aşağıda, bir SDET'in sahip olması gereken beceri setleri listelenmiştir:
# 1) Açık Zihniyet
İlk ve en önemli beceri seti, Test'teki herhangi bir Yazılım Geliştirme Mühendisinin, test edilen uygulamayı kapsamlı bir şekilde test etmelerini sağlamak için gereken komut dosyası dilini / araçlarını öğrenmeye açık olması gerektiğidir.
Bir şirkette bir SDET olarak Microsoft / .NET teknoloji yığınını kullanarak çalışmaya başlayabilirsiniz, ancak başka bir şirkette geliştirme dili öncelikle Java'dır - bu nedenle SDET'in yeni şeyler / teknolojiyi öğrenmek için açık bir zihniyete sahip olması beklenir. ve gerektiğinde.
# 2) Uyarlanabilir
Testteki bir Yazılım Geliştirme Mühendisi, projenin, araçların ve teknolojilerin, veritabanlarının vb. İhtiyaçlarına uyum sağlamalıdır. Örneğin - bir SDET olarak API testi yapma deneyiminiz olabilir, ancak başka bir rol kullanıcı arayüzünü veya ön ucu test etmenizi gerektirir. Bu nedenle, rol, yüksek kaliteli standart bir ürün sunmak için projenin ihtiyaçlarına uyum sağlamanızı gerektirir.
# 3) Çok Görevli
Ürün şirketlerinin çoğunda, genellikle DEV ve QA oranı büyük ölçüde çarpıktır. Bu, 4: 1 veya hatta 5: 1 DEV: QA oranına sahip ekipler görmenin yaygın olduğu anlamına gelir. Bu nedenle, bir SDET'in birden fazla şeye dahil olması ve teslim etmesi beklenmelidir.
Bunlar, bir SDET'in üzerinde çalışması beklenen birkaç sorumluluktur:
- Paydaş toplantılarına katılın: Bir SDET, ürünü hem geliştiricilerden hem de ürün bakış açısından anlamak ve ardından otomasyon stratejisi tasarlamak / önermek için hem geliştiricilerle hem de ürün çalışanlarıyla yakın ilişki içinde olmalıdır.
- Çerçeve / araçlar oluşturun
- Test planlamasını stratejik hale getirin
- Kusurları Artırın / Araştırın
- Bazen geliştiricilerle birlikte Birim testine katkıda bulunmak gerekebilir.
# 4) Keşfedici Zihniyet
Her SDET bu satırları her zaman hatırlamalıdır - ' Her zaman aynı eylemleri tekrarlıyorsanız, otomatikleştirmeyi düşünün '
Kişi, üretkenliği artırmanın yanı sıra yüksek kaliteli yazılım ürünleri sağlamak için araçların yardımıyla yoluna çıkan herhangi bir şey için çabayı azaltacak bir zihniyete sahip olacaktır.
Tüm otomasyon çalışmalarına ek olarak, SDET’in birincil görevi, ne pahasına olursa olsun yüksek kaliteli ürünler sunmaktır, bu nedenle, gittikçe daha fazla gizli hatayı ve kusurları ortaya çıkarmak için keşif yollarıyla ürünleri test etmeye odaklanması gerekecektir.
# 5) İşbirliği Yapın, Katkıda Bulun ve İletişim Kurun
SDET’in rolü, Geliştiriciler, Ürün, Manuel test ediciler vb. Gibi farklı paydaşlar arasında bağlantı kurmayı zorunlu kılar.
SDET'lerin gerekli tüm paydaşlarla işbirliği yapmasının yanı sıra gerekli tüm ayrıntıları uygun şekilde ve gerektiğinde iletmesi önemlidir.
SDET'ler ve QA ekibi, bir ürünün kamuya açılmadan önce kalite kapılarını elinde tutar ve bu nedenle bir ürünün müşterilere sunulmaya uygun olup olmadığı konusunda önemli bir rol oynarlar.
Görev ve Sorumluluklar
Öyleyse, SDET'lerin günlük işleri ve sorumlulukları ve yapmaları beklenen farklı görevleri anlamaya çalışalım.
- Geliştiricilerin yanı sıra iş paydaşlarıyla birlikte çalışın ve kabul kriterlerini otomatikleştirmek için çaba gösterin. Bu, basit bir deyişle - bir SDET önce gereksinimleri kabul / müşteri perspektifinden anlar ve ayrıca ürünün kodlama dili, veritabanları vb. Açısından geliştirilme şeklini anlamalı ve ardından mümkün olduğunca maksimum senaryoları otomatikleştirmek için bir strateji planlamalıdır. .
- İşlevsel, regresyon ve performans testleri için sağlam ve yüksek kaliteli test otomasyonu çözümleri oluşturmaktan sorumludur.
- Gerektiğinde yeniden kullanılabilir komut dosyaları / araçlar oluşturun.
- Hem işlevsel hem de işlevsel olmayan test alanlarına katkıda bulunun. İşlevsel test, işlevsellik / gereksinimler açısından testi içerir ve büyük ölçüde kabul kriterleri veya kullanıcı hikayeleri ile yönlendirilir.
Bununla birlikte, fonksiyonel olmayan testler de aynı derecede önemlidir. Örneğin, Uygulama ne kadar başarılı, uygulama yeterince güvenli mi, uygulamada hiçbir hack kalmadığından emin olun, bu da uygulamanın güvenliğini engelleyebilir ve hem müşteriler hem de kuruluş için büyük bir kayba neden olabilir. - Ayrıca tasarım ve mimari tasarım tartışmalarına katılırlar ve kod incelemelerinde etkili geri bildirim sağlarlar.
Harika Bir SDET Olun
Harika bir SDET olmak için, rollerini daha iyi yerine getirmek için öğrenilmesi gereken bazı ipuçlarına / temel araçlara ve teknik becerilere bakalım.
Önceki bölümde, Testteki Yazılım Geliştirme Mühendisinin rollerinde büyük olmak için sahip olması gereken nitelikleri öğrendik. Açık bir zihniyete sahip olmalı, uyarlanabilir olmalı ve ürün veya ekibin gerektirdiği şekilde iletişim kurabilmeli, işbirliği yapabilmeli ve katkıda bulunabilmelidirler.
SDET'lerin öğrenmesi gereken bazı yaygın araçların ve teknolojilerin bir listesini görelim:
- Test prensipleri, test türleri ve metodolojileri hakkında sağlam bir anlayışa sahip olmalıdır.
- Sorunları ayıklamada oldukça uzman - aşağıdaki gibi hata ayıklama araçlarını öğrenin - Chrome Web Hata Ayıklayıcı Web uygulamalarında hata ayıklamanın yanı sıra test edilmekte olan bir uygulama için ağ günlüklerini araştırmak için son derece yararlıdır.
- Yeniden kullanılabilir kod / komut dosyaları yazabilmeli ve bu nedenle en az bir kodlama dilinde yetkin olmalıdırlar. Öğrenmesi en kolay olanı, çok çeşitli görevlere, otomasyon çerçevelerine vb. Uygulanabilen Python'dur.
- API testi istemcilerine aşina olun POSTAN
- Beyaz kutu test araçları ve tekniklerinin farkında olmalıdır - alaycı çerçeveler ( Mockito ), vb. gerektiğinde birim testlerinin yazılmasına da katkıda bulunmaları beklenebilir.
- Gibi sürüm oluşturma araçlarının farkında olmalıdırlar Git . Ayrıca, şu kavramlara aşina olmalıdırlar: Çekme istekleri , kod incelemeleri vb.
- Web uygulamalarının mimarisinin ve genel istemci-sunucu modelinin anlaşılması.
- Temel Nesne Yönelimli Programlama kavramlarının farkında olmalı ve KATI model ( S ingle Sorumluluk, VEYA kalem / Kapalı İlke L iskov İkame ben Arayüz Ayrımı, D ependency Inversion)
- Temel anlayış Sürekli Entegrasyon / Sürekli Teslimat kavramlar (CI / CD) ve ayrıca Jenkins / Bamboo gibi CI araçlarının farkında olmalıdır.
SDET'lerin genel olarak dağıtım sorunlarıyla ilgilenmesi ve bu nedenle bu araçların anlaşılması zorunludur. - En az bir ön uç otomasyon çerçevesine aşina olmalıdırlar. En kolay ve en yaygın kullanılan Selenyum . Bu, web uygulamaları için ön uç testinin en önemli noktasıdır ve neredeyse tüm kuruluşlar, UI testlerini otomatikleştirmek için Selenium çerçevesini kullanır.
- Performans testinin temellerini öğrenmenin yanı sıra açık kaynak performans testi araçlarını kullanarak basit komut dosyaları yazmanın yanı sıra JMeter çok yardımcı oluyor ve buna başvurabilirsiniz Jmeter eğitimi . Bu, SDET'lerin performans testi gibi işlevsel olmayan gereksinimleri de karşılaması beklendiğinden faydalıdır.
- Ayrıca, Güvenlik testinin temel kavramlarının da farkında olmalıdırlar. Bu aynı zamanda, uygulamada ele alınmayan temel güvenlik kusurlarının olmamasını sağlayan temel kodlama standartları bilgisine sahip olmayı da kapsar. OWASP tüm bu tür temel kavramlar için harika bir referanstır.
- SDET'lerin çevik geliştirme metodolojilerini bilmesi, anlaması ve uygulaması beklenir ve çevikliğin Sprint / Scrum metodolojisini kullanarak ekiplerle çalışma konusunda rahat olmalıdır.
- Aşağıdakiler gibi bulut teknolojisi platformlarından haberdar olmalı: Amazon AWS , Google GCP veya Microsoft Azure .
Şirketlerin çoğu artık bulut tabanlı bir altyapıya geçtiğinden, bulut araçları ve teknolojileri hakkında temel bir anlayışa sahip olmak genellikle başlamak için yararlıdır.
SDET'ler için Sertifikasyon
Genel olarak, SDET'ler için kullanılabilen belirli bir sertifika yoktur
Birisi Yazılım Geliştirme Mühendisini Test yolculuğunda başlatmak isterse, bu eğiticinin 'Nasıl harika bir SDET olunur?' Bölümünde belirtilen noktalara odaklanabilir ve ardından açık zihniyete sahip SDET'ler öğrenme yolculuğuna devam etmelidir işte.
Terminolojiyi ve temel bilgileri test etmek için, Yazılım testi mesleğinde olan herkesin şu sertifikaya sahip olması iyidir: ISTQB Foundation test sertifikası .
Bu sertifika, aşağıdaki gibi tüm temel yazılım testi konseptlerini kapsar:
- Test türleri - işlevsel / işlevsel olmayan
- Kara kutu / Beyaz kutu / Gri kutu testi
- Test planlama / Hata yönetimi
- Test teknikleri - Eşdeğer bölümleme, İzlenebilirlik matrisi vb.
Diğer uluslararası yazılım testi sertifikaları da mevcuttur, ancak bunların çoğu, şirketlerin SDET'leri kiralaması için çok önemli seçim kriteri değildir.
Tüm bu tür sertifikaların bir listesi mevcuttur İşte.
Mülakatlar
Daha büyük ürün şirketlerinin çoğunda, Yazılım Geliştirme Mühendisi ile Test görüşmesi, metodolojilerin ve ilgili kavramların gelişiminin çoğunu bilmeleri beklendiğinden, geliştirici görüşmelerine göre çok daha fazladır.
Ancak, röportajlar, geliştiricilere kıyasla biraz hoşgörülü. Burada vurgulanan, adayın bir soruna nasıl yaklaştığı ve bir kişinin sorun hakkında ne kadar geniş düşünebileceğidir.
Genel olarak, SDET görüşmeleri, Amazon, Microsoft, Adobe, Expedia, vb. Gibi hemen hemen tüm büyük ürün organizasyonlarında aşağıdaki turları / soru türlerini içerir.
- Yazılı Tur: Belirli bir ürün için test senaryoları yazma. Burada amaç, kişinin tüm işlevsel senaryoları, uç durum senaryolarını düşünmesi / listelemesi, güvenlik testi, performans testi vb. Üzerine odaklanan aday olması durumunda, testin tüm yönlerinin ne gibi düşünebileceği hakkında bir fikir edinmektir.
- Kodlama Turu: Küçük bir kodlama alıştırması verilir ve ayrıca adayın tüm birim testleri ve fonksiyonel test senaryolarını yazması beklenir. Burada test edilen alan veya beceri - temel kodlama bilgisi / yapıları, test edilebilir kod yazma ve Birim testi, Alay etme vb. Gibi beyaz kutu test teknikleri hakkındaki bilgilerdir.
- Tasarım Turu: Bir sistem tasarımı sorusu atılır, misal , youtube'u nasıl tasarlarsın
Bu tür sorular genellikle geliştiriciler için daha fazla ilgi uyandırır, ancak SDET'ler için görüşmeci, kişinin ne kadar geniş düşünebileceğini, adayın OOP kavramlarını bildiğini, adayın ölçeklenebilirlik, sağlamlık, yük dengeleme vb. Hakkında düşünme yeteneğine sahip olup olmadığını arıyor. , aday tasarlanacak uygulama için doğru veritabanlarını kullanabilir mi? - İK / Yönetici Turu: Burada aday ile ilgili takım fitness, kültür kondisyonu vb. Şeyler gözlemlenmekte, maaş tartışmaları yapılmakta ve görüşmeler de yapılmaktadır.
Önerilen Okuma => SDET Mülakat Soruları
SDET Maaşı
Önceki bölümlerimizde tartıştığımız gibi, SDET'ler manuel test rollerinin çoğundan daha yüksek maaşlar verir. Çoğu durumda, maaşlar, benzer deneyim düzeyinde geliştiricilere sahip olanlarla karşılaştırılabilir.
Başvurabilirsin İşte farklı kuruluşlarda farklı SDET profillerindeki maaş aralıklarını öğrenmek için. Genel olarak, SDET maaşı, organizasyonun yanı sıra deneyim grubuna göre farklılık gösterir.
Aşağıda Microsoft, Expedia gibi önde gelen şirketler için SDET maaşlarının bir karşılaştırması bulunmaktadır.
Windows 7 64 bit için en iyi kayıt defteri temizleyici
Seviye | Microsoft ($) | Expedia ($) |
---|---|---|
SDET - I | 65.000 - 80000 | 60000 - 70000 |
SDET - II | 75.000 - 11.000 | 70000 - 100.000 |
Bay SDET | 100.000 - 150.000 | 90000 - 130.000 |
Kariyer yolu
Genel olarak SDET kariyer basamakları şu şekilde başlar ve büyür:
- SDET-1 - Otomasyon betikleri yazabilen genç seviye SDET.
- SDET-2 - Yeniden kullanılabilir araçlar ve otomasyon çerçeveleri yazabilen deneyimli SDET.
- Bay SDET - Üst düzey SDET, SDET 1 ve SDET 2 gibi bireysel bir katılımcı olabilen ancak aynı zamanda
- Kod incelemeleri yapmak.
- Tasarım tartışmalarına katılın ve tasarımda uygun değişiklikleri yapmak için önerilerde bulunun.
- Ürünün genel test stratejisine katılın.
- CI / CD teslim modellerine katılın, yürütme ardışık düzenleri oluşturun, vb.
- SDET Yöneticisi - SDET2'den sonra, Sr SDET veya SDET Manager Path'i seçebilirsiniz. Bir SDET yöneticisi, temel SDET çalışmasına ek olarak yönetim / liderlik sorumluluklarına da sahiptir.
- Test Mimarı / Çözüm Mühendisi - Test Mimarı veya Çözüm Mühendisi, çoğunlukla birden fazla proje için genel bir çerçeve tasarlayan / mimar olan kişidir, çerçeve test spesifikasyonları, aynı zamanda bir teslimat yöneticisi olarak da hareket edebilir. Bu kişiler birer bireydir ve birden fazla projenin test sonuçlarına ulaşmasına ve kapsamlı bir şekilde test edilmiş ve hatasız bir ürün göndermesine yardımcı olur.
İşte SDET Kariyer Yolunun blok düzeyinde bir temsili:
Sonuç
Bu eğiticide, roller ve sorumluluklar, sahip olunması gereken beceriler, SDET'ler ile Manuel Testçiler arasındaki farkın ne olduğu ve Testte harika bir Yazılım Geliştirme Mühendisi olmak için neler yapılması gerektiği açısından bir SDET'in ne olduğu hakkında derinlemesine bilgi edindik.
Genel olarak, SDET yüksek talep gören bir roldür ve hemen hemen tüm iyi ürün şirketleri ekiplerinde bu role sahiptir ve çok değerlidir.
Önerilen Kaynaklar
- SDET Mülakat Soruları ve Cevapları (Tam Kılavuz)
- 2021'in EN İYİ 10 Özel Yazılım Geliştirme Şirketi ve Hizmeti
- 20 EN İYİ Yazılım Geliştirme Aracı (2021 Sıralaması)
- SSDLC için Önlemler (Güvenli Yazılım Geliştirme Yaşam Döngüsü)
- SDLC (Yazılım Geliştirme Yaşam Döngüsü) Aşamaları, Metodolojileri, Süreci ve Modelleri
- Yazılım Geliştirme ve Test Metodolojileri (Artıları ve Eksileri ile)
- Yeni Başlayan Bir Geliştiricinin (ve Test Uzmanının) Yazılım Testi Hakkında Bilmesi Gereken 5 Şey
- Cesur ve Kendine Güvenen Bir Yazılım Testçisi Olmanın 5 Yolu