Çok büyük bir uygulamayı test etme yöntemleri


10

Ben çok büyük bir PHP uygulaması var. Genellikle tam zamanlı çalışan 2-3 geliştirici vardır ve değişiklikler yaptığımız ve böcekler yarattığımız noktaya geliyoruz (öksürük özellikleri!). Yazılım demek karmaşık değil, sadece çok şey oluyor (35 ~ denetleyiciler, yaklaşık aynı modeller, vb.).

Dikkatli olsanız bile, bu görünümdeki bir değişikliğin (bir öğedeki bir kimliğin ayarlanması) bazı özel koşullar altında (bir ayak üzerinde dururken oturumu kapatılmış) bir ajax sorgusu yıkmak kolaydır.

Birim testleri ilk akla gelen ilk şeydir, ancak bunları başka bir uygulamada denedik ve bunları unutmak / veya testleri yapmaktan sonra testler yapmak için daha fazla zaman harcamak çok kolay. Yayına geçmeden önce kodun kontrol edildiği bir hazırlama ortamımız var.

Belki yarı zamanlı bir soruya ihtiyacımız var?

Herkesin herhangi bir öneri / düşüncesi var.


“... o zaman testler yapmak” bu bir olmaktan mıydı?
ajax333221

Yanıtlar:


25

Evet, Q / A personeline ihtiyacınız var. Birçok nedenden bazıları

  • Özel bir testçi paraya mal olur, ancak genellikle bir geliştiriciden daha az para demektir, bu nedenle zamanınızı kullanmamanın yararı ek masraftan daha fazladır.
  • Özel bir test cihazı, bir şeyin nasıl test edileceğini bilir, özellikle de nasıl otomatikleştirileceği açık olmayan şeyleri. Bir tarayıcıyla bir sistemle etkileşim kurmak için otomatik testler yapmak biraz kıllı ama köklü bir disiplindir. Nasıl yapılacağını zaten bilen birini alırsanız, iyi araçlar ve kurulumlar öğrenmek için daha fazla zaman harcamanıza gerek yoktur.
  • Profesyonel bir test cihazı, kusurları gerçekten nasıl bulacağını bilir. Uygulamanın bir kullanıcısının düşüneceği gibi düşünmeleri çok daha olasıdır ve bu nedenle sistemde üretimde ortaya çıkacak olan bu durumları uygularlar, bu da oldukça görünür hale gelen hataların daha erken bulunma eğiliminde olduğu anlamına gelir. ultra acil yamalar için utanç ve maliyet tasarrufu sağlar.
  • Genel olarak, bir testçi bir geliştirici gibi düşünmüyor . Eğer bunu yaşamamışsanız bunun ne kadar fark yarattığını söylemek zordur. Bilinçli ya da değil, bir geliştirici kusur bulmak istemiyor . Sistemin nasıl çalıştığını bilirler ve gerçek hayatta soruna neden olan tipik saçma (onlara) giriş veya verileri önleme eğilimindedirler. Bir şey beklenmedik bir şekilde çalışırsa, nasıl çalışacağını bilirler ve bunu bir kusur olarak görmemeye eğilimlidirler. Onlar aslaSistem yanıtlarının ne anlama geldiğini anlamakta zorluk çekiyorlar, çünkü neredeyse tüm gerçek sistemlerde büyük bir sorun nedeni olmasına rağmen, bunları yazdılar. Özetle: programcılar, kullanıcıların sahip olduğu tipik sorunlara sahip olma konusunda kötü olma eğilimindedir, çünkü yüksek eğitimli uzmanlardır. Bir test cihazının en uygun testleri gerçekleştirmesi çok daha kolaydır.

Bununla birlikte, hiçbir şey, bir geliştirici ile sistem kalitesini çatıdan sürmek için bir test cihazı arasında verimli bir işbirliği yapamaz. Bir geliştirici genellikle test cihazından önce bir şeyin yanlış olduğunu belirten semptomları fark eder. Bir geliştirici genellikle bir test cihazına bir sorunun nasıl daha verimli bir şekilde yeniden üretileceğini ve uygun bir sorun raporunun nasıl yazılacağını önerebilir, yani sorunu anlamak için gerçekten gerekli olan ayrıntıları dahil edebilir. Ancak bunların hepsi birlikte çalışabileceğiniz en az bir test cihazı gerektirir.


