Merhaba, orta büyüklükteki yazılım işimiz için teknik şartname hazırlıyoruz. İşin geliştirilmesi ve kabulü aşamaları için testler ön görüyoruz. Performans ve güvenlik testlerini yazdık şartnameye. Bunun dışında Unit testi (bu konularda bilgimiz yok açıkçası) veya benzeri testler istenmeli midir? İstenmeliyse bunlar nelerdir ve nasıl ifade edilmelidir şartnamede?

Uygulama JSF web uygulaması ve Kamu İhale Kanunu'na göre hizmet alınacak.

İyi çalışmalar.

soruldu: 09 Eyl '13, 13:19

mucuraga's gravatar image

mucuraga
42681219
cevap kabul oranı: 10%

değiştirildi: 11 Eyl '13, 08:51

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Unit testleri daha çok yazdığınız modullerin doğru bir şekilde çalışıp çalışmadığını test etmek için kullanılır diye biliyorum. Elinizde bir test verisi ve bu test verisinin olması gereken çıktıları vardır. Siz test verisini programa verirsiniz ve çıkan sonuçlar sizin beklediğiniz şekilde çıkarsa test işlemleriniz başarılıdır. Bu yüzden unit testi daha çok kodu geliştiren ekip tarafından yapılacaktır. Performans ve güvenlik testinin yanı sıra sistem testi,dayanıklılık testi gibi de test çeşitleri mevcuttur.

permanent link

cevaplandı: 10 Eyl '13, 02:39

ufukhalis's gravatar image

ufukhalis
121131820
cevap kabul oranı: 54%

Yazılım işini başka bir firmaya yaptıracaksanız ve iş bitiminde kodları alacaksanız şartnameye TDD ile geliştirme yapılacaktır diye bir madde koyabilirsiniz. Hani ilerde kodlamayı kendi bünyenize alırsanız yeniden test süreci başlatmayın diye. Bu size kalmış. Ancak TDD ile geliştirme yaptırmak, işi yaptırana çok fazla bir şey kazandıracağını zannetmiyorum. Bu sorumluluğu yazılımı yapan firmanın üstlenmesi gerekir. Firma TDD ile geliştirmeyi ilke edinmiş ise bu firmaya fayda sağlar. Daha sonra yazılımda isteyeceğiniz değişiklikler, eklemeler yaptığında sistemin davranışını görmek için firmaya yol gösterir fakat size bir katkısı yoktur. Siz kullanıcısınız ve yazılımı kullanırken hangi yöntemle geliştirdiğini anlamazsınız. İşi yaptıran sadece iyi çalışan bir uygulamayı görmek ister. Ama performans test raporlarını kesinlikle isteyin derim. Örneğin N kullanıcı aynı anda girdiğinde sistemde yük nasıl artar v.s gibi.

permanent link

cevaplandı: 11 Eyl '13, 05:21

ucuncubayram's gravatar image

ucuncubayram
1.4k122840
cevap kabul oranı: 11%

Peki Bayram kardeşim, merakımdan soruyorum. Bugüne kadar TDD bazlı çalışmadım. TDD tabanlı uygulama geliştiren bir yazılım firmasının iş gücü artıyormu? Artıyorsa nasıl karşılıyorlar? TDD yapabilmek için, sipariş edilen uygulamayı yazılım firmasının da kullanıcı kadar iyi bilmesi gerekmezmi? Çünkü, kullanıcı davranışı ile geliştirici yaklaşımı tamamen zıt bir durumda.

