Skip to content

Yazılım üretimi bilimsel mi?

Tanıyanlar bilir, ben de yazılım üretiminin öyle sınıflarda öğretilebileceğine inanmayanlardanım. Her ne kadar yazılım üretmek için belirli teorik bilginin gerekliliği yadsınamaz olsa da asıl yazılım üretimi aktiviteleri ve düşünsel süreçleri, programcının çıraklık döneminde edindiği becerilere daha yakın bence. 1806829922_eebeb74c6f

Glenford J. Myers 1979′da ünlü kitabı The Art of Software Testing‘de yazılım testini "bir yazılımı ya da sistemi hataları bulmak amacıyla işletmek" olarak tanımlamıştı. Geçen 30 senede bu tanımın yanına yüzlerce yenisinin konmasının haricinde, yapısal olarak belki de fazladan ilave edebildiğimiz tek katma değer, statik testlerin yazılım testi terminolojisine eklenmesi oldu -ki bunu da icat etmedik, uygulamaya başladık.

Örneğin, test mühendisinin öngörülerinin, hislerinin ve farkındalığının formal test yöntemlerinin ve sistemlerinin daha önünde bir öneme sahip olmasını nasıl açıklayabiliriz? Yanılıyor isem eğer, bilgi ve beceri seviyesi sertifika programları ile ölçülen sözde testçilerin acziyetini görmezden gelmemiz gerekecektir.

(DEVAM EDIYOR)

Hafıza Sızıntısı* (Memory Leak) nasıl saptanır

Aşağıdaki adreste Sam Allen çeşitli tarayıcıların hafıza kullanımları ile ilgili güzel bir çalışma yapmış.safari-memory-usage

http://dotnetperls.com/Content/Browser-Memory.aspx

Makale içerisindeki grafikler ve anlatım, test altındaki uygulamaları uzun süre kullanıp hafıza kullanımlarını incelediğimizde mutlak hafıza sızıntılarını nasıl saptayabileceğimize mükemmel bir örnek sunuyor.

Makaledeki su götürmez hafıza sızıntılarını bir kenara bırakırsak, özellikle modern yazılım platformlarında gördüğümüz Garbage Collector’ların (GC), tembel programcılara neler yaptırabileceklerine bir bakalım.

GC’lerin keşfi babalarımızın çocukluğuna denk gelse de, popüler programcılık dünyasına seslerinin duyulması, bizlerin doğumundan hayli sonralara tekabul ediyor. 1972 yılında eli yüzü şekillenen bir C programlama dilini, 1983′leri bulan C++’yı ve bu platformların popülerliğini düşünürsek, GC sektörde hayli yeni bir kavram diyebiliriz. Belki de bu denli öne çıkmasını nesneye yönelik programlamanın ve hafıza dertsiz programlamanın popülerleşmesine de bağlayabiliriz, ve sanırım bağlarken de yanılmayız.

(DEVAM EDIYOR)

Borland Maceraları : Perde II

Hafta sonu sistem yöneticilerimiz Windows 113178808_fb3f0b27e6 tabanlı sunucuların tümüne bir güncelleme paketi yollamışlar. Bu güncellemelerden biri de henüz düzeltilmemiş PDF JavaScript açığını engellemek üzere tarayıcılardaki ve Adobe Acrobat Reader’da JavaScript desteğini kaldırmış. Açıkcası bildirim de gelmedi değil ama ben de herkes kadar okuyorum bu bildirimleri. Uzatmadan anlatalım;

Biz de bu arada Borland’ın test yönetim yazılımı Silk Central Test Manager yazılımının son sürümünü kurmak ile meşgulüz. Tahmin edebileceğiniz gibi konfigürasyonu da sunucu üzerindeki tarayıcı üzerinden yapmaya çabalamaktayız.

(DEVAM EDIYOR)

Bilgiden para kazanmak: Bir Borland Deneyimi

