9 Ocak 2017 Pazartesi

Test Case Üretimi Hakkında


Yanlış eylemlerin olası üç türü vardır:
Tanımlama iyi bir dizilimde yapılmamış.
Tanıma kötü bir dizilimde olsa da program tarafından kabul edilmiş.
Tanıma sırasında dizi tanımaları oluşturulmamış.
Gerektiği yerde gerektiği kadar test case üretilmelidir.
Tüm veriler için kullanmaya zaman ve kaynak yoktur.

Syntax Testtinin Adımları

Hedef dilini ve formatını tanımla.
Test ve Debug işlemini gerçekleştir.
Normal koşullarda mimimum gereksinimler ile. Temel testleri gerçekleştir.
Geçersiz verilere karşı sistemi test ed. "çöp" koşullar. (yüksek sonuç)

Bu için bir yazılımda kullanılabilir

Syntax testinin otomatik olarak yapılması gerekmektedir.
Syntax (Söz dizimi) nasıl bulunur?
Her bir veri girişi kendine özgü bir söz dizimine sahiptir.
Yapı içerisinde
Resmen belirlenmiş
Belgesiz
Sadece anladım
Şartnameye test etmek için yaralı çöp değerlerine ihtiyaç duyulabilir.(Farklı değerlerle düzgün bir söz dizilimi yapılıyor mu sorusunu cevaplamak için)


Söz dizilim yapıları ve BNF


| = “or”.
* = “zero or more occurrences”.
+ = “one or more occurrences”.
      
        means “n repetitions of A”.

special_digit       ::= 0 | 1 | 2 | 5
other_digit         ::= 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
ordinary_digit    ::= special_digit | other_digit
exchange_part   ::= ordinary_digit
phone_number   ::= exchange_part number_part

Doğru bir telefon numarası:
4566654, 9904567, 3300000
Yanlış bir telefon numarası:
0551212, 123, 8, ABCDEFG

Neden BNF

BNF şartname kullanma biçimi için doğru bir yapı sağlar. Tasarım testi için kolay bir  yoldur.
Tasarımcıların işlerini kolaylaştır ır.
Bu aşamada doğru veriler ile yanlış verilerin ayrımı yapılana kadar tasarım başlatılmamalıdır.

Milyon Maymun Fenomeni

“A million monkeys sit at a million typewriters for a million years and eventually one of them will type Hamlet!”


“Giriş onaylama düşmanca bir dünyaya karşı ilk savunma hattıdır.”
Iyi bir kullanıcı arayüzü tasarımı çöp verileri sisteme kabul etmez.
İyi bir test farklı çöp değerleri ile yapılan testtir.
Giriş-tolerans testi genellikle sistem testlerin bir parçasıdır .

Varlık-İlişki Modelinin Tablolaştırılması



Örnek-2: Bir müşteri birden fazla otomobile sahip ve her otomobil modeline birden fazla müşteri sahip olabilir. Bu durumda otomobiller ile müşteriler arasındaki ilişki çoktan-çoğa biçimindedir.
Varlık-İlişki Modelinin Tablolaştırılması


ER şemasına uygun olarak aşağıdaki ifadeler yazılabilir:
Müşteri ={Müşteri No, Adı}
    Otomobil ={Oto Model, Renk}
    Sahip ={Müşteri No, Oto Model, Tarih}

Sahip isimli ilişkiye dayanılarak aşağıdaki tablo oluşturulabilir.


Varlık-İlişki Modelinin Tablolaştırılması

Örnek-3: Bir müşteri birden fazla otomobile sahip olabilir. Ancak tersi doğru değildir. Yani bir otomobil modeli iki farklı müşteriye ait olamaz. Bu durumda ER şeması aşağıdaki şekilde çizilebilir.





Varlık-İlişki Modelinin Tablolaştırılması

“Sahip” tablosu ile “Otomobil” tablosu aynı tablo içine birleştirilir.

Müşteri = {Müşteri No, Adı}

Otomobil = {Oto Model, Renk, Müşteri No, Tarih}

Bu durumda “Otomobil” tablosunun görünümü şu şekilde olacaktır:


