Geliştiricilerin kendi çalışmalarını test etmelerine izin vermek / vermemek


81

Bir geliştiricinin, ürünün üretime girmeden önceki son adımı olarak kendi çalışmasını test etmesine neden izin verdiğine dair bazı argümanlar toplamak istiyorum, çünkü ne yazık ki, benim iş yerim bazen bunu yapıyor (bu en son ortaya çıktı. , argüman çoğu insanın başka şeylerle meşgul olmasına ve programın bu bölümünü tanıyan başka bir kişiye daha fazla zaman ayırmamasına neden oldu - bu çok özel bir yazılımdır).

Bu durumda test planları var (her zaman olmasa da), ancak testten geçen değişiklikleri yapan ve son testi yapan bir insanı yapmaktan çok hoşlanıyorum. Bu yüzden, bir dahaki sefere tartışıldığı zaman ortaya çıkarabileceğim iyi ve sağlam bir tartışma listesi sunup sunamayacağınızı soruyorum. Veya, özellikle de test edilecek resmi sınav durumları olduğunda, bunun tamamen iyi olduğunu düşünüyorsanız, karşı-argümanlar sağlamak için.


6
Sorunuz, geliştiricilerin herhangi bir test yapmaması gerektiğini gösteriyor. Geliştiricilerin, test edicilerin zamanını boşa harcamamak için çalışmasını (sadece derlenmesini değil) sağlamak için yazılımı gerçekten test etmelerini sağlardım.
dnolan

4
@dnolan: Buradaki son testten, kodun üretime geçmeden önceki testlerinden söz ediyorum. Elbette geliştirici geliştirme sırasında test etmelidir.
pyvi


Yanıtlar:


103

Diğerlerinin (ve kendinizin) belirttiği gibi, geliştiricilerin kendi kodlarını test etmesi gerekir. Bununla birlikte, bundan sonra, önemsiz herhangi bir ürünün bağımsız kişiler (QA departmanı ve / veya müşteri kendisi) tarafından da test edilmesi gerekir.

Geliştiriciler normal olarak geliştirici zihniyetiyle “bu işi nasıl yapacak?” İle çalışır. . İyi bir testçi "bu nasıl kırılır?" Diye düşünüyor. - çok farklı bir zihniyet. Birim testi ve TDD, geliştiricilere bir dereceye kadar şapka değiştirmeyi öğretiyor, ancak ona güvenmemelisiniz. Üstelik, diğerlerinin de belirttiği gibi, her zaman yanlış anlama gereksinimi olasılığı vardır. Bu nedenle, son kabul testleri müşteriye mümkün olduğunca yakın biri tarafından yapılmalıdır .


3
Katılıyorum. Saatler, günler veya haftalarca "bu işi" yapmaya çalışmaktan haftalar geçtikten sonra, bu zihniyeti kırmak ÇOK zor olabilir (hatta imkansız). Çalışmanızı bir kenara bırakmak ve bir aradan sonra tekrar gelmek için vaktiniz varsa nesnel olarak test etmek mümkün olabilir, ancak bu nadiren mümkün.
PeterAllenWebb

Siyah şapka test cihazı ...?
Mateen Ulhaq

7
? Nasıl bu işi yapmak için "Geliştiriciler normalde geliştirici zihniyet ile çalışmak 'için 1" 'bu nasıl kırmaya'. İyi bir tester hakkında düşünüyor'
Wipqozn

Bir ekstra not burada; Testler önemli olmakla birlikte, kod incelemeleri böcekleri yakalamakta büyük ölçüde yardımcı olur ve doğru birim testlerinin yazılmasını sağlar. Geliştiriciler, ünite testleri ile farklı hataları test edebilir ve bu da yazılımı test eden birden fazla kişinin olması son derece önemlidir.
Rudolf Olah,

127

Geliştirici kodlarının nasıl çalıştığını bilir ve kodlarını bu bilgiye göre test etme alışkanlığına girer.

