Test uzmanları çalışmalarını otomatikleştirmeli mi?


9

Test sürecimizi kurmaya çalışıyoruz. Testçilerimizin otomatik regresyon testleri geliştirmesi gerekip gerekmediğini veya geliştiricilerin bunu yapması gerekip gerekmediğini merak ediyoruz.

Peki ya diğer otomatik test türleri? Test kullanıcıları bunları geliştirmeli mi?


Onlara "testteki geliştiriciler" demeye başlayın ve belirsizlik ortadan kalktı.
Edward Strange

@Crazy Ama 2 geliştirici ekibine sahip olmak daha pahalı değil mi?
Jader Dias

5
Ne daha pahalı? Kötü test edilmiş bir ürün satıyor musunuz? Geliştiriciler ürün yerine testler yazdıkları için geliştirme sürecinin tıkanması mı?
Edward Strange

Yanıtlar:


12

Testçilerin otomatik testler geliştirmeleri gerektiğini söylüyorum - koda "dış göz çifti" yaklaşımına sahipler ve düşünmediğiniz hataları ele alalım. .

Ayrıca, işlevsel gereksinimleri anlamaları geliştiricilerin anlayışından daha yüksek olabilir - bu nedenle programlayıcının düşük seviye bilgisi arasında oturmak, ancak BA'nınkinden daha yüksek seviyede olmamak.


Ancak geliştiricilerden bu test senaryosunu yazmasını isteyemezler mi?
Jader Dias

1
Yukarıda söylediğim nedenlerden dolayı, geliştiriciler dahili uygulama hakkında çok daha fazla bilgi sahibi olacaklar ve yazılıma dışarıdan gelenlerden farklı yaklaşacaklardı.
James Love

Bir test senaryosu uygulamasının bir kişiden diğerine ne kadar farklı olabileceğini göremiyorum.
Jader Dias

5
@Jader, orijinal kodun yazılmasından farklı kişilerin otomatik testleri yazmasını istiyorsunuz. Aksi takdirde testler, kodun yazıldığı gibi çalışması için taraflı olacaktır.
Marcie

3
Geçtiğimiz birkaç hafta boyunca, kodu için fikstür yazmama yardımcı olan bir geliştiricim vardı. Çok iyi bir geliştiricidir, ancak kodunun kapsamını düzenli olarak derinlemesine düşünmediği için kesinlikle bazı nüansları kaçırır. Geliştiriciler test konusunda yardımcı oluyorsa, bir test cihazının çalışmalarını gözden geçirmesini isteyin.
Ethel Evans

11

Otomatikleştirebiliyorsanız, otomatikleştirin.

Otomatikleştiremeyeceğiniz şeyleri bulmak için test kullanıcılarını serbest bırakın. Ve yeni bir hata bulduklarında, otomatikleştirilip otomatik testlere eklenebiliyorsa, ekleyin.


Ama neden sadece geliştiricileri değil?
Jader Dias

@JaderDias, daha önce de belirtildiği gibi, test kullanıcılarının test etmeye çalıştıkları kod hakkında önceden tasarlanmış önyargıları olmamalıdır
CaffGeek

3

Bence, geliştiriciler ve test uzmanları farklı test türlerinden sorumludur.

Geliştirici, mantığı yazarken, birim ve entegrasyon testleri de yazmalıdır. Bu, geliştiricinin şimdiye kadar yazdıklarının amaçlandığı gibi çalıştığından emin olmasını sağlayacaktır. Ayrıca, bu testler geliştiricinin gelecekteki değişiklikleri yaptıklarında da çalışmaya devam edecektir. Mantık tamamlandıktan sonra, geliştirici, yazılanların özellikleri anladıkları ve test cihazına geçebildiklerinden emin olabilir.

Bu noktadan itibaren test cihazı, iş mantığının istendiği gibi çalıştığından emin olmak için sistem çapında testler yazmaktan sorumlu olmalıdır.

Geliştiricilerin genellikle koda çok fazla bağlı olduğu göz önüne alındığında, test kullanıcıları geliştiricinin testlerini temizlemeye yardımcı olmalı, ancak tam tersi olmamalıdır.