(11 Eyl '13, 15:18) Oğuz Çelikdemir O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Merhaba Oğuz Bey, "yazılım firmasının iş gücü artıyor" diye bir cümle kullanmadım. Uygulama geliştiren firma TDD nimetlerinden faydalanarak düzenli, bakımı yapılabilir, güvenilir uygulamalar yazar. Ortaya çıkan ürünü müşterisi alıp kullanır. Söylemek istediğim budur. TDD demek kullanıcı yazılımı alıp arayüz üzerinden girip test edecek demek değildir. Tamamen bir kod geliştirme yaklaşımıdır.

(12 Eyl '13, 00:11) ucuncubayram ucuncubayram's gravatar image

Bayram, yanlış anlamışsın beni kardeşim :( ben tecrübelerinden faydalanmak istedim. TDD altında çalıştığını düşünerek bilgi almak istedim. Kastım soruna soru ile cevap vermek değildi.

(12 Eyl '13, 02:50) Oğuz Çelikdemir O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Oğuz Bey, yorum kutusu sınırlı karakter aldığı için kısa ve net cümleler kurmak gerekiyor. Bu yüzden bende yanlış anlaşılmış olabilirim. Dilimin döndüğü kadarıyla cevaplamaya çalışıyorum. Biz de sizin cevaplarınızdan faydalanıyoruz.

(12 Eyl '13, 05:04) ucuncubayram ucuncubayram's gravatar image

Tamamiyle merakımdan soruyorum çünkü faydasını bir türlü kavrayamadım. Farzedelim bir fonksiyon yazdınız ve bu fonksiyon 2 adet parametre alıyor. Bunu, kullanıcı davranışına göre test etmek istiyorsunuz. Kullanıcı int değerli bir alana string giriyor. Ve siz bunu test yordamı ile sınamak istiyorsunuz.

Şimdi, birisi bana açıklarmı, fonksiyonu yazıyorum, ardından fonksiyonu test eden yordamları da yazıyorum. İki kere iş yapmış oluyorum. Neticede, gelen verinin tipini güvenlik altına almak istiyoruz. Peki buna gerek varmı? Bunu zaten istemci tarafında kullanıcıyı veri tipine zorlayarak halledebiliyorken!

permanent link

cevaplandı: 11 Eyl '13, 15:23

O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Oğuz Çelikdemir
2.0k52234
cevap kabul oranı: 13%

değiştirildi: 11 Eyl '13, 15:24

1

Kodun önce yazılıp sonradan testlerin yazılmasından ziyade TDD yaklaşımında doğru olan yöntem testin önce yazılmasıdır. Test First olarak da geçer. Bunu bir kenarda bekletelim. Testi bir işi iki kere yapmak olarak görmüşsünüz. Bir fonksiyona bir parametreyi vererek test etmek için önce fonksiyonu yazmanız gerekir sonra çalışır durumda görmek için console uygulaması,web arayüzü,ya da form arayüzü oluşturmanız gerekir. Ardından programı her deneme için çalıştırıp elle değerleri vermeniz gerekir. Kaç iş yaptınız? ve Her deneme için kaç kez tekrarlanacak?

(12 Eyl '13, 00:19) ucuncubayram ucuncubayram's gravatar image
2

Oysa fonksiyonunuz için test metodlarını bir kez yazıp tek tuşla çalıştırmak bizi bir sürü gereksiz işten bizi kurtaracak. Ardından istediğimiz gibi çalışan(testten geçen) kodu arayüze veya başka bir uygulamaya monte edebiliriz.

(12 Eyl '13, 00:22) ucuncubayram ucuncubayram's gravatar image

Buna ek olarak eğer testleeri düzgün yazmışsanız, ileri dönemde bir fonksiyonu değiştirdiğiniz zaman acaba nereler etkilendi veya bozuldu gibi bir kaygınız olmayacaktır.

(12 Eyl '13, 02:12) myururdurmaz myururdurmaz's gravatar image

Özellikle, katmanlı mimarilerle çalışırken uygulamanın çalışacağı katmana gelene kadar bir sürü kod yazılıyor. Örneğin, repository ve ya servis katmanının, bir web arayüzünde elle test edilmesine gelene kadar, çok fazla kod yazılmış oluyor. Bunları tek tek çalıştırıp, test etmek oldukça zor oluyor. Ama web uygulamasına gelene kadar bir yerde (birim test) test edilmiş olurlarsa, sorun çıkarmayacağı bilinir. Burada benim merak ettiğim "kaliteli test" konusu. Sizin verdiğiniz örneğin direk olarak testinin yazılması bana da pek mantıklı gelmiyor.

(12 Eyl '13, 02:34) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Makalelerin neredeyse tamamı birim testi anlatmak için yazılmış. Yani test örneği olsunda nasıl olursa olsun. Gerçek hayatta nasıl test yapılması gerektigine dair cok fazla yazı yok. Kaliteli test nasıl yazılır gibi konularda cok fazla kaynak yok gibi.

(12 Eyl '13, 02:35) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Merhaba.

Ben de @ucuncubayram arkadaşıma kısmen katılıyorum. Size çok bir katkısı olmaz. Anca projenin geliştirme süreci kabulden sonra da devam edecekse o zaman işlerinizin aksamaması için size faydası olacaktır diye düşünüyorum.

Biraz geriden geleceğim ama şu şekilde yazabileceğinizi düşünüyorum.

  • Geliştirme işinde MVC pattern kullanılacaktır (testlerin düzgün kontrol edilebilmesi için).
  • Servis katmanındaki her bir servis için unit testleri ve stress testler yazılmış olmalıdır.
  • View katmanında her bir sayfa için selenium testleri yazımış olmalıdır.
permanent link

cevaplandı: 11 Eyl '13, 06:26

myururdurmaz's gravatar image

myururdurmaz
2.2k11027
cevap kabul oranı: 23%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×58
×14

Soruldu: 09 Eyl '13, 13:19

Görüntüleme: 979 kez

Son güncelleme: 12 Eyl '13, 05:04

powered by BitNami OSQA