Geliştirici, “nasıl çalışması” gerektiği yerine “nasıl çalıştığı” zihniyetinden kendilerini çıkarmakta zorlanacaktır.

Bu nedenle, programı test etmek için yüksek derecede nesnelliğe sahip birini bulmak, yani KG veya Test Mühendisleri için daha iyidir.


3
Kabul edilen bir geliştirici, uygulamalarını "test etmek" için en az direnç yolunu kullanacak, kenar kasalarına nadiren bakılacak.
dnolan

68
@dnolan, sadece kodlarını "korumak" değil, aynı zamanda kodlama konusunda düşünmedikleri bir şey değil, test için düşünmeyecekleri.
StuperUser

4
Geliştiriciler aynı zamanda çalışmalarını yönlendiren aynı önyargılarla test ederler. Test cihazlarının paylaşma olasılığı daha düşüktür.
AProgrammer

4
@ Jörg W Mittag gerçekten değil. Her testçi her test senaryosunu düşünmeyeceği gibi, her geliştirici de yapmayacaktır. Bu nedenle çift programlama vb. Ve QA ekiplerini ayırın. İki kafa daima bir kişiden daha iyidir.
StuperUser

18
Çalıştığım bir yerde, sadece yeni özellikler değil aynı zamanda test planları da yazmam gerekiyordu. Bu, eğer bir şeyi yanlış anlasaydım yanlış uygulanacaktı, ancak test departmanı tarafından yakalanmayacaktı.
David Thornley

30

Test etmek için test etmek basit. Bu tür bir önyargı, gösteri stoperlerini gerçekten bulmak için gereklidir.


15

Geliştiriciler işlerini test etmelidir. Bu zımni bir sorumluluktur.

İfadenize dayanarak testleri yapmak için özel bir ekibiniz olmadığını farz ediyorum. Ancak, test için özel bir ekibin olması geliştiricilerin kodlarını test ettikleri için gerçekten yardımcı olacaktır. Bu, bir çeşit kalite güvence ekibine sahip olduğunuzda, geliştiricilerin sorumluluğu olarak testler yapabileceğiniz anlamına gelmez.

Geliştiriciler, böcekleri yakalamak için genellikle büyük deliklere sahip ağlar kullanır. Sonuç olarak, daha küçük böcekler kaçar.


+1 "Geliştiriciler işlerini test etmeliler. Bu bir zımni sorumluluktur" - İşinizi başkası tarafından test
ettirmenin amacı

15

Çünkü geliştiriciler kendi kodlarını kırmaya çalışmak konusunda iyi değillerdir. Akılları, doğru veri girişi yolunu ve uygulama ile etkileşimi izler. Birçok hata, normal bir erkek gibi sistemle etkileşimin bir sonucudur . Geliştiriciler normal kullanıcılar değil. Onlar profesyonel kullanıcılar.


3
Genel olarak konuşursak, geliştiriciler kendi kodlarını test etmek konusunda korkunç bir iş çıkarır ve ben de kendimi o gruba dahil ederim. Yazılım kuran bir şirket için, sağlam bir KG yönetimi departmanı kesinlikle vazgeçilmezdir.
Adam Crossland

3
Oldukça karmaşık, özel yazılımlar için geliştiriciler yazılımın profesyonel kullanıcıları bile olmayabilir. Temel bir bileşende yaptığım bir değişikliğin sistemin diğer kısımlarını nasıl etkileyeceğini kesinlikle her zaman tahmin edemem. Başkasının üzerinden geçmesi, çift programlama ile aynı amaca hizmet eder: sadece biraz daha ön düşünmeye zorlamakla kalmaz, aynı zamanda, bir müşteri tarafından yapılana kadar farkedilmeden hata yapma olasılığını büyük ölçüde azaltır. Bu noktada düzeltilmesi çok daha pahalı olacak.
CVn

Geçmişte özel test cihazlarına ihtiyaç duymadığınızı belirledik, başka bir geliştiricinin yazdığınız işlevselliği kontrol etmesi genellikle yeterlidir. Bunu yapmamızın nedeni, şirketimizin test cihazları için maymun kiralayabileceklerini düşünmeleridir. Ancak katılıyorum, iyi testçiler çok önemlidir.
c_maker