3
+1. Sıradan kullanıcıların yaşadığı sorunları tespit etmek için çok eğitimliyiz
superM

3

Muhtemelen daha fazla veya daha iyi regresyon testlerine ihtiyacınız vardır (özellikle birim testler değil ). Kendinizi analiz etmek için ne tür testler yapmanız gerekir, ancak bahsettiğiniz hataları tespit etmelidirler. Bir test planı yapmaya başlamanızı ve bu testleri önceliklendirmenizi öneririm - ve bunu yaptığınızda başlangıçta test otomasyonu hakkında fazla düşünmeyin.

Daha sonra, testlerin bir kısmını veya çoğunu makul bir çabayla otomatikleştirip gerçekleştiremeyeceğinizi kendinize sorun. Cevabınız evet ise, bunları programlamanız gerekir. Eğer cevap "hayır" ise ve "yarı zamanlı Q / A kişi" nin daha ucuz olduğunu düşünüyorsanız, ihtiyacınız olan şeyi almanız gerekir. Çoğu durumda, hem manuel test ve yeni testler icat etmek için bir Soru-Cevap kişisi hem de birçok otomatik regresyon testine sahip olmak iyi bir fikirdir.


Regresyon testlerinden bahsetmek ve birim testlerin tek etkili çözüm olmadığını belirtmek için +1.
Giorgio

Merhaba, regresyon testlerinden biraz daha bahsedebilir misiniz? Bunların eski böceklerin tekrar olmasını önlemek olduğuna inanıyorum - ancak yöntemlerle bunun yapılmasını öneriyor musunuz? Birim testleri? Kontrol edilecek şeylerin bir 'kontrol listesi' mi? Teşekkürler :)
Wizzard

@Wizzard: Regresyon testleri terimi, zaten var olan, çalışan işlevsellik için (uygulamanızı değiştirirken bunu kırmanızı önlemek için) her türlü testin genel terimidir. Bu, bir kontrol listesindeki testleri, ön ucunuzdaki otomatik testleri (burada muhtemelen tarayıcınız) ve birim testlerini de kapsar. Benim önerim, öncelikle neyi test edeceğinizi , bağımsız olarak nasıl test edeceğinizi düşünmeniz gerektiğidir (örneğin, "birim testi denedik" derseniz, örneğin, zaten "nasıl" değil, "ne" de değilsiniz) .
Doc Brown

2

Profesyonel bir QA işe alın

Ticari bir proje geliştiriyorsanız bu yapılmalıdır. Sağlam bir test stratejisi olmadan bir ürünü hazır bulundurmak, hata düzeltmeleriyle size daha pahalıya mal olur. Buna ek olarak, yeni müşteriler kazanmak veya bunları elde tutmak, uygulamanızın ne kadar iyi test edildiğine de bağlı olacaktır.

Genel olarak konuşma birimi testi kod tabanınıza uygulanmalıdır, ancak entegrasyon testi ve manuel testler atılmamalıdır.


1

Birim testi, özellikle projeniz büyüyorsa, gerçekten iyi bir fikirdir. Birim testleri yazmak alışkanlık haline gelirse, işinizi çok kolaylaştıracaktır. Youtube'da temiz kod yazma hakkında bakımı ve testi daha kolay bir video var.

KG mühendisi de bir zorunluluktur. İyi bir QA test cihazı yalnızca hataları işlevsel olarak bulmakla kalmaz, aynı zamanda uygulamanın kullanıcı dostu olup olmadığını da test eder (bu, kendiniz test etmek neredeyse imkansızdır). İşte QA ekibinin size zamandan ve paradan nasıl tasarruf edeceğini ve daha iyi yazılım sunmaya nasıl yardımcı olacağını açıklayan güzel bir makale.


1

15 kontrolör ve model çok büyük değil. Yazma sınavını alışkanlık haline getirmek biraz zaman alır, birbirini tekmelemeye (önce arkadaşça bir şekilde) çok yardımcı olur.

Test kapsamını bir dereceye kadar kontrol edebilen araçlar vardır. PHP için Kod Kapsama Araçları


1
Üzgünüz, 35 kontrolör ve yaklaşık eşit sayıda model. Mmmm bir tür birim testin yardımcı olacağını düşünüyor.
Wizzard
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.