Varlık-İlişki Modelinin Tablolaştırılması

Örnek-4: Bir müşteri sadece bir otomobil modeli satın alabilmektedir. Aynı biçimde, bir model otomobil sadece bir müşteriye satılabilmektedir. Böyle bir durumda varlık-ilişki modeli aşağıdaki şekilde olabilir:



Varlık-İlişki Modelinin Tablolaştırılması

Yöntem-1: Müşteri varlığı ile otomobil ve sahip ilişki şu şekilde ifade edilebilir:

Müşteri = {Müşteri No, Adı}

Otomobil = {Oto Model, Renk}

Sahip = {Müşteri No, Oto Model, Tarih}

Burada Sahip ilişkisine Müşteri No niteliği anahtar olarak düşünülmüştür.


Varlık-İlişki Modelinin Tablolaştırılması

Bunun yerine Oto Model varlığı da bir anahtar olarak tasarlanabilir:

Sahip = {Müşteri No, Oto Model, Tarih}

Oto Model niteliği anahtar kabul edilerek Sahip isimli ilişki şu şekilde tabloya dönüştürülebilir.



Varlık-İlişki Modelinin Tablolaştırılması

Yöntem-2: Sahip ile Otomobil varlıkları birleştirilerek Otomobil ya da Müşteri tablosu elde edilir.

Sahip ile Otomobil varlıkları birleştirilerek Otomobil tablosu elde edilir.

Müşteri = {Müşteri No, Adı}

Otomobil = {Oto Model, Renk,  Müşteri No,  Tarih}

Sahip ile Müşteri varlıkları birleştirilerek Müşteri tablosu elde edilir.

Müşteri = {Müşteri No, Adı, Oto Model, Tarih}

Otomobil = {Oto Model, Renk}



Varlık-İlişki Modelinin Tablolaştırılması

Yöntem-3: Sahip ile Otomobil ve Müşteri varlıkları bir tablo üzerinde birleştiriliyor. Bu tablonun adı Satış olsun. Bu tablo,

Müşteri = {Müşteri No, Adı, Oto Model, Renk, Tarih} veya

Müşteri = {Müşteri No, Adı, Oto Model, Renk, Tarih} biçiminde olabilir.

Müşteri No niteliğinin anahtar olarak kabul edildiği birinci durum için tablo şu şekilde düzenlenebilir:



Varlık-İlişki Şemaları

Varlık-ilişki modelinde varlıklar ve ilişkileri tanımlamak için aşağıda belirtilen şema öğeleri kullanılır.

İlişki Türlerinin Gösterilmesi

İlişki türleri;

Birden-bire
Birden-çoğa
Çoktan-bire
Çoktan-çoğa

biçiminde tanımlanmıştı. Bu ilişkiler, varlık-ilişki yani ER şemaları ile yandaki şekilde gösterilebilir.


Varlık-İlişki Modelinin Tablolaştırılması

Bir veritabanı, tablolardan oluşur.

Varlık-ilişki şemaları biçiminde çizilen bir veritabanı tablolar halinde gösterilebilir.

Veritabanının her varlık kümesi ve her ilişki kümesi için, bu isimlerle simgelenen birer tablo düzenlenir.


Varlık-İlişki Modelinin Tablolaştırılması

Örnek-1: Aşağıdaki varlık-ilişki şemasını göz önüne alalım. SSK No ve Hesap No alanları anahtar alanlardır.


Bu varlık-ilişki diyagramı aynı zamanda dış model (external model) olarakta adlandırılır.

Varlık-İlişki Modelinin Tablolaştırılması


Zayıf ve Kuvvetli Varlıklar


Bazı durumlarda varlık kümesi içinde bir anahtar bulmak mümkün olmayabilir. Hatta niteliklerinin tümü bir araya getirildiğinde yine bir anahtar elde edilemeyebilir. Böyle varlık kümelerine zayıf varlık kümesi adı verilir.

Buna karşılık, varlık kümesinin içerdiği niteliklerden en az biri bir anahtar oluşturabiliyorsa bu varlık kümesine kuvvetli varlık kümesi adı verilir.


Zayıf ve Kuvvetli Varlıklar

Örnek: Bir “PERSONEL” varlığının aşağıda belirtilen niteliklere sahip olduğunu varsayalım.

“Adı ve Soyadı”
“Doğduğu İl”
“Eğitim Düzeyi”

Bu üç nitelikten oluşan varlık kümesi, bir zayıf varlık kümesi olarak değerlendirilir.
Çünkü, bu küme içinde aynı isim ve soyadına sahip çok sayıda PERSONEL olabilir. O halde bir anahtar olarak kabul edilemez. Benzer biçimde “doğduğu il” ve “eğitim düzeyi” nitelikleri de aynı nedenlerden ötürü birer anahtar olamaz. Bu niteliklerin tümünün birleşimi bile bir anahtar olamaz.

Anahtar



Varlık kümesi içindeki varlıkları birbirinden ayırt etmek için kullanılan niteliklere varlık kümesinin anahtarı denir.

"Süper Anahtar" ve "Aday Anahtar" olmak üzere iki tür anahtar vardır.

Varlıkları ve ilişkileri tanımlamış bulunuyoruz. Ancak, bir varlık kümesi veya bir ilişki kümesi içinde yer alan varlıkları birbirinden nasıl ayırt edebileceğiz sorunu karşımıza çıkmaktadır.
Örneğin öğrenci? varlık kümesi içinde her bir öğrenciyi diğerinden ayırt eden nitelikler neler olabilir?
Öğrencileri birbirinden ayırt etmek için, öğrenci numarasını kullanabileceğimizi söyleyebiliriz.


Süper Anahtar

Varlık kümesi içinde yer alan bir varlığı kesin olarak tanımlamaya yarayan anahtara süper anahtar denir.

Bu anahtar sadece bir nitelikten oluşabileceği gibi, birden fazla niteliğin birleşiminden de oluşabilir.

Süper anahtarlar süper küme oluşturur. Bir süper anahtarın herhangi bir süper kümesi daima bir süper anahtar olarak kabul edilir.


Örnek: SSK numarası bir PERSONEL’i diğerinden ayırt etmek için yeterlidir. Çünkü bir ülkedeki tüm çalışanların sadece bir SSK numarası vardır.

İki farklı kişinin aynı SSK numarasına sahip olması olanaksızdır.

PERSONEL’in “adı” süper anahtar olarak tanımlanamaz. Çünkü aynı isme sahip birçok PERSONEL var olabilir. Ancak, “SSK numarası” bir süper anahtar olması nedeniyle, "SSK numarası" ve "PERSONEL’in adı" birlikte süper anahtar olarak değerlendirilebilir. Hatta “SSK Numarası, Adı, Bölümü” nitelikleri birlikte bir süper anahtar olarak kabul edilebilir.








Aday Anahtar




Varlık kümesi içinde yer alan bir varlığı kesin olarak tanımlamaya yarayan bir başka anahtar da aday anahtar olarak bilinmektedir.

Bir varlık kümesinin süper anahtarı bir veya daha fazla niteliğin birleşiminden oluşabiliyordu. Bu tür bir süper anahtarın herhangi bir alt kümesi aynı zamanda bir süper anahtar değil ise, bu anahtara aday anahtar ya da kısaca anahtar adı verilir.

Bazı durumlarda; varlıklara ilişkin birkaç nitelik, birlikte bir anahtar olarak tanımlanabilir.


Örnek: Aşağıda görüldüğü üzere, “SSK No” niteliği süper anahtarın bir parçası olmasına karşılık, tek başına varlıkları birbirinden kesin olarak ayırt etmekte kullanılabilir. O halde “SSK No” niteliği bir anahtardır.

Personel için; “SSK No, Adı, Bölümü” nitelikleri, birlikte "PERSONEL" varlığı içindeki her bir varlığı diğerinden ayırt etmek için kullanılabilir. Süper anahtar, varlıkları kesin olarak birbirinden ayırt etme özelliğine sahip olmasına karşılık, bu özelliği kazanmak için gerekenden fazla niteliği içerebilir. Anahtar ise, aynı tanıma uygundur. Ancak gerekenden fazla nitelik içermeme özelliğine sahiptir.