Program Nasıl Test Edilmeli?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kefukar
Üye
Mesajlar: 705
Kayıt: 22 Kas 2004 03:08
İletişim:

Program Nasıl Test Edilmeli?

Mesaj gönderen kefukar »

S.a
Arama yaptım ama sanırım bu konu detaylı olarak konuşmamış.
Proje son kullanıcıya açılmadan önce, ne tip tesler ne şekilde yapılmalıdır?
Biz ekip olarak şu tip tesler yapıyoruz:
:arrow: Kullanıcı arayüzü testi.
:arrow: Veri bütünlüğü, doğruluğu testi.
:arrow: Dış unsurlara karşı (gereksinim duyduğu bazı dosyaların silinmesi gibi) hata testi.

Bunun dışında ne tip olayları/unsurları gözden geçirmeliyiz?
NOT: VT mız FireBird 1.5.1

Teşekkürler....
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

3 kullanıcılı test algoritması :)

kullanıcı tipleri;

1. program kullanmayı bilen olsun ama bu programı hiç kullanmamış ve görmemiş olsun.

2. Bilgisayara çok uzak olan birini seç.

3. ve programlamadan anlayan, program açıklarını bilen biri


3 kullanıcı bir test için yetersizdir ama, biraz idare eder.

Kolay gelsin
Kullanıcı avatarı
kefukar
Üye
Mesajlar: 705
Kayıt: 22 Kas 2004 03:08
İletişim:

Mesaj gönderen kefukar »

Bu bahsettiğiniz testi yapıyoruz. Benim daha ziyade öğrenmek istediğim kullanımdan, hesaptan, görünümden bir hata çıkmamasına rağmen teknik olarak programın sağlamlığı ve güvenirliği konusunda %99 emin olabilmek için gerekli teknik testler. Mesela program testi yapan programlar falan var mı? sınırları zorlayacak testler nasıl yapılır...v.s. gibi. Yardımcı olabilecek varsa teşekkürler...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

kefukar yazdı: Mesela program testi yapan programlar falan var mı?
bu işi yapacak olan yine sizsiniz :)

zamanında microsoft şöyle bir uygulama izledi.
programcılar programlarını yazıp test grubuna gönderiyordu. test grubuda programcıların yazdığı progamları test ediyorlardı. test grubu "kara kutu" adı verilen bir test yöntemi kullanıyordu ve bunun yanında testleri otomatik hale getiren bir çok araç gerece sahiptiler. (otomatik veri girişi yapan araçlar vs.)

sonuç tahmin edebileceğiniz gibi birçok böcek içeren programlarla sonuçlandı. hatta bu böceklerden dolayı microsoftta bir ürün piyasaya hiç çıkmadan üretimden kaldırılmak zorunda kaldı. Zaten bu olay bardağı taşıran son damla oldu. "Bu hata neden kaynaklandı?" sorusuna testçilerin verdiği cevap "hata programın kodlarından kaynaklanıyor" olurken programcıların cevabı ise "test grubunun bu hatayı bulması gerekirdi" oldu. Bunun üzerine fikir alış verişinde bulunan yöneticilir "kodun testinin yine programcı tarafından yapılması gerekir" fikrini kabul ettiler. Çünkü testçilerin kodları görüp kodun içinde yer alan böcekleri temizleme şansları yoktu. Onlar sadece programa rastgele veriler girip bunların sonuçlarını kontrol ederek programdaki böcekleri temizlemeye çalışıyorlardı.

Şu anda microsoftta ve diğer büyük yazılım firmalarında 2 çeşit kaynak kod yer alıyor.

1-kaynak kodun ticari sürümü
2-kaynak kodun hata ayıklama sürümü


ticari sürüm daha performanslı ve daha hızlı çalışırken hata ayıklama sürümü daha hantal ama böceklere karşı daha hassas bir şekilde çalışıyor. Programcılar ve testçiler genelde test işlemlerini bu hata ayıklama sürümünde yaparak böceklerin ortaya çıkmalarını sağlıyorlar. Herşey yolundaysa kaynak kodun ticari sürümü derlenip piyasaya çıkıyor.

Bu işi nasıl yapıyorlar sorusuna gelince basit derleyici direktifleri ile.
DEBUG adlı bir değişken bilirtip

Kod: Tümünü seç

IFDEF DEBUG Then
   TestKodlari
ENDIF
şeklinde kodlar yazarak bu işi kolay bir şekilde hallediyorlar. Piyasaya çıkacağı vakit DEBUG direktifini tanımsız hale getirip ticari sürüme dönebiliyorlar.


