Testi PHP Geliştirme Driven Tanıtımı

5 Cevap php

Benim işyeri kovboy kodlayıcı bir çok oluşur. Birçoğu genç vardır. Hangi tesadüfen kod kalite konularda bir çok katkıda bulunur.

Ben iyi (biz Birim testler ile başlar, ve regresyon testleri içine taşımak, ve sonra daha fazla otomatik test edebilirsiniz) TDD kullanarak içine benim ekibine zayıflamak için nasıl önerileri arıyorum.

Sonuçta, ben bizim hatalarımızdan daha hızlı öğrenmek ve daha iyi kod üretmek ve daha iyi geliştiriciler doğurmak istiyorum.

Ben bir takım TDD tanıtmak için nasıl bazı pratik öneriler vardır umuyorum. Özellikle, LAMP (php) yığın seçmek için neyin en iyi araçlardır.

Bu soru çok açık-uçlu ise özür dilerim.

5 Cevap

Şimdi dört kez bu süreçten geçiyor sonra, TDD herhangi bir giriş uygulanması belli bir düzeyde olmadan başarısız olacağını buldum. Programcılar stili geçiş ve ilk ünite test yazmak ve aniden ışığı görmez istemiyorum.

Sen bir yönetim düzeyinde zorlayabilir, ama bu zaman alan tüm taraflar için. Bazıları bu düzeyi zaten başında gerekli, ama sonuçta otomatik uygulanmasını gerekir. Bunun cevabı Sürekli Entegrasyon tanıtmaktır.

Ben bir CI Server, herhangi bir TDD ortama nihai kilit taşı olduğunu tespit ettik. Geliştiriciler testleri yazmak yoksa kötü bir şey olacağını bilmek sürece, her zaman altlarında hissediyorum kovboylar olacak.

Yazma testleri easy ve sonuçlar yapmak visible.

  • Iyi belgelerine bir TestFramework kullanın. gibi SimpleTest
  • Test veritabanı içeriğine bağlı ise, bir senaryonun başında düştü ve oluşturulacak bir referans veritabanı oluşturun.
  • Tüm test çalıştırır ve bağımsız bir monitör ya da kolayca erişilebilir / Test görünür yapacak bir şey sonuçlarını gösteren bir komut dosyası yapın. (Bir komut istemi Koşu bir seçenek değildir)

I personally don't write test for every chunk of code in the application.
Focus on the domain objects in the application. In my case these are "price-calculation" and "inventory-changes"

Remind them that they are probably already writing tests, but that they delete their work just after creation. Example: During the development of a function you'll have a page/testscript in with an echo or *var_dump*() the result. After a manual validation of the result you'll modify the parameters of the function and check again.

Bazı ekstra çaba ile bu testlerin bir UnitTest otomatik olabilir. Ve hangi programcı şeyler otomatikleştirmek sevmez?

Takım soru yanı sıra, yazılım geliştirme ve test hakkında evrensel fikirleri gelince, ben Joel Spolski sitesini ve kitaplarını öneririm: http://joelonsoftware.com/ ondan birçok anlayışlar var.

SimpleTest - mükemmel dokümantasyon ve php için test açıklamalar

TDD başlatmak için başka bir yolu PHP çerçeve kullanmak için deneyin. Çerçeve olmadan, etkin birim testi uygulamak zor.