Geleneksel manuel testler kullanılabilirken neden phpunit kullanılır?


14

Bir web uygulaması yaptığımda, herhangi bir hata alıp almadığımı görmek ve düzeltmek için tarayıcıdaki çalışmamı test ediyorum. Karmaşık uygulamalar yaptım ve bu şekilde test etmek kolay ve hızlı oldu. Ben phpunit ile ilgili youtube birçok video izledim ve bunun için bir amaç bulamıyorum. Bu kütüphane neden yararlı? Phpunit daha cakephp veya zend gibi php framworks için mi? Herhangi bir çerçeve sadece çekirdek php kullanmıyorum. Phpunit benim için yararlı olabilir mi? Evet ise, nasıl?

Ayrıca xdebug var ama ilgili olup olmadığından emin değilim.


5
Her köşedeki karmaşık bir uygulamayı yeniden kontrol etmeniz ne kadar sürer?

@ user1249, phpUnit hala otomatik işlev testi yapamaz. Sadece otomatik birim testi yapar.
Pacerier

Yanıtlar:


12

Phpunit benim için yararlı olabilir mi? Evet ise, nasıl?

Evet kesinlikle.

phpunit xUnit test kitaplıkları ailesine aittir . Bu kitaplıkları, uygulamanızın davranışını doğrulayan otomatik olarak yürütülebilir sınamalar oluşturmak için kullanırsınız. Bu, diğerlerinin yanı sıra, değişikliklerinizin mevcut işlevselliği bozmamasını sağlamak için önemlidir.

Otomatik testin tüm nedenlerini listeleyen çeşitli türler ve teknolojiler çok fazla olacaktır. Hakkında okumak için aşağıdaki bağlantılara göz atın:


ironik bir şekilde, o'reilly'den ilk bağlantı 404'd
Félix Gagnon-Grenier

6

Diyelim ki uygulamanızı her dağıttığınızda manuel olarak test etmek istiyorsunuz. Bunu nasıl yapardın?

Başlangıç ​​olarak, test etmek istediğiniz tüm şeylerin bir listesini oluşturabilirsiniz, böylece daha sonra bir şeyi test etmeyi unutmazsınız. Sonra muhtemelen her seferinde aynı şekilde yaptığınızdan emin olmak için her testin adımlarını yazabilirsiniz. Kullandığınız test işleminin tutarlı olduğundan emin değilseniz, sonuçlarınız tutarlı olmaz.

Böylece, gerçekleştirmeniz gereken testlerin listesine sahip olduğunuza göre, tarayıcınızı açar, ilk testin adımlarını okur, gerçekleştirir ve sonucu not edersiniz. Listenizdeki her test için bu işlemi tekrar edersiniz.

Uygulamanız büyüdükçe ve yeni hatalar bulduğunuzda yaptığınız testlerin sayısı artmaya devam edecektir. Elbette, bu testleri insan hızında yapmakla sınırlı kalacaksınız, bu da onları oldukça yavaşlattı.

Buradaki ironi, mekanik olarak bir operasyonlar listesine adım atarak, hesaplama yaptığınızdır. Bunu bir bilgisayarın yapabileceğinden çok daha yavaş yapıyorsunuz.

Bu, diğer pek çok iyi nedenden ötürü, birim testleri yazmamızın nedeni: bilgisayarın hesaplama işlemini yapmasına izin vermeleri ve böylece yapmanıza gerek yok.

Dağıtımdan önce haftada sadece bir kez değil, geliştirme sırasında sık sık kullanmak için yeterince hızlı kapsamlı bir birim test paketi çalıştırabilirim. Bu, hataları daha hızlı tespit etmeme ve zamandan ve paradan tasarruf etmemi sağlar.

Hatta sistemin davranışını tahmin eden testler yazabilir ve daha sonra Test Güdümlü Geliştirme olarak bilinen bir süreç olan (zaten doğru olduğunu bildiğim için zaten doğru olduğunu bildiğim) bu davranışı yazabilirim.


5

Manuel test (yani tarayıcıda uygulamaya tıklamak) aslında işlevsel test olarak adlandırılır. Fonksiyonel test ve birim test KG'de kullanılan iki farklı yöntemdir. Neden ikisini de kullanamayacağınızı düşünüyorsunuz?

Birim testi , kodunuzun beklendiği gibi çalışıp çalışmadığını test etmek için kullanılır (örn. Web hizmetiniz hatayı uygun şekilde ele alıyorsa veya sonuçları beklendiği gibi döndürürse).

Başvurunuzda tıkladığınızda edilir test işlevselliği Başvurunuzun.

Phpunit benim için yararlı olabilir mi? Evet ise, nasıl?

Birim testinin birçok faydası vardır - yeniden düzenleme sırasında çok yararlı bir araç olabilir, çünkü kodun beklendiği gibi çalıştığını onaylayabilirsiniz. Ayrıca, birisi kodunuzu okurken kodun amaçlanan kullanımını birim testlerinde görmek çok yararlı olabilir.


Birim testleri de davranışı test eder. Yanlış bir ikilik oluşturuyorsunuz.
Rein Henrichs

@ReinHenrichs, İşlevsel test PHPUnit tarafından değil Selenyum tarafından yapılır.
Pacerier

1

Evet!

Evet. Kesinlikle evet.

Aslında, bunun yeterliliğe ihtiyacı var. PHPunit gibi birim sınama çerçeveleri, başkalarının kullanması beklenen bir uygulama yazıyorsanız ve sürdürüyorsanız yararlıdır.

Birim testinin yararlı olmasının nedenleri arasında

  • Maruz bıraktığınız belirli hatalar için regresyon testi ve

  • Koşu birimi testleri manuel testlerden çok daha hızlıdır ve bu nedenle çok daha kapsamlı olabilir.

Çalıştığım şirkette, bunları geçen kodu yazmadan önce birim testleri yazıyoruz. Bu, aklı başında, test edilebilir tasarımlar üretmemize yardımcı olur (çünkü bunu yapmadan önce ne yazacağımızı düşünmeliyiz!) Ve kodumuzun kullanıcının gereksinimlerini karşıladığını iddia etmenin kolay bir yolunu sunar.

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.