17 Kasım 2019 Pazar

C++ *'lar ile Sola Dayalı Ters Üçgen

Satir sayisi girin:8
********
*******
******
*****
****
***
**
*


Yukarıdaki ekran çıktısının tam tersini şurdaki yazımda paylaşmıştım. Şimdi bu yukarıdaki şekli nasıl yapıyoruz birlikte ona bakalım.

#include<iostream>
using namespace std;

int main()
{
int satir;

cout << "Satir sayisi girin:";
cin >> satir;

for (int i = satir; i >= 1; i--)
{
for (int j = 1; j <= i; j++)
{
cout << "*";
}
cout << "\n";
}

return 0;
}

8 Kasım 2019 Cuma

C++ *'lar ile Sola Dayalı Üçgen

Satır Sayısı Girin: 5
*
* *
* * *
* * * *
* * * * *

Bu ekran görüntüsüne ait C++ kodunu nasıl yazarız?

#include<iostream>
using namespace std;

int main()
{
int satir;

cout << "Satir sayisi girin:";
cin >> satir;

for (int i = 1; i <= satir; ++i)
{
for (int j = 1; j <= i; ++j)
{
cout << "*";
}
cout << "\n";
}

return 0;
}


14 Şubat 2019 Perşembe

14.02.2019

Uzun zamandır yazmıyordum. Fırsatım olmadı. Bugün böyle bir fırsat bulabilmişken ve hazır sevgililer günüyken yazmak istedim.
Sevdikleriniz hala yanınızdaysa hayattaysa sarılın onlara sık sık söyleyin sevdiğinizi.
Sonra çok geç olabilir.

Sevgiyle kalın
Hoşçakalın

28 Ocak 2019 Pazartesi

Bir Haftadır Neden Hiç Yazmadım?

Yeniden merhaba..
Bir süredir pazar günleri hariç her gün yeni bir yazı paylaşıyordum. Fakat bir haftadir hiç yazmadım. Bu süreçte başımdan geçenleri paylaşmak istiyorum.
Öncelikle bir üniversitede araştırma görevlisi olabilmek için bilim sınavına girdim. Şehir dışında bir üniversiteydi ve günüm yolda geçtiğinden paylaşım yapamadım. Ertesi gün de hem çok yorgundum hem de sınav sonucunun açıklanmasını heyecanla beklediğimden yazmak aklıma gelmedi açıkcası. Akşam üzeri sonuçlar açıklandı ve sınavı kazanmıştım. Hayalini kurduğum mesleği yapabilecektim. Çok sevinçliydim. Misafirlerimiz geldi onlarla ilgilenmekten 2 gün daha yazı yazmaya fırsat bulamadım. Bir gün sınav sonuç listesinin yenilendiğini tesadüfen gördüm ve listede adım yoktu. Üniversiteyle görüşme yaptığımda bir yanlışlık olduğunu benim aslında sınavı kazanmadığımı söylediler. Dekanla görüştüm o da aynı şeyi söyledi. Aslında şikayet edecektim hatta mahkemeye bile vermeye karar vermiştim fakat ailem vazgeçirdi. Sırf adım çıkmasın daha kariyerime başlamadan elimin tersiyle itmiş olmayayım diye. Çok ağladım çok üzüldüm. Hayalinize ulaşıyorsunuz ve sonra aslında senin değildi diye elinizden alıyorlar nasıl bir duygu anlayanınız var mı?
Neyse bu konuyu kapatalım çünkü hala üzülüyorum. Çünkü hayaller kurmuştum. Herkes çok sevinmişti.
Daha sonra ben rahatsızlandım. Çok şükür iyiyim şimdi ve bir yazı paylaşarak (kısa da olsa) neler olup bittiğini anlatmak istedim.
Kendinize iyi bakın.




Bana ulaşmak için e-posta ve instagram.  

19 Ocak 2019 Cumartesi

Gri Kutu Testleri

Gri kutu testlei, saydam kutu ve kara kutu test tekniklerinin birlikte kullanılmasıdır. Bu testlerde gereksinimleri doğrulayacak test durumları kodun içyapısı esas alınarak yazılır. Böylece gereksinimler doğrulanıp yazılımın iç yapısı sınanmış olur.
Gri kutu test yaklaşımı; testin tasarımıyla ilgilenir. Testleri kara kutu testi gibi uygulanır. Ancak test tasarlanırken işlevin içsel veri ve algoritma yapısı da göz önünde bulundurulmaktadır. Gri kutu testlerinde test ekibi yazılımın iç yapısını bildiğinden, yazılımın tasarımına ve kod yapısına karşı şartlanma olabileceğinden bazı hatalar ortaya çıkartabilecek testler yapılmadak kalabilir. Aşağıdaki şekilde gri kutu test şeması gösterilmektedir:














Bana ulaşmak için e-posta ve instagram.  

18 Ocak 2019 Cuma

Saydam Kutu Testi (Beyaz Kutu Testi)

Saydam kutu testleri yazılımın iç yapısı bilinerek tasarlanır. Bu nedenle saydam kutu testlerini gerçekleştirenler genellikle sistemin iç yapısını bilen yazılımcılardır. Saydam kutu testiyle programın iç yapısındaki birimlerin içindeki hatalar araştırılır. Kaynak kod, saydam kutu testlerinin en önemli girdisi olduğundan, koda ulaşım olmadan saydam kutu testleri yapılamaz. Bunun yanında risk analizleri ve tasarım kısıtlerı da saydam kutu testlerinin planlanmasında, test stratejisinin belirlenmesinde, test araçlarının seçilmesinde ve test verilerinin oluşturulmasında kullanılır.
Saydam kutu testleri veri, kontrol ve bilgi akışlarının, kodlama standartlarının, hata yakalama ve ayıklama yapsının analizlerini içerir. Saydam kutu test tekniği basitçe aşağıdaki şekilde gösterilmiştir:




Saydam kutu test yaklaşımı kullanılarak yapılan testler şunlardır:

Birim Tesler: Saydam kutu testinin en iyi ve yaygın kullanımı birim testledir. Birim testler, kod yazanların belirli bir kod parçasının görevini doğru şekilde yerine getirip getirmediğini anlamak için yapılan testlerdir.

Statik ve Dinamik Analizler: Statik analiz, kod içerisindeki muhtemel hataları bulmak için yapılan kod üzerindeki incelemeleri içerir. Dinamik analizlerse kodun çalıştırılmasını ve çıkan sonucun analiz edilmesini içerir. Bu nedenle saydam kutu testleri kaynak koda ulaşım hakkı getirir.

Deyim Kapsama (Statement Coverage): Bu tür testte kod çalıştırılarak kod içerisinde yer alan her deyimin en az bir kez çalıştırılması hedeflenir. Böylece her bir deyimin bir yan etki göstermeden çalıştığı doğrulanır. Kod içerisinde çalıştırılmayan deyim olmadığı da doğrulanır.

Dal Kapsama (Branch Coverage): Hiçbir kod düz bir akışla yazılmaz. Kod içerisinde karar noktaları bulunur ve bu noktalardan kod yan dallara ayrılır. Dal kapsama ile program içerisinde yer alan tüm dalların kendilerinden beklenildiği şekilde çalıştığı doğrulanır.

Yol Kapsama (Path Coverage): Kod içerisindeki tüm yolların test edilmesidir.

Saydam kutu testiyle hata ve yanlışlar en erken safhada ve en hızlı şekilde bulunur. Böylece entegrasyon ve sistem testleri daha hızlı yapılabilir ve bulunan hata sayısında önemli bir azalma gözlemlenebilir.

Saydam Kutu Testinin Avantajları ve Dezavantajları:
Saydam kutu test tekniğiyle sınanan birimin veya modülün belirlenen girdiyle beklenen çıktıyı vermesi hedeflenir. Ancak bu çıktıyı nasıl verdiği ve kod içinde hangi yollardan geçildiği de incelenir.
Avantajlar:

  • Kod içerisinde gizli kalmış mantıksal hatalar bulunur.
  • Saydam kutu testleriyle yazılan kodun optimizasyonuna katkıda bulunulur.
  • Kod içindeki fazla satırlar ayıklanarak ölü kod parçaları bulunur.
  • Kaynak kodun analiz edilmesi ve bu analize göre testlerin gerçekleştirilmesiyle yazılım içerisindeki hatalar daha erken aşamada ve daha hızlı bulunur.
  • Yazılımın geliştirilmesi için belirlenmiş olan kodlama rehberine uyumluluk, tasarım kararlarına kodlama içerisinde uyulup uyulmadığı saydam kutu testleriyle net olarak görülür.
  • Saydam kutu testleriyle yazılımcıların kod geliştirme yetenekleri desteklenir ve güçlendirilir.
Dezavantajlar:
  • Eğer birim tümleştirme testleri test ekibi tarafından yapılacaksa bu iş için kodun iç yapısının bilinmesi gerekir. Bu da maliyeti arttırır.
  • Saydam kutu testleriyle sadece modül ve birimlerin iç işleyişleri test edildiğinden tümleştirmeden sonra ortaya çıkabilecek olan hatalar tespit edilemez.



Bana ulaşmak için e-posta ve instagram.  

17 Ocak 2019 Perşembe

Kara Kutu Testi

Test edilecek yazılımın iç işleyişine bakılmaksızın yapılan testlere kara kutu testleri denir. Bu yaklaşımda test edilecek yazılımın, sonucu bilinen bir davranışını doğrulamak için davranışın gerektirdiği girdi değerleriyle çalıştırılarak sınanır. Daha sonra yazılımın bu girdi karşısında elde edilen çıktısı, beklenen sonuçla karşılaştırılır. Bu yaklaşımın kara kutu olarak adlandırılmasının nedeni, uygulamayı test edecek kişinin yazılımın iç yapısıyla ilgilnememesidir. Bu nedenle bu testler yazılım geliştiricilerden çok test ekipleri tarafından gerçekleştirilir.
Kara kutu testinde bir yazılım parçası test ediliyorsa test mühendisi bu yazılım parçasının girdisini ve buna karşılık sistem çıktısını bilir. Fakat bu çıktıya nasıl ulaşıldığıyla ilgilenmez. Kara kutu testlerinin amacı, verilen girdilerle istenilen çıktının elde edilmesidir. Bu nedenle yazılımın iç işleyişiyle ilgili diğer bilgilerle ilgilenilmez. Kara kutu test tekniğinde diğer önemli bir nokta da geliştirilen yazılımın tasarımından veya kodlanmasından kaynaklanabilecek hataların bulunmasıdır. Bu amaçla kara kutu testlerinin yapılması ve istenilen amaca ulaşılabilmesi için yazılım geliştiricilerle test ekibi birbirinden ayrı çalışmalıdır. Böylece test ekibi, tasarım ayrıntılarını bilerek yazılıma karşı ön yargı taşımaz.
Kara kutu test tekniğiyle geliştirilen yazılım içerisinde şu hata türleri tespit edilmeye çalışılır:
  1. Doğru olmayan veya hiç olmayan işlevlerin tespiti
  2. Arayüz hataları
  3. Performans hataları
  4. Veritabanlarına ulaşma hataları veya veri yapılarındaki hatalar
  5. Başlatma veya sonlandırma hataları
  6. Sınır değer hataları
Kara kutu test tekniği aşağıda basit olarak gösterilmiştir:




 Kara Kutu Testinin Avantajları ve Dezavantajları
Avantajlar:

  • Yazılımlarda hataların bulunması için etkin ve hızlı bir tekniktir.
  • Test durumları yazılırken gereksinimlerden hareket edildiği için gereksinimlerdeki tutarsızlıkların ve belirsizliklerin belirlenmesinde önemlidir.
  • Testi gerçekleştirecek kişinin yazılımın ayrıntılarını bilmesine gerek yoktur.
  • Test ekibi ve kod geliştiriciler birbirinden bağımsız çalışabilirler.
  • Testçiler gereksinimleri doğrulamak ve gereken testleri gerçekleştirmek için yazılıma kullanıcı gözüyle bakarlar. Bu da kod geliştiriciler tarafından fark edilmeyen pek çok olası hatanın ve eksiğin bulunmasına yardımcı olur.
  • Testleri yapacak kişilerin sistem hakkında teknik ayrıntı bilmesine gerek yoktur.
Dezavantajlar: 
  • Kara kutu testleri yazılımın belirli parçasını hedeflemez. Bu nedenle birçok hata tespit edilmeden kalabilir, bunlar için başka testler gerekir.
  • Sadece belirli sayıda girdi değeriyle testler yapılır. Tüm girdiler ile testlerin yapılması sonsuza kadar sürer.
  • Yazılım içerisinde bazı kod parçalarında birden fazla test yapılırken bazı kod parçaları hiç test edilmeden kalabilir.
  • Açık ve yalın olmayan gereksinimlerin test durumlarını tasarlamak ve testlerini yapmak kara kutu test tekniğinde zordur.
Kara Kutu Test Stratejisi
Kara kutu test tekniği tümleştirme, sistem ve kabul test aşamalarında kullanılır. Bu testlerde en verimli sonuçlara ulaşmak için şu kara kutu test stratejisi izlenebilir:
  • Kara kutu testleri rasgele belirlenmiş girdilerle gerçekleştirilmelidir.
  • Yazılımın sağlamlığının kontrolü için belirtilen aralığın dışındaki değerlerin de testi yapılmalıdır.
  • Sınır değerler mutlaka test edilmelidir.
  • Değer artışlarında artış müktarı ayrıca test edilerek doğrulanmalıdır. Artış miktarı dışı artımlarda yazılımın tanımlı davranışına göre hareket ettiği doğrulanmalıdır.
  • Sayısal girişlerde sıfır değeri mutlaka girdi olarak sınanmalıdır.
  • Özellikle gerçek zamanlı sistemlerde stres testi yapılmalıdır. Programın aşırı yüklenme altında nasıl çalıştığı test edilmelidir.
  • Kara kutu testlerinde diğer bir amaç gereksinimlerin doğrulanması olduğundan her bir gereksinim için en az bir test durumu yazılmalı ve bu şekilde gereksinim kapsama gerçekleştirilmelidir.






Bana ulaşmak için e-posta ve instagram.