Teknoloji başlangıçlarında yazılım testleri nasıl yapılır?


10

Yazılım testinin faydalarından övünen birçok araştırma makalesi ve teknoloji blogu gördüm. Buna ikna oldum. Ancak tüm yazılım test araştırmaları büyük yazılım şirketleri tarafından yürütüldüğünden, gerçekten yeni başlayanlar için geçerli olduklarına inanmıyorum. Başlangıçların büyük yazılım şirketlerine kıyasla farklı ihtiyaçları ve kısıtlamaları olduğu için.

Böylece sorular ortaya çıktı. Teknoloji girişimleri otomatik testler yazmalı mı? Öyleyse, büyük yazılım şirketleriyle aynı şekilde mi yapılıyorlar? (duman testi, regresyon testi, vb.) Bu konuda bazı araştırma makalelerine başvurabilirseniz en iyisi ... kendi başıma bulamadığım için.

(İtiraf etmeliyim ki, hala kariyerimde erken olmama rağmen, henüz otomatik testler yazmayı ciddiye alan bir girişim görmedim)


5
10 yaşında küçük bir çalışmaya başladım ve geceleri yapılan testleri ilk ben ekledim. Ben bir dahi olduğum için değil, ama bu ilk kez yönetici (ayrıca kodlayıcı) onları eklemenin zamanı geldiğini ve sonunda insan gücüne sahip olduklarını fark etti. Tabakalar genellikle önce hayatta kalmak ve daha sonra mükemmel olmak zorundadır. Kabul edildi, bu başlangıç ​​teknisyen olmayanlar tarafından başlatıldı, bu nedenle bu özelliğin "kayması" gerekiyordu.
İş

5
10 yıllık girişim ...?
pap

Dilbert : "En iyi uygulama sektördeki herkes tarafından benimsenirse, o zaman en iyi uygulama sıradanlık olur." Sanırım bu biraz doğru, heh.
ming_codes

10 yaşında bir başlangıç ​​... Java kullanıyor olmalılar: 3 yıl tasarım + 7 geliştirme :) sadece şaka (Ben bir Java dev btw)
nuvio

Yanıtlar:


11

Yapılması gerekenler ile gerçekçi olarak zamanımız olan şeyler arasında her zaman bir çatışma vardır. Evet, birçok girişim, bir projeyi başlatmak ve çalıştırmak için biraz zaman ayırmak için test odaklı geliştirme ve otomatik testlerden vazgeçer.

Sosyal ağ siteleri ve mobil uygulama şirketleri şimdi büyük kabarcıklar ve son derece rekabetçi. Bazen 4 ayda 5 ay ile 4 ay arasında yaşama arasındaki fark Kaybedersiniz.

Piyasaya sürme zamanı anahtardır ve daha sonra başarı gerçekleşirse ölçeklendirme zamanıdır, o zaman bok parçası test edilmemiş yazılımınızı değerli bir şeye yeniden yansıtmak için bolca zaman olacaktır.


Pazar zamanı biraz efsanedir. Pazara geç girenler mevcut oyuncuları uçurabilir: friendster> myspace> facebook.
Joeri Sebrechts

@JoeriSebrechts Yazılımın ilerlemesi ve geç gelenlerin başarısı ile nasıl ilgili olduğu hakkında ilginç bir makale okudum. Oyunda değişkenler var, benzer bir çözümle geç giren bir kişinin güvenli süresi, bir yazılımın kullanıcı tabanının Erken Benimseyenlerden Genel Kullanıcılara dönüşmesi için geçen süreye eşittir. Tabii ki benzer bir çözüm, piyasaya ilk girenlere kıyasla benzer ve çığır açmayan özellikler anlamına gelir (örn. Facebook, MySpace'e kıyasla çığır açıcıydı). Erken Benimseyenlerin kritik bir kitlesine ulaşıldığında, genel kullanıcılar taşınmaya başlar.
maple_shaft

12

Yazılım testi bir din değildir. Bu çok iyi bir fikir.

Şu anda test yazma gücüne sahip olmadığını mı söylüyorsun? Tamam iyi. Bundan 6 hafta sonra, uygulamanızın çökmesine neden olan hatayı bulmak için işgücünüz olacak mı, uygun testler uygulamanız halinde hemen bulunacak mı?

Çok fazla test yapılması gelişimi yavaşlatabilir. Çok az test de yavaşlatabilir. Doğru dengeyi bulmak zorundasınız ve bunun nerede olduğunu söylemek genellikle zor. Ve bunların hiçbiri büyük veya küçük şirketlere özgü değildir.


4

Uzun yıllar boyunca, küçük şirketlerde ve yeni kurulan şirketlerde çalışırken, "kodum için birim testleri yazmak için yeterli zamanım olmadığı" gerçeğini yanlış anladım .

Testler yazarken şişkin, ağır şeyler vardı, bu da beni sadece ihtiyaç duyduklarını bildiğimde birim testleri yazmam gerektiğini düşünmeye teşvik etti .

Son zamanlarda Test Odaklı Geliştirme'yi kullanmaya teşvik edildim ve bunun tam bir vahiy olduğunu gördüm .

Şimdi ben sıkıca ben ikna "için zamanım yok değil yazma birimi testlerde" .

Deneyimlerime göre, testler göz önünde bulundurularak geliştirerek daha temiz arayüzler, daha odaklanmış sınıflar ve modüller ve genellikle daha fazla SOLID , test edilebilir kod elde edersiniz .

Her zaman birim testleri olmayan ve bir şeyi manuel olarak test etmek zorunda kalan eski kodlarla çalıştığımda, "bu kodun birim testleri zaten varsa bu çok daha hızlı olurdu" diye düşünmeye devam ediyorum . Her ne zaman yüksek kuplaj ile kodlamak için birim test işlevselliği eklemek zorunda kalsam, "bu bir de-coupled bir şekilde yazılmış olsaydı çok daha kolay olurdu" diye düşünüyorum .

Yıllar boyunca keşfettiğim bir şey varsa, bir başlangıçta çalışıyorsanız, sadece yazılım geliştirme metodolojisi anlamında değil, çevik olmanız gerekir . Benim için TDD, çevik başlatma ve kalmayı sağlayan önemli bir araçtır .


1

Kimin yazılım testi yapması gerektiği ile ilgili değil, Yazılım testi bir çeşit yazılım geliştirme felsefesi. Yazılım Testi, iyi bir yazılım kalitesinin temelini oluşturur ve başlangıçta, büyük bir firmanın satın alması köşede olduğunda yazılım kalitesi bir bonus olur;)