Delphi tarafında ise en basit çözüm olarak Assert komutunu kullanabilirsiniz. Assert, mantıksal bir ifadenin durumuna göre ekrana showmessage tarzı bir mesaj vermenizi sağlar. Assertin önemi $ASSERTIONS ON/OFF şeklinde derleyicinin bu komutu gözardı edip etmemesinin size bağlı olması.

Asserti ne zaman kullanmalıyız?
Birşeylerin yolunda gitmediğini belirtmek için gerekli durumlarda kullanmalıyız.

mesela

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  A: TStringList;
begin
  A := TStringList.Create;
  try
    Split(' ', 'your delphi guide', A);
    ShowMessage(a[0]); //your
    ShowMessage(a[1]); //delphi
    ShowMessage(a[2]); //guide
  finally
    A.Free;
  end;
end;
}

procedure Split
  (const Delimiter: Char; 
   Input: string; 
   const Strings: TStrings);
begin
  Assert(Assigned(Strings),'Hop dur vatandaş !');
  Strings.Clear;
  Strings.Delimiter := Delimiter;
  Strings.DelimitedText := Input;
end;
yukarıdaki koda baktığınız zaman Assert(Assigned(Strings)); ifadesi geçersiz bir Strings değişkenine rastladığı zaman uyarı verecektir. Komutun kullanıldığı yerde Strnigs değişkeninin muhakkak geçerli bir değere işaret ediyor olması gerekir aksi takdirde programın bir yerinde yanlış bir şeyler oluyor demektir.


Assert biraz hamallık gibi geliyorsa bu işi biraz daha otomatik hale getiren DUnit tarzı bir test otomasyonu kullanabilirsiniz.

bu şekilde yaptıktan sonra diğer testlere gerek var mı?
şüphesiz. sadece bu tarz bir geliştirme yöntemi olmadan programcı olmayan kişilerin programı veri girerek test etmeleri çok fazla bir şey ifade etmez. kaldıkı % 100 test etmekte zaten imkansızdır.

http://sadettinpolat.blogspot.com/2005/ ... mclar.html
http://www.cs.hacettepe.edu.tr/~turgay/ ... torial.pdf
viewtopic.php?t=3924&highlight=assert

:ara google --> assert + delphi
:ara google --> dunit
:ara google --> tdd + delphi
v.s.
En son sadettinpolat tarafından 18 Nis 2005 11:50 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
kefukar
Üye
Mesajlar: 705
Kayıt: 22 Kas 2004 03:08
İletişim:

Mesaj gönderen kefukar »

Eyvallah Sadettin Hoca. Sağol yardımcı olduğun ve emek geçip detaylı anlattığın için.. Kolay gelsin..
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Mesaj gönderen digital_agels »

itina ile test yapılır :D

Not :Kaynak kodlarınıda beraber yollayınki şu böcekleri bulunca öldürebilim :lol:
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Kullanıcı avatarı
kefukar
Üye
Mesajlar: 705
Kayıt: 22 Kas 2004 03:08
İletişim:

Mesaj gönderen kefukar »

digital_agels yazdı:itina ile test yapılır :D

Not :Kaynak kodlarınıda beraber yollayınki şu böcekleri bulunca öldürebilim :lol:
Eyvallah kardeş.. :lol: Sadece test yapma yöntemini söylesende makbule geçer... :wink:
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

abi getir programını bizim musteri var bi tane ona verelim nasıl oluyosa oluyo hata cikartiyo :lol: :lol: :lol:
herseyi kontrol etmeme ragmen adam biseyden de anlmıyo nasıl verileri karıştırıyo bilmiyom. Birgün sabahtan aksama kadar gidip özellikle izliyecem :lol:
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
kefukar
Üye
Mesajlar: 705
Kayıt: 22 Kas 2004 03:08
İletişim:

Mesaj gönderen kefukar »

MicroChip yazdı:abi getir programını bizim musteri var bi tane ona verelim nasıl oluyosa oluyo hata cikartiyo :lol: :lol: :lol:
:lol: Kardeş o tip müşterilerden hertarafta olduğu gibi bizde de var.. Biz o tiplere deli-dülü kullanıcı diyoruz. Ama faydası oluyor. :P Saol.
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

zaten bunlarsan her firma icin bir tane özel üretmisler :D :D ama cok faydasi oluyo haklisin.


Saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Cevapla