10

Özel bir test ekibinin olması için birkaç iyi neden vardır. Birincisi, yukarıda belirtildiği gibi, geliştiriciler kodlarının çalıştığını test etmekte çok başarılılar, ancak bu kurallara uymuyorlar.

Ayrıca, dediğiniz gibi bir geliştirici ne yazdığını bilir, ancak bir test ekibi ne yazılması gerektiğini bilir. Zaman zaman, bu iki kavram uyuşmuyor. Test ekibinin işlerinden biri, yazılımın gereksinimleri karşıladığından emin olmaktır. Çoğu durumda, bir geliştirici sistemin sadece birkaç bölümünü çok iyi tanıyor, ancak QA ekibi her şeyi biliyor.

Bu da bir sonraki sebepten ötürü, test ekipleri tam entegrasyon testi yapıyor. Yeni yazdığınız kod parçası kendi başına iyi sonuç verebilir, ancak bilmediğiniz diğer işlevleri bozabilir.

Bir QA ekibiyle birlikte çalıştıktan sonra,% 100 yaptıklarını ve yazılım ekibinin değerli bir parçası olduklarını söyleyeceklerini takdir ediyorum. Bir QA ekibiniz olduğunda, kodunuzu salıvermeyi çok daha kolay hale getirir, b / c'nin tamamen test edildiğini bilirsiniz ve bu da saat 3'ten daha az çağrı alacağınız anlamına gelir.


Gereklilikleri gözden geçirmedeki QA hakkındaki noktayı seviyorum, gereksinimleri karşıladığından emin olmak için. En az 2 kişinin "olması gerektiği" gibi çalıştığını kabul etmesi iyidir.
Andy Wiesendanger

İçin +1 a testing teams knows what should have been written. Bu çok çok doğru.
bir CVn'de

8

Geliştiriciler kendi kodlarını test etmelidir.

Bağımsız test uzmanları sadece kırılma testini yapmakla kalmaz, aynı zamanda kod geliştiricilerin kodlama sırasında yaptıkları belirsiz ve tanımsız varsayımları test eder.


+1: Bu daha üst sıralarda yer almalı. Bu sadece geliştiricinin tembelliği ile ilgili değil. Kendi kodunu test eden bir geliştirici, kodlama sırasında aklında olduğu gibi, belli bir varsayımlara sahip olacaktır. Bu yüzden test ederken kör bir yeri var. Tamamen farklı varsayımlarla kendi koduna giren bağımsız bir test cihazı olarak kendi kodunu kırmanın yolları konusunda yaratıcı olmayacaktır.
Ken Bloom

7

Geliştiriciden, herhangi bir değişiklik yapmadan önce bazı ilk testler yapmasını ve kodun işe yaradığını tatmin etmesini beklerdim. Ardından geliştiriciden, kendi özel bilgileri olan herhangi bir "beyaz kutu" bilgisini test senaryolarına girmesini beklerdim. Örneğin, kodun etkilenmiş olabilecek diğer tüm alanlarını ayrıntılandırır.

Geliştiricilere kendi kodlarını test eden ana itiraz, yalnızca bir bakış açısını test etmenizdir. Geliştirici spesifikasyonu okudu ve yorumladı. Umarım şartname açık, eksiksiz ve açıktır, ancak bu her zaman böyle değildir. Geliştirici şartnamenin bir bölümünü yanlış anlamış olabilir. Kendi kodlarını test ederlerse, işlev bekledikleri gibi çalıştığını göreceğinden bu durum yakalanmayacaktır.

Farklı insanlar aynı zamanda bir ürünü farklı şekillerde kullanma eğiliminde olacak ve bunun sonucunda da kod boyunca farklı yollar kullanacaklardır. Bir geliştirici, kodun kendileri için çalışmasını sağlamış olacak, ancak başka bir test cihazının bulabileceği bir son durum olarak düşünmemiş olabilir.