1

Büyükannenizi bir web sitesi yapıyor ya da bir uydu için rehberlik sistemi oluşturuyor olun, en iyi uygulamalar endüstri çapındadır. Her zaman kendilerini profesyonel olarak değerlendirmek isteyenler tarafından takip edilmelidir, bu yüzden bunlara EN İYİ uygulamalar denir.


En iyi uygulamaların tüm sektör genelinde olmadığını duymak sizi şaşırtabilir. thedailywtf.com
Gary Willoughby

@ Teorik olarak daha geniş bir endüstri alanı veya projelerin gerçekçi zaman çizelgeleri ve
html'nin

"En İyi Uygulamalar" genellikle herkes gibi bir şey yapmak ve ortalama bir sonuç üretmek anlamına gelir. Ortalama kurulmuş bir şirket oldukça iyi bir performans sergiliyor, ancak ortalama bir teknoloji işletmesi muhteşem bir şekilde çökecek kadar fazla alamıyor.
David Thornley

1
@DavidThornley - Hayır, bence "En İyi Uygulama" çoğu zaman, enerji veya yönetim onayı olsun ya da olmasın, yapmaları gerektiğine inandıkları şeydir. * 8 ')
Mark Booth

@ Mark Booth: Tipik olarak, ifadeyi duyduğumda, söylediğim anlamına gelir. YMMV, elbette. Bununla birlikte, Ryathal, projelerin gerçekçi zaman çizelgelerine sahip olduğu ve işte mutlaka mümkün olmadığı bir dünyayı ifade eder. Bir ürünün iki ay geç çıkması önemsiz veya ölümcül olabilir (özellikle de para tükenme tehlikesi oluşturabilecek bir başlangıç ​​için) ve rahatsız edici bir şekilde çoğunlukla kapıyı en kısa sürede çözen bir şey almak için güçlü bir iş vakası vardır. Bir şirketi mahkum edebilecek "en iyi uygulamalara" inanmakta zorlanıyorum.
David Thornley

1

Evet, başlangıçlar bazen köşeleri keser ve uygun testlerden etkilenmez. Bazen bu uygundur (yeterince küçük projeler için veya zaman / para kritik olduğunda)

Bu olsa yeni başlayanlar için özel değildir. Tedarikçilerimizin IT yüklenicilerinden birisinin test ortamı bile var. Her şey doğrudan yaşamak için yapılır ve bu büyük bir çok uluslu yazılım şirketidir (korkutucu!)


1

Yapmalılar mı? Evet. Bunu pratikte yapıyorlar, olması gerektiği kadar sık ​​değil.

Verilen en tipik neden, geliştirici zamanını, özel veya yarı zamanlı bir test cihazını işe alma maliyetini, bir test ortamı kurma maliyetini vb. İçeren kaynak eksikliğidir. Bu mazeretleri küçük şirketlerin yanı sıra büyük şirket ortamlarında bile bulabilirsiniz.

Başka bir açıdan bakıldığında, test, bir geliştirme çizelgesinden, özellikle de görünür sonuçlar üretmek için çok sıkı zaman basıncına ve / veya maliyet basıncına sahip olan, kesilmesi en kolay şeylerden biridir. Ayrıntılı tasarım çalışmaları ile birlikte, birçok yönetici tarafından 'kabartmak' olarak kabul edilir ve ilk olarak "kesip programımızı ve bütçe çalışmamızı yapabiliriz" ve ardından "Neden kodlamıyorsunuz?"

Bazı şirketlerde itme testi yapan biri olacak. Bu genellikle işe alınan geliştirici olacaktır ve genellikle tecrübesi olan ve muhtemelen şirkette bir tür mali menfaati olan biri olacaktır. Bu "DNA" ile başlayan bir şirket muhtemelen en başından beri test yapacaktır.

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.