Son cümlenizi merak mı ediyorsunuz - geliştiricilerin fonksiyonel testlere katkıda bulunabileceğini düşünmüyor musunuz? Testçiler test yapısını ana hatlarıyla belirtir ve test senaryolarını belirlerse ve geliştiriciler yalnızca uygulamaya yardımcı olursa ne olur?
Bayan Cellanie

1
Bence kendi başlarına geliştirici olan ve kendi testlerini yazabilen test uzmanları hayal ediyorum. İşleri, gereksinimleri gözden geçirmek ve test senaryolarını tanımlamak için kullanıcıyla konuşmak ve ardından vakaları yazmak olacaktır. Bu, mantık geliştiricilerini yazarken mantığa yakın olmalarını serbest bırakır. Ayrıca, test edicileri, nesnellikle ve pişmanlık duymadan onu kırmaya çalışabilecekleri mantığa "sahip olmaktan" yeterince uzak kalır.
Taylor Price

2

Deneyimlerime göre, bir test cihazının bir test senaryosunu otomatik olarak ayarlama ve yürütme şekli aslında geliştiricinin yaptığı işlemden farklıdır. Testçiler, test durumundan en fazla bilgiyi nasıl elde edeceklerini, testlerin hızlı bir şekilde nasıl yürütüleceğini, testlerin nasıl sürdürülebileceğini ve daha fazlasını düşüneceklerdir. En önemlisi, test kullanıcıları geliştiricilerin kaçıracağı test kapsamının nüanslarını görecekler.

Test geliştirme kaynakları düşükse, geliştiriciler yardımcı olabilir - ancak bir testçi çalışmalarını dikkatle incelemelidir. Geliştiriciler, gerçek test senaryoları yazmadan önce fikstürler ve test araçları üzerinde çalışmalı ve geliştiriciler asla kendi kodları için test senaryoları yazmamalıdır. Geliştiricilerin testlerde yardımcı olması avantajlıdır - geliştiricileri ürünün diğer parçalarına maruz bırakır ve testler daha iyi geliştiriciler olmalarına yardımcı olabilir. Ancak, küçük bir geliştiricinin çalışması hiçbir zaman bir kod incelemesi olmadan gitmeyecek gibi, bir geliştiricinin KG çalışması daha fazla deneyim testi olan birinden bir KG incelemesi almalıdır.

Eklemek için düzenlendi: 5 yıllık deneyime sahip bir SDET'im. Her biri 10 yıldan fazla deneyime sahip büyük geliştiricilerle çalışıyorum ve son zamanlarda bir test darboğazından geçmek için onlarla birlikte çalışıyorum.


0

Gerçekten görmek istediğim bir şey, test kullanıcıları için ilerlemelerini bir test komut dosyası aracılığıyla etkili bir şekilde kaydetmelerine ve daha sonra bu komut dosyasının gelecekte otomatik olarak çalışmasına izin verecek sağlam otomasyon araçlarıdır. Özellikle bu, aynı komut dosyasının test cihazının hepsinden elle geçmesine gerek kalmadan farklı işletim sistemi sürümlerinde çalıştırılmasını kolaylaştırırsa.

Ne yazık ki, kesinlikle üzerinde çalıştığım ürün için, piyasadaki araçların hiçbiri işi yapmıyor. Ama bunu akılda tutmaya ve yaptığınız şey için işe yarayacak bir şey olması durumunda piyasada mevcut olanlara bakmaya değer.


Visual Studio 2010 (Premium veya Ultimate, hangisini hatırlayamıyorum) UI testini otomatikleştirmek için ekran eylemlerini kaydeden bir şeye sahiptir. UI Testing SharePoint'in bir şovunu yaparken Andrew Woodward MVP tarafından bunun bir demosunu gördüm, inanılmaz şeyler.
James Love

Kayıt ve oynatma haklı olarak oldukça zayıf bir üne sahiptir. Oldukça kırılgan ve bakımı zor olma eğilimindedir. Evet, hızlı ve kirli olarak "Bunu 4 farklı veri merkezinde çalıştırmam gerekiyor, gelecekteki kullanım için saklamak istemiyorum", gayet iyi, ama bunu sürdürmek korkunç, çünkü tonlarca tekrarla karşılaşıyorsunuz. Küçük bir öğe değişir - ve birdenbire 100 testi güncellemeniz gerekir. Acı verici. Ayrıca hiçbir şekilde, bir insanın açıkça kontrol etmediğiniz tüm diğer şeyleri fark edeceği varsayımı ile tasarlanma eğilimi olan manuel testin yerini almaz.
testerab

Oldukça tatlı olan şey, işaretçiyi hareket ettirmekten ve fareyi tıklatmaktan biraz daha düşük bir seviyeye götürebilecek bir şey olurdu, böylece aslında tıklamanın gerçekleştiği yer yerine hangi düğmenin tıklandığını kaydedersiniz. Bu, bu tür testleri daha esnek ve pratik hale getirecektir. Her komut dosyasını çalıştırmanız gerektiğinde, örneğin, pencerelerin dokuz farklı sürümü, hepsini manuel olarak yapmak bir kabus.
glenatron

İd ziyade yere göre düğmeye belirlenmesi olduğu bazı araçlar ile mükemmel mümkün. Kayıt ve oynat komutları ne yazık ki korumak için hala korkunç korkunç - tekrarlama sorunu çözmez. Eğer gerçekten herhangi bir komut dosyası tutmak veya bir düzineden fazla oluşturmak istiyorsanız, test otomasyonunuzu dikkatli bir şekilde tasarlama ihtiyacından kaçındığını sanmıyorum. Auto-It ile birlikte Robot Framework gibi anahtar kelime odaklı bir şey kullanmayı düşündünüz mü?
testerab

0

Burada gerçekten önemli olan önemli bir ayrım şudur: Test kullanıcılarınız basitçe kontrol ediyorlar mı yoksa test mi ediyorlar ?

Michael Bolton'un bu blog yazısı daha iyi açıklıyor, ama özünde: sadece davranışı doğrulamak mı istiyorlar, yoksa sistemle ilgili sorunları mı bulmak istiyorlar?

Agile Testing Quadrants'ı düşünmenin de yararlı olduğunu düşünüyorum (Brian Marick başlangıçta bunları açıkladı, ancak Lisa Crispin ve Janet Gregory'nin "Agile Testing" kitabında karşılaştım: Agile geliştirme yöntemini takip etmiyor olsanız bile, ürünü eleştiren testler ile ekibi destekleyen testler arasındaki ayrım, otomasyonu düşünürken ve kimin neyi neden yaptığını gösteren bir plan geliştirmeye gerçekten değer.

Örneğin, geliştiriciler tarafından yazılan birim kontrolleri, değişiklik dedektörleri gibi davranarak, düzenli olarak tekrar çalıştırıldıklarında gerilemeleri erken yakalamanızı sağlar - bunlar takımı destekleyen testlerdir. Düzenli ve hızlı bir şekilde tekrar çalıştırılabilmeleri için otomatikleştirilmiş sistem düzeyinde regresyon kontrolleri, regresyonları erken yakalayarak ekibi destekliyor ve geliştiriciler tarafından yapılan birim testlerini tamamlıyor. Bu, testçilerinizin, örneğin ürün keşif testlerini eleştiren testler yapma süresini kısaltır. Ya da ürünü test etmek için otomatik kontrollerin bazılarını uygulamak mümkündür.

Bağlantı kurduğum Lisa Crispin sunumu hakkında gerçekten sevdiğim bir diğer şey, otomasyonun manuel testi desteklemek için de kullanılabileceğine dikkat çekiyor - test verileri oluşturmak, bugün odaklanmak istediğiniz noktaya bir senaryo elde etmek için kullanılan otomasyon, çünkü misal.

Bu iki makaleyi dikkate almak, ne tür testler yapmak istediğinizi analiz etmenize, otomasyon için neyin uygun olabileceğini seçmeyi ve test otoriteleri tarafından hangi otomasyon parçalarının daha uygun olduğunu belirlemenizi kolaylaştıracaktır. geliştiriciler tarafından.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.