5

Geliştiriciler gerektiğini kendi çalışmalarını test edin. Geliştiricilerin test edilmemiş çalışmayı bir QA ekibine ya da geliştirici meslektaşlarına itmesine izin vermek, Gerçekten Kötü Bir Fikirdir. Hem geliştiricilerin hem de test edicilerin zamanlarını boşa harcar ve ilişkileri bozar.

Ancak, bu her zaman yeterli değil. Geliştiricilerin sistemde mutlu bir yol izlemesi veya geliştirme boyunca tekrar tekrar maruz kaldıkları bazı özdeşleşmelere karşı kör olma olasılığı yüksektir.

Diğer bir nokta, şartname ile dağıtım arasında birkaç iletişim katmanı olabileceğidir. Bu, konuşlandırılabilir finalde Çin Fısıltıları etkisine yol açabilir. Gereksinimi veya hata raporunu tanımlayan kişi istediği gibi çalıştığını test ederse en iyisidir.


3

Bir geliştirici olarak kendi kodunuzdan siz sorumlusunuz, test etmelisiniz. Does the feature work as expected?Cevabınız evet ise, bitirdiniz.

Neden test sınavları yapmamalısın?

  1. Sen sübjektif bulundu böcek sizden (veya meslektaşları) tarafından yazılmış gibi.
  2. Şirketin vaka testleri yapması için çok pahalı . (Umuyorum).

2
Geliştiricilerin <burada yapmak istemediğiniz bir görevi yerine getirme> yapamayacak kadar değerli olduğu fikri benim deneyimim açısından oldukça aşındırıcı olabilir.
Jeremy

3

Genelde, geliştiriciler, çoğu durumda, bazı özel durumlar haricinde kodu kullananlar olmayacaktır. Bu yüzden bir üretim sistemine geçmeden önceki son test adımı kullanıcı kabul testi UAT olmalıdır. Genellikle paketin ne yapmasını beklediklerine daha aşina oldukları varsayılır. Ve genellikle, günlük olarak kullanmayan birisine yabancı olan giriş akışlarıyla işleri kırma konusunda daha yeteneklidir.

Proje planlarınız kullanıcı testlerine uygun değil mi? Kullanıcıların bunu test etmesini sağladıysanız, uygulama sonrasında, dünyamda kötü bir şey olmayan hataları yakalayabilirsiniz.


3

Geliştiriciler kendi kodlarını test etmemelidir, çünkü bu kendi çocuğunuzun sanatını yargılamaya benzer. Her iki şekilde de sana çok yakışacak ve kusurlarını belirtmek için profesyonellere ihtiyacın var. Diğer taraftan birim testi, çocuğunuzun kurşunla boyamaya çalışmadığından emin olmaya benzer.

GERÇEKTEN QA kiralamak istemiyorsanız, geliştiricilere diğer geliştiriciler için test kodu yazmalarını sağlayın. Bu iyi bir ilk adımdır - yakında geliştiricilerin KG kaynaklarını talep ettiğini göreceksiniz, çünkü zamanlarının çoğu CR'ye ek olarak diğer sorunların kodlarını test etmek için harcanıyor.


Evet, kodu test eden diğer geliştiriciler, diğer kaynakların yokluğunda minimum / geçici bir çözümdür. (Tabii ki birden fazla geliştiriciniz var!)
Tao

3

Sadece geliştiriciler kodlarını koruyacaklar, belirli bir durumun farkına varamazlarsa veya bir şartnameyi bir şey geliştirdikleri gibi yanlış yorumladılarsa, kodlarını test ederken bu durumları kaçıracaklar.

Test için teknikler ve beceriler de çok farklı.

Bir test ekibi tarafından yapılan çoğu test işlevseldir (bir ürünün özelliklerine göre işlev görür) ve kara kutu (test ekibi bir uygulamanın iç çalışmalarını görmez). İşlevsel test uzmanlarının işlerin nasıl yürüdüğüyle ilgilenmeleri gerekmez, sadece çalışıp çalışmadıklarına odaklanmaları gerekir.


2

Tecrübelerime göre, en azından küçük organizasyonumda, son kullanıcının test etmesi gerekiyor. Neredeyse tüm projelerde gerekli tüm bilgileri sağlayamıyorlar ve her zaman belirli detayları bırakıyorlar. Geliştirici her zaman bir test dezavantajındadır, çünkü kullanıcının işini nasıl yapacağını bilmemektedir, bu nedenle yazılımın verdiği bilgiye göre çalıştığını bildiği halde, son kullanıcıya yardımcı olup olmayacağını bilmemektedir. işlerini yap.


1
Kesinlikle. Çalışma kodu durum için doğru kodla aynı şey değil.
HLGEM

2

Geliştiriciler gereksinimleri yanlış ve yanlış yorumluyorlar ve gereksinimlerden sorumlu olanlar genellikle kilit hususları belirtmekte başarısız oluyorlar. Geliştirici testlerinden başka kimse test etmezse, yayınlanmadan önce bu bağlantıları kesen kimse bulamaz. Geliştiriciler test ederken, nasıl çalışması gerektiği hakkında çok fazla şey biliyorlar ve kullanıcıların deneyebileceği aptalca şeyleri denemiyorlar. Devs, testlerini, gerçekten ne anlama geldiğinin çok sık olmadığı gereksinimi kendi yorumuna dayanarak da yazar. Bu yüzden testler geçti ancak gereksinim karşılanmadı. Farklı bir kişi testi yaptırdığınızda, bu kişi gereksinimler hakkında farklı bir fikre sahip olabilir ve genellikle iki farklı kişinin bunu ne kadar farklı şekilde yorumladığına göre yeniden yapılanmanın zayıf bir şekilde ifade edildiği yerleri bulursunuz. Bunu testten geçirdikten sonra, canlı yayınlanmasından çok daha iyi.


Evet, mükemmel nokta. İş analizinin çoğu zaman eksik olduğu gerçeği, gereksinimlerin çoğu zaman kırılmış ya da eksik olduğu anlamına gelir; alan adı).
Bernard Dy,

2

Geliştirici ilk testini yapmalıdır, böylece kodladığımız parçanın, ihtiyaç duyduğumuz şartlara göre çalışması beklendiği gibi çalışacağını bilmeliyiz. Bu yüzden normal sınamayı yaptık, yazdığımız kod için Birim Sınamalarını yazdık.

Bir sonraki adım, QA'ların, geliştiricilerin kodu yazarken ne göremediklerini bulma görevidir. Bir geliştirici daha yüksek düzeyde düşünüyor, ancak kullanıcı aynı seviyede düşünmeyebilir. Geliştirici parçasını test ederken ve bir metin kutusuna bir metin girmek zorunda kaldığında, kullanıcının da bunu yapacağını düşünerek her zaman tam bir dize girebilir. Kullanıcı da yapabilir, ancak rastgele, metinde% & $ ^ gibi özel bir karakter girdiğinde ve uygulamayı sonlandırdığında son kullanıcıya iyi görünmüyor. Bir geliştirici, bu şekilde düşünmek için eğitilmediği için olabilecek tüm olasılıkları düşünemez ve düşünmeyecektir. Bir Kalite Güvence (test cihazı) söz konusu olduğunda, her zaman kullanıcının bu uygulamayı kırmak için ne yapabileceğini düşünür ve kitaptaki her aptal şeyi dener, kullanıcılar aptal değildir, ancak hiçbir şeyi şansa bırakmamalıyız.

Şimdi ayrıca aynı anda yapılan birden fazla parçanın olduğunu ve her ikisinin de üretime gireceğini de anlamalıyız. Geliştirici yalnızca parçasını test edebilir ve iyi çalıştığını düşünebilirdi, ancak itilen tüm parçalar için genel regresyon testi yapılması ve iki farklı parçanın kombinasyonunun uygulamayı bozabileceğini ve ya iyi görünmüyor. Ayrıca, yük testi senaryolarını ve test uzmanlarının daha fazla tanıdığı diğer şeyleri de göz önünde bulundurmalıyız.

Sonunda, yaptığımız parçanın beklenenin ne olduğunu görmek için UAT (Kullanıcı Kabul Testi) yapmamız gerekiyor. Genel olarak gereksinimler BA'ları yerine getirse de, nihai kişi nasıl göründüğünü tam olarak bilemeyebilir ve beklediklerinin olmadığını düşünebilir veya daha iyi görünmesi için başka bir şey eklemek isteyebilir ya da bir nedenle hurdaya ayırabilirler. Parçanın, mevcut işlevsellik ile birlikte olmayacağını düşündükleri gibi.

Yukarıda açıklandığı gibi, bunlar çok önemlidir ve yalnızca geliştirici tarafından yapılamaz ve uygulamanın iyi çalışması için kesinlikle gereklidir. Yönetim bunun muhafazakar bir yaklaşım olduğunu söyleyebilir, ancak daha iyi bir yaklaşımdır. Yukarıda belirtilenlere biraz tweaks yapabiliriz ancak bir bütün olarak kaçınamayız.


2

Yukarıdaki yorumlar büyük puanları artırıyor.

Daha önce belirtilmeyen bir ek, ayrı bir test koduna sahip olmanın gereksinimleri kontrol etmek ve sistemin bunları doğru şekilde uygulayıp uygulamamasıdır.

Gereksinimler ve belgeler mükemmel değildir ve çoğu zaman uygulama, geliştiricinin gereksinimlerinin yorumunun bir sonucudur.

Testler ayrı bir kişi tarafından yapıldığında, test planı oluşturulurken ve testler yapılırken gereksinimlerin kendi yorumunu sağlarlar.

Test aktiviteleri geliştirme aktivitelerinden bağımsız olarak yapıldığında ve her ikisi de "aynı fikirdeyken" çıktıları, sistemin doğru olduğu ve gereksinimlerin orijinal amacına tam olarak uyduğuna dair ek bir onay sağlar.


2

Bir programcı, test ederken, "Miktar" etiketli bir metin kutusu görecek ve "1" girecektir. Çok deneyimli bir programcı daha sonra "2" değerinde bir takip testi yapacak.

Bir kullanıcı "Miktar" etiketli bir metin kutusu görecek ve "~~ unicorns ROX !!! ~~" yazacaktır. Deneyimli bir kullanıcı "-12 1/2" yi de deneyecektir.

İnşallah, programcıyı kullanıcının bu şeyleri ne zaman deneyimleyeceği konusunda uyarmak için bir test cihazı orada olacaktır.


2

Bunun bir nedeni, geliştiricilerin kendi kodlarına çok yakın olmalarıdır. Tuhaf olduğunu biliyorlar, garip davranışlar. Çok iyi bildikleri küçük aptallıkların etrafını test etme eğilimindedirler . Bu konuda yeterince nesnel değiller. Test ekipleri kara kutu gibi davranırlar. Onlarca ya da yüzlerce test vakasının matrisini yazıyorlar ve kodun ne yapacağını görmek için düzenli olarak üzerlerinden geçiyorlar. Genellikle, geliştirme ekibinin asla hayal edemeyeceği senaryolar ortaya çıktı.

Diğer bir sebep ise zamandır. Aşamalar halinde inşa edilen büyük projeler için, geliştirme ekibi Aşama 1'i oluşturacaktır. Ardından 2. Aşamalar inşa edilirken ve Aşama 1'in kusurları giderilirken testçiler test eder. Bu tüm aşamalar için devam eder, bu yüzden test edilen aşama inşa edilen önceki aşamadır.


1

Bir geliştiricinin, testin üretime geçmeden önceki son adımı olarak kendi çalışmasını test etmesinin neden kötü bir fikir olduğu konusunda bazı argümanlar toplamak istiyorum, çünkü ne yazık ki, iş yerim bazen bunu yapıyor (bu en son ortaya çıktı. , argüman çoğu insanın başka şeylerle meşgul olmasına ve programın bu bölümünü tanıyan başka bir kişiye daha fazla zaman ayırmamasına neden oldu - bu çok özel bir yazılımdır).

Testler bir geliştirici için isteğe bağlı değildir. Bir geliştirici yazdığı kodu test etmek zorundadır. Görevin başarıyla yerine getirildiğinden başka nasıl emin olabilir? Bir çeşit otomatik testler (en son testler) yazmanız ya da "yapmak istediğim şeyi yapan makine" manevrası (GUI kullanarak, komut satırında ya da her neyse) kontrol etmek zorundasınız.

Bundan sonra test edilen her şey, diğer insanlar (iş arkadaşları, KG, ...) tarafından "sadece" ek testlerdir. Bir geliştiricinin doğrudan test etmesine alternatif yoktur. Bir geliştiricinin yazdığı kodu / özelliği sınamak zorunda olmadığını (hatta girmesine izin verilmediğini) söyleyen herkes, yazılımın nasıl geliştirildiğine dair sıfır bir anlayışa sahip.


3
OP, geliştiricilerin test yapıp yapmamasını sormuyor; OP, test yapan tek geliştiricinin iyi bir fikir olup olmadığını soruyor .
Yalan Ryan

1

İstediğiniz veya beğenmediğiniz, kodu bilmeyen bir kişi tarafından test edilir. Asıl soru, müşterinin müşteri olmasını isteyip istemediğin.


1

Harika soru Sizin durumunuzda, test vakaları - bazen - var ve yazılım, ürün üzerinde hız kazanacak bir acemi bulmanın pratik olmadığı kadar karmaşık görünüyor. Ayrıca, yapılan testin üretim öncesi son test olduğunu söylersiniz.

Geliştiricinin son testi yapmasının nedenleri olabilir

  • Yeterince başka test kapsamı var ... Birim testleri var, bir entegrasyon testi ortamı var ve kullanılıyor, UI testi, keşif testi vb. Yapıldı. hızlıca gözden geçirme"
  • Profesyonel bir SQA / Test Cihazı tarafından yazılmış bir dizi test vakası, birinin (bir geliştiricinin) açıkça izleyebileceği / izlemesi gereken bir durumdur.
  • Özellik / ürün / modülün başarısız olma riski düşük seviyelere düşürüldü (profesyonelin yüksek riskli alanları test etmesine izin verin ve "çaylak" düşük riski test etsin)
  • İş durumunun gerçeği, olası kusurları olan bir ürünü piyasaya sürmenin, piyasaya sürmeyi geciktirmekten daha iyi olmasıdır.
  • Söz konusu geliştirici aslında çok kalifiye bir test cihazıdır ve zihinsel olarak rol değişikliğini yapabilir
  • Bu değişiklik, geliştirici tarafından müşterinin sitesi kapatıldığında veya sistem çevrimdışı olduğu için gelirini kaybettiğinde (yani ofise geri getirilecek ve kontrol edilen bir sürümde ASAP tarafından test edilecek / piyasaya sürülecek bir düzeltme eki) geliştirici tarafından sahada yapılan bir hata düzeltmesidir. )

Bir geliştiricinin testi yapmaması için sebepler

  • Başka herhangi bir şey

Genel olarak, gerçek çözüme saldırmanın doğru yolundasınız gibi görünüyor - SQA uzmanının Test Servislerini oluşturmasını sağlayın ...

Not: Genel olarak Geliştiricilerin testi yapmasına izin veriyorum, ancak ilk kurşun noktasının bulunduğundan eminim.


1

İnsan olan insan, bilişsel önyargılardan muzdarip olma eğilimindedir - burada neredeyse aynı iki senaryodaki yargıları, sadece değişen birkaç şey yüzünden farklılık gösterir - 8 yıllık gelişimde fark ettiğim bir şey Bir meslektaşının yazdığı kodun aksine, kendi kodunu sınama ile karşı karşıya kaldığı için, kendi koduyla yapılan testler daha kötü kalitededir.

Bu, geliştiricinin doğrudan hatalı olduğu anlamına gelmez - beyni, yazdığı önyargıyı kullanacak, haklı olduğuna inandıkları gerçeğini pekiştirecek ve yalnızca bir geliştiricinin aksine, temel kontrolleri yapacak başka birinin koduna bakıyor, daha kapsamlı kontroller yapacak.

Bilişsel önyargıları önleme prosedürünün uygulandığı veya aynı hava sahasını aynı hava sahasında işgal eden iki farklı uçağın önlenmesi için yaygın olarak "Trafik Durumu Bilgisayarlı Sistemler" olarak bilinen "İnsan Faktörü" olarak bilinen binlerce örnek var. Zaman geçtikçe, uygulanan tıbbi işlemlere çok fazla doktor tanı koymak zorunda kalıyor.

BT endüstrisinin daha profesyonel bir tavır sergileme zamanıdır ve kendi kodunuzu sınamak için prosedürler uygular.


1
  • Herkes test etmeli - Develpers test kodu, QA'ers test işlevselliği, Pazarlama testi mesajlaşma. Bu şekilde herkes , savaşın yarısı olan testlerle aynı felsefeleri ve dili paylaşıyor .

  • Test rutin bakımdır ve karşılaştırmak için genellikle analojiler kullanırım . Mesela araba yağı analojisini değiştirir. Asla yağını değiştirmek zorunda değilsin. Ama yine de düzenli olarak yapıyorsun. Dişlerini fırçalaman için de aynı. Onları günlük olarak sürdürmenizin bir nedeni var - onlar 'bugün' kırılmayacak, hepsi yarın ve gelecek günler ve bir yatırım yapacak.

  • Herkes test etme sorumluluğunu paylaşmalıdır . Bir KG ekibi önemlidir, ancak “test” i yalnızca KG ekibinin yaptığı, iyi bir şey olmayan ürün geliştirme ve iş akışına entegre olmayan 'ayrı' bir etkinlik haline getirdiği bir şey olarak yapar.

  • Üretimde herhangi bir şey bozulduğunda iki şey yapın:

    1. İlk yorum olarak "hmm, bunun için bir test yapalım mı " deyin .
    2. Herhangi bir düzeltmeyi düzeltmek yerine önce yeniden üretilmiş, konuyla ilgili testleri yapın .

0

Benim şirketimde oldukça karmaşık finansal uygulamalar inşa ediyoruz. Genel politikamız, geliştiricinin hiçbir teknik hata oluşmamasını sağlamalıdır. Temel olarak, kullanıcının kaynakları göz önüne alındığında, kırmak için her şeyi deneyin. Bir çalışma zamanı hatası bulamadığınızda, test için BA'lara gönderin. İş gereksinimlerini tükenme noktasına kadar test etme konusunda kaybolan birkaç geliştiricimiz oldu, ancak yalnızca tüm testler onların sorumluluğunda değildi. Net bir şekilde görülebilen bazı göze çarpan bir hata olmadığı sürece, çıktıyı anlamak için para alanlara iletiriz. Ayrıca, kullanıcıların sonuçları doğrulamada gerçek bir rolü olmalıdır. Bir perakende mağazasında satış görevlisi sizin için kıyafetleri denemez, sadece doğru beden kıyafet bulmak gibi "teknik detaylar" konusunda size yardımcı olurlar.


0

Bir sorun, geliştiricilerin kendi kodlarını kırmak için çok az teşvike sahip olmalarıdır - birkaç kişi kendi işlerinde kusur aramaya isteklidir veya hata yapmak istemektedir. Ayrı bir ekibe sahip olmak, işlerin kırılmasını sağlamaya yardımcı olur.


-1

Kalite Güvencesi rolü, diğer nedenlerin yanı sıra, geliştiricinin gereksinimleri anlamadığını kontrol edebilmesi için önemlidir. Geliştirici bu kontrolü kendileri yapamaz çünkü yanlış anlaşıldığını açıklarlarsa açıklığa kavuştururlar.

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.