Bir süre önce, projelerimizden birinde kullandığımız Silk Cenral Test Manager uygulaması ile ilgili garip davranışlar görmeye başladık. Örneğin olur olmadık zamanlarda uygulama sunucusu yazılımı (AppServ) donup kalıyor ve gerek web kullanıcılarına, gerekse de takvimlenmiş otomatik testlere sistem yanıt veremiyordu.422064493_3b1579a512

Malımızı bilsek de disiplini elden bırakmayarak sırasıyla uygulama sunucusu, veri tabanı katmanı, test çiftliği iletişimi (ExecServ yada Silk Central SilkTest entegrasyon noktaları) ile ilgili profil çıkardık. Sonunda farkettik ki SilkTest yüklü istemci sunucu ile bağlantısı kopup yeniden bağlanmaya kalkığında sunucu 100MB’a yakın ek bir hafızaya ihtiyaç duyuyordu.

Anlaşılan münferit kopmalar sorun yaratmıyordu lakin bir şekilde bizim sahip olduğumuz 35 SilkTest yüklü cihaz bir şekilde toptan gidip geldiğinde sunucumuz buna dayanamıyordu.

Yapılacak basitti, JVM Heap Size’ı yükseltmek. Windows Registry’de Silk Central’in alışık olduğumuz kayıtlarında -Xms değerini 512′den 1024′e çıkardık ve artık kısa vadeli bir çözümümüz vardı.

Daha sonra bu sıkıntının sebebini araştırdığımızda sunucumuzun önündeki ağ aygıtlarından birinde bir düzensizlik farkettik. Görünen oydu ki cihazdaki düzensizlik, bağlantının ender de olsa kopmasına sebep oluyordu.

(DEVAM EDIYOR)

Test Mühendisliği Müthiştir!

Yakın tanıdıklarım bilir, aslında yazılım testi benim çalışma hayatımdaki ilk uğraşım değil. Hayatımı daha önce, yine yazılım sektöründe ama geliştirici ekiplerde farklı görevlerde çalışarak idame ettirmekteydim. Her ne kadar sektörümüzde daha çok aksini görsek de, ilerleyen zamanlarda biraz şansımın yardımı, biraz da yazılıma bakış açımın değişmesi neticesinde, yazılım üretiminin kalite güvencesi ve test alanına odaklandım.

Yazılım kalitesi ile ilgili çalışmaya başladıktan sonra ilgi alanlarım ile ilgili aniden birçok değişiklik olmaya başladı. Öncelikle sosyal bilimler ile ilgili karşı konulmaz bir merak ile başlayan bu değişim beni felsefe, psikoloji, sosyoloji gibi daha önce hiç ilgilenmediğim disiplinlerle haşır neşir olmaya, etrafımda olup bitenlere bilimsel bir kuşkuculuk ile yaklaştırmaya başladı.

Bir süre sonra artık nüfus cüzdanımı yeniletmeye gittiğim nüfus idaresinin nasıl daha verimli olabileceği yada basit geometrik şekillere sahip GUI nesnelerinin neden daha kolay algılanabildiği üzerine düşünür buldum kendimi. Yazılım geliştirirken böylesine konular gündemimde nedense hiç olmazdı.dead end

Monitör başında sabahladığımız geceler geldi aklıma. Hafta başına yetişmesi gereken onlarca yeni fonksiyonun adım adım, sabırları zorlayan bir tekrarlılıkta karşımıza çıkan paternlerini algılayıp refleks ile kodlamaya başladığımız ekranlar, sorgular yada o anlamsız CSS düzenleme rutinleri… Bitmeyen ve kendini tekrarlayan bir klavye emekçiliği ile geçen günler ve geceler. Sonuçta kimsenin aslında memnun olmadığı, ama iş ve teknik gereksinimleri karşılayan birçok ürün gelip geçti ellerimizden.

Şimdi ise proje ekiplerinde test mühendisi olarak çalışıyorum ve çok daha mutluyum. Mutluyum, çünkü değişimin bir parçası olma şansım var artık. Öncelikle geliştirici olarak "teknik problemler kümesi" olarak gördüğüm yazılım geliştirme işinin aslında teknik değil, iş ve insan odaklı olduğunu görebildim örneğin.

Yazılımları test etmek, kod yazmaktan daha güzeldir. Daha sosyalsinizdir herşeyden önce. Teknik insanlarla konuşursunuz, son kullanıcılarla da.. Sistemi eş zamanlı olarak gereksinim-mimari-kaynak kod olarak görüp bu yapının her noktasında da görev alırsınız. Gerektiğinde öylesine teknik bir iştir ki elinizde RFC’ler bir parça Ada95 kodunu devşirmeye çalışırsınız, yeri gelir pazarlama ekibi ile ürünün gelecek dönemde öne çıkarılacak fonksiyonlarını tartışırsınız.

Programcılık eğer sabah 8 akşam 5 saatleri arasında gittiğiniz ve görevinizin VB6 ile geliştirilmiş bir sigortacılık yazılımını sürdürmek ise, Test Mühendisliği evde oturup Lisp derleyicisi yazmak gibidir. Merakınız ve öğrenme güdünüz tarafından beslenen yazılım testi, geliştirdiğiniz disiplin ve sistematik yaklaşım teknikleri ile bilenir, yeşerir.

Her ne kadar Hollanda gibi iş dünyasının sınırları kalın çizilmiş bir yerde çalışıyor olsam da, böylesine durağan iş yapma biçimleri olan bir kültürde hala yaptığım işi bu kadar seviyorsam, test mühendisliğinin eğlenceli yanının ve çok yönlülüğünün yadsınamaz bir etkisi olmalı.

İyi Testler!

Vuslata beş kala

Uzun bir aradan sonra tekrar merhabalar. n609170895_1842749_5770 Geçen yaz, hukukçu bir dostum, iş kontratımdaki bir madde ile ilgili dikkatimi çekmişti. Beni uyardığı nokta, söz konusu maddenin esnetilerek, çalıştığım sürece ürettiğim ve blog yazıları da dahil her türlü ürün üzerinde, ileride iş verenimin hak iddia edebileceğiydi.  Uzun bir süre böylesine bir noktayı nasıl atlayabildiğimi düşünüp, sonunda durumun kesinleşmesi üzerine yazılarıma sessiz sedasız "ara" vermek durumda kalmıştım.

Sorun tam olarak çözülmüş olmasa da, aldığımız geçici önlemler ile yeterli "güveni" tekrar kazanabildim ve buradan sizlere ulaşmaya devam kararı aldım.

Yine burada yazılım kalitesi, yazılım testi, yazılım üretim süreçleri konularında yazılarımı sizlerle paylaşmaya devam edeceğim.

Sitede yeni yazı yayınlamama rağmen, e-postaları ile beni yalnız bırakmayan ve benimle iletişimini verdiğim geç yanıtlara rağmen koparmayan dostlara buradan herkesin önünde tekrar teşekkür etmek istiyorum.

İyi Testler!

Yazılım Test ve Kalite Derneği niye spam yapar?

644785_questionYazılım Test ve Kalite Derneği, 17-18-19 Temmuz tarihlerinde İstanbul Dedeman Otel’de ISTQB Foundation level eğitimi verecekmiş ve eğitim ücreti öğle yemekleri, eğitim materyalleri vs. de dahil olmak üzere 950 USD + KDV imiş.  Eğer eğitim sonunda ISTQB sertifikası istiyorsanız,  sınava girmek için 200 USD + KDV ödeyerek sorulan 40 sorudan 25′ine doğru yanıt vermeliymişsiniz.

Tüm bunları biraz önce gelen kutuma düşen bir e-postadan kısa kısa parçalar sizler için. Temennim bu e-postayı isteyerek almaktı, olmadı.

 

Bu arada, Yazılım Test ve Kalite Derneği neden SPAM e-posta gönderir? Sanırım bugün tüm gün bunu düşünüyor olacağım…

Herkese iyi testler!

"Şunu bir test et…"

Bu güne kadar kendimce benimsediğim düsturumu tek cümleyle sunayım sizlere:

 

İşimle ilgili tek kuralım, müşterime eldeki imkanların elverdiği en iyi test hizmetini sunmaktır.6a00d83451e55369e200e54fa9aefb8834-640wi[1]

Bu cümlede "müşteri" kelimesi yerine geliştirme ekibi, proje finansörü, son kullanıcılar… vb. rollerden istediğinizi koyabilirsiniz.

Hiçbir zaman test edilmesi gereken bir yazılımı, eksik dökümantasyon, net olmayan isterler yada test aktivitelerinin ekip içerisinde hor görülmesi gibi sebepler öne sürerek reddetmedim ve bu tavrımı da -ne yalan söyleyeyim- çok doğru buluyorum.

Tabii ki proje sonunda "eğer elimde şu kaynaklar olsaydı sizlere böyle daha iyi hizmet verebilirdim" diye bir sonuç raporunu da proje kapanışı dokümanlarına ekleyerek. Bu raporları hazırlarken de tüm ölçümlerimi evrensel iş metriği saydığım "PARA" birimine çevirmeyi de ihmal etmiyorum.

Kullanabildiğiniz heryerde metrik olarak PARA’yı kullanın! PARA bizim gibi teknik insanların ve ayrıca da teknik olmayan yöneticilerin bile aynı biçimde algıladıkları bir birimdir. Sizi temin ederim, genel müdürünüzle test mühendisliği üzerine bir konu tartışırken defects_per_KLOC yerine USD daha iyi bir metrik olacaktır!

Ama gün geliyor ki kodlama safhası uzuyor ve proje takvimi test süresi içerisinden kullanılan zaman ile bitiriliyor. Yazılım, 5 aylık geliştirmenin ardından ofisi terketmesi gereken günün öğleden sonrasında, işini bitirmenin keyfiyle kocaman gülümseyen bir geliştiricinin ellerinde masanıza geliyor ve size "Şunu bir test et…" deniyor. Ama bekleyin, daha da ilginçleşebilir bu durum.

Bu yazılımı ilk defa görüyor olabilirsiniz!!

Bugün başıma gelen işte tam buydu ve hayatımda ilk kez bir yazılımı test etmeyi reddettim. Bir tarafta yıllardır benimsediklerim ve doğru addettiklerim, diğer tarafta ise mesleğime ve yaptığım işe duyduğum saygım.

"Bişeyler yap da aktivite raporunu imzala, yazılımın bugün çıkması gerek."

İpleri koparan cümle bu oldu bugün.

"Bişeyler" ne demek? Yani ne yaptığımın önemi yok muydu?

İmza? Rapora attığım imzanın yazılımın test edilmesi ile doğrudan bir bağlantısı bile yoktu ki. O imzanın atılma amacı test aktivitelerini bitirdiğimi kayıt altına almaktı, ötesi değil…

Yaptığımız işin, test aktivite raporlarını imzalamaya indirgenmesi mi, yoksa test yapılmadığı için aslında anlamı da bulunmayan bir aktivite raporu yüzünden proje ekibine dahil edilmemiz mi daha fazla yaraladı bilemiyorum.

Bunu da buraya not almış olalım. Kim bilir belki ileride bir gün okur, okuduğumuzu anlar, anladığımızdan da dersler çıkarırız.

İyi Testler!

Test Mühendisleri için Altın Kaplama 101 / Gold Plating

Biraz önce sevgili Alemşah Öztürk’ün web günlüğü antifitte gördüğüm TonlaKazan isimli TurkCell servisinin web sitesini ziyaret ettim. Sitenin işlevi gayet açık ve net biçimde belirtilmişti; TurkCell’in ÇalarkenDinlet isimli hizmetinden faydalanıyorsanız, telefonunuz çalarken sizi arayanlara reklam dinletebiliyor ve her seferinde faturalı hatlarda 15 saniye, faturasız hatlarda ise 1 kontür kazanıyorsunuz.

51DJBXPNB4L__SL160_Bunu gördüğümde hemen TurkCell’in sitesine girip tarifelere göz atmaya başladım. Gördüğüm ilk ibare aslında aradığım temel bilgiydi. TurkCell görünene göre birçok tarifesinde konuşma sürelerini 6 saniyelik dilimlerle ücretlendirmekteymiş.

İnsanoğlu düşünmeye başlıyor, durmuyor ki. Türklüğün de vermiş olduğu cin fikirlilikle "Benim iki TurkCell hattım olsun" diyiverdim. İlk hattımı sadece ikinci hattımı arayıp, reklamı dinleyip (hatta kampanya şartlarında reklamın tümünün dinlenmesine gerek bile yok denmekte) diğer telefondan çağrıyı yanıtlayıp hemen kapar isem, her seferinde 6 saniye için faturalandırılır, ama 15 saniyelik TonlaKazan bonusu kazanmış olurum.

Böyle bir durumda her seferinde 9 saniye ücretsiz konuşma kazanmış olurum. Bu da demek oluyor ki her on tekrar, ortalama bir telefon görüşmemin bedelini karşılıyor. Yani ilk hattımda 1 dakikalık (6 saniye X 10 kez) görüşme bedeli ile aslında 1,5 dakikalık görüşebiliyorum.

Üstüne üstlük ilk hattımın numarasını tanıdıklarıma versem ve aramalarımı bu hattım üzerinden yanıtlasam, ilk hattım için ödeyeceğim fatura tutarı daha da düşük olmayacak mıdır?

Peki, böylesine bir "açığı" TurkCell gibi bir dev nasıl farketmedi? Ya tüm TurkCell aboneleri bu yöntemi kullanmaya başlarsa? Allah aşkına,TurkCell’in cirosunun gerçekten %33′den fazla düşeceğine inananınız var mı?

(DEVAM EDIYOR)

YKGS’2008 bildiri teslim tarihleri uzatıldı!

Uzunca bir aradan sonra tekrar selamlar, yaklaşık iki haftadır hayatımı düzene soktuğumu ve tekrar yazmaya başlamanın iyi bir fikir olduğunu düşünüyordum. Sevinçliyim ki bu aranın ardından sizlere güzel bir haber vermek için tekrar klavye başına oturdum.

Bugün aşağıdaki mesajı posta kutumda gördüm ve sizlerle de paylaşmak istedim.  Böyle etkinliklere aktif katılım konusunda geçen senelerde sektörümüzde belirgin bir isteksizlik mevcuttu. Bu isteksizliğimizi bir kenara atıp, özel sektörün deneyimlerini de böyle bir organizasyon içerisine taşımak herkes için büyük bir kazanım olacaktır. Bu konuda Havelsan ve MilSoft’u da kutlamak isterim.

Aldığım elektronik postanın içeriği aşağıdaki gibiydi;

Sayın Özay Civelek

Gelen talepler doğrultusunda Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu - YKGS’2008
bildiri teslim tarihi 20 Mayıs 2008 Salı gününe kadar uzatılmıştır.

Sempozyum ile ilgili detaylı bilgiler için http://www.cse.iku.edu.tr/ykgs2008/  web sayfasını,

Çevrimiçi bildiri gönderme için http://www.easychair.org/conferences/?conf=ykgs2008  web sayfasını kullanabilirsiniz.

Saygılarımla,

Yrd.Doç.Dr.Güray YILMAZ
Hava Mühendis Binbaşı
Hava Harp Okulu
Bilgisayar Mühendisliği Bölüm Başkanı

Umarım kalan 13 gün içerisinde birçok bildiri web tabanlı sistem aracılığıyla YKGS ilgililerine ulaştırılır ve umarım hayalini kurduğumuz ulusal çaptaki bu etkinlik tüm katılımcıların yüzünü güldürür.

İyi testler