Yazılım Test Sürecinde Problemler ve Çözüm Önerileri



Benzer belgeler
DOĞAL GAZ SEKTÖRÜNDE PERSONEL BELGELENDĠRMESĠ

ANKARA ŞUBESİ YAZ SEMĠNERLERĠ

Sedona. Nisan 2013 Eğitim Kataloğu

Sedona. Eğitim Kataloğu

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri

İŞLETME RİSK YÖNETİMİ. Yrd. Doç. Dr. Tülay Korkusuz Polat 1/30

T.C. BĠNGÖL ÜNĠVERSĠTESĠ REKTÖRLÜĞÜ Strateji GeliĢtirme Dairesi BaĢkanlığı. ÇALIġANLARIN MEMNUNĠYETĠNĠ ÖLÇÜM ANKET FORMU (KAPSAM ĠÇĠ ÇALIġANLAR ĠÇĠN)

Yrd. Doç. Dr. Ayça Tarhan. Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü

Yazılım Mühendisliği 1

2- PROJE YÖNETİMİ BİLGİ ALANLARI Y R D. D O Ç. D R. K E N A N G E N Ç O L

Bir Bakışta Proje Döngüsü

Program AkıĢ Kontrol Yapıları

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

Hizmet Odaklı Mimariye Dayanan İş Süreçleri Yönetimi Sistemi

13.DERS Konfigürasyon Yönetimi

KALİTE YÖNETİM SİSTEMİ TS EN ISO 2015 PROSES YAKLAŞIMI

ĠÜ ONKOLOJĠ ENSTĠTÜSÜ BÜTÜNLEġĠK KALĠTE YÖNETĠM SĠSTEMĠ EL KĠTABI

Başarılar Dilerim. SORULAR

KURUMSAL RİSK YÖNETİMİ (KRY) EĞİTİMİ KURUMSAL RİSK YÖNETİMİ: KAVRAMSAL VE TEORİK ÇERÇEVE

T.C. ORTA KARADENİZ KALKINMA AJANSI GENEL SEKRETERLİĞİ. YURT ĠÇĠ VE DIġI EĞĠTĠM VE TOPLANTI KATILIMLARI ĠÇĠN GÖREV DÖNÜġ RAPORU

İŞLETME RİSK YÖNETİMİ. Yrd. Doç. Dr. Tülay Korkusuz Polat 1/21

GÜNEġĠN EN GÜZEL DOĞDUĞU ġehġrden, ADIYAMAN DAN MERHABALAR

ELEKTRONİK TİCARET ÖDEME ARAÇLARI

KARĐYER YÖNETĐMĐ. Geleceğe yönelik çalışan ihtiyaçlarını iç kaynaklardan sağlayarak çalışan motivasyonunu artırma.

Eğitimcilerin Eğitimi Bölüm 11:Kurumsal ve Ürüne Yönelik Karbon Ayak İzi Hesaplaması Elif ÖZDEMİR , ANTALYA

ŞİKAYET / İTİRAZ VE GERİ BİLDİRİM PROSEDÜRÜ

BİLGİ SİSTEMLERİ YÖNETİMİ TEBLİĞİ

GÖSTERGE YÖNETİMİ ÇALIŞMA TALİMATI

Yazılım Geliştirme Projelerinde Kontrolörlük / Müşavirlik Hizmetleri. Y.Müh. Kadriye ÖZBAŞ ÇAĞLAYAN, PMP Y.Müh. Ahmet DİKİCİ, PMP

Sağlık Bilgi Teknolojileri ve Yazılım Süreç Yönetimi

ŞİKAYET / İTİRAZ VE GERİ BİLDİRİM PROSEDÜRÜ

T.C. ULUDAĞ ÜNĠVERSĠTESĠ KADRO GÖREV TANIMLARI

GEÇİŞ İŞ SAĞLIĞI VE GÜVENLİĞİ YÖNETİM SİSTEMİ

İnsan Kaynakları Yönetiminin Değişen Yüzü

ISO 13485:2016 TIBBİ CİHAZLAR KALİTE YÖNETİM SİSTEMİ GEÇİŞ KILAVUZU

ISO 9001:2015 GEÇİŞ KILAVUZU

2010 I. DÖNEM GEBZE EĞİTİM PROGRAMLARI

İŞLETME RİSK YÖNETİMİ. Yrd. Doç. Dr. Tülay Korkusuz Polat 1/51

ĠSYS KURULUMU ve KRĠTĠK BAġARI FAKTÖRLERĠ. Ali DĠNÇKAN,CISA, Tübitak UEKAE Tel:

Örgütler bu karmaģada artık daha esnek bir hiyerarģiye sahiptir.

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

Ürün Olarak Konut Kavramı ve Türkiye deki Konut SatıĢlarının Ürün Hayat Eğrisi YaklaĢımıyla Değerlendirilmesi

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri

Kalite Sistemleri ve Yönetimi YILMAZ ÖZTÜRK

İŞ SÜREKLİLİĞİ YÖNETİM SİSTEMİ İÇİN KRİTİK BAŞARI FAKTÖRLERİ

UYGUNSUZLUK VE DÜZELTİCİ & ÖNLEYİCİ FAALİYETLER PROSEDÜRÜ

WEB PROJESİ YÖNETİMİ. Belli bir süre içerisinde, belli bir bütçe ile belirlenen hedeflere ulaşmak için uygulanan metodolojik süreçtir.

Dijitalleşme Yolunda ERP Dönüşümü

SözleĢme Tarihi : 20/06/2016 SözleĢme No : 2016/02

Mersis Bilgi Teknolojileri Danışmanlık Ltd. Proje Yönetimi. Meriç Aykol

Ekonomik Açıdan En Avantajlı Teklifin Belirlenmesinde 2004/18/EC AB Kamu Ġhale Direktifi Ġle 4734 Sayılı Kamu Ġhale Kanununun KarĢılaĢtırılması

Ġġ SAĞLIĞI VE GÜVENLĠĞĠ RĠSK DEĞERLENDĠRMESĠ YÖNETMELĠĞĠ

İŞ SÜREKLİLİĞİ PLANLAMASINDA ACİL DURUM UYARI VE HABERLEŞMESİ. Zeynep Çakır, BTYÖN Danışmanlık

BELGE VE LOGO KULLANMA TALİMATI

KURUMSAL RİSK YÖNETİMİ. Yrd. Doç. Dr. Tülay Korkusuz Polat 1/37

ISO/IEC BİLGİ TEKNOLOJİSİ - HİZMET YÖNETİMİ BAŞ DENETÇİ EĞİTİMİ. Terimler Ve Tarifler.

11.DERS Yazılım Testi

2017 NİSAN AYI YÖNETİM KURULU FAALİYET RAPORU

MADDE 1 (1) Bu Yönetmeliğin amacı; çalıģanlara verilecek iģ sağlığı ve güvenliği eğitimlerinin usul ve esaslarını düzenlemektir.

Great Place to Work Türkiye. Eyüp Toprak Managing Director. Frank Hauser Managing Partner

YAZILIM PROJE YÖNETİMİ. Yrd.Doç.Dr.Hacer KARACAN

Ġnternet ve Harekât AraĢtırması Uygulamaları

Pardus Yazılım Testleri ve Hata Takip Sistemi

T.C. BÜLENT ECEVİT ÜNİVERSİTESİ JEOLOJİ MÜHENDİSLİĞİ. SSP900 Sosyal Sorumluluk Projesi Genel Sınav Raporu

IT Dönüşüm Projesi Başlangıç/Kick-off Toplantısı

Konfigürasyon Yönetimi

TÜRKĠYE TEKNOLOJĠ GELĠġTĠRME VAKFI (TTGV) DESTEKLERĠ

3. Proje ekibi ilk proje planını ve bütçesini tamamladılar. Sıradaki yapmaları gereken şey nedir?

HACCP Sistem Tetkikine Ait Resmi Form Resmi Kontrol Rapor No:

NĠHAĠ RAPOR, EYLÜL 2011

DÜZCE ÜNİVERSİTESİ STRATEJİ GELİŞTİRME DAİRE BAŞKANLIĞI

Yazılım ve Uygulama Danışmanı Firma Seçim Desteği

Teklif Çağrısı: Hibe olarak dağıtılmak üzere ayrılan bütçeye başvuracak projelerin hazırlanması için davet duyuruları

Kaynak Talimatlarının (WPS) Hazırlanması için Yöntemler. Yerstem Yağan Metalürji ve Malzeme Mühendisi Kaynak Mühendisi

ISO 27001:2013 BGYS BAŞDENETÇİ EĞİTİMİ. Kapsam - Terimler

EĞĠTĠM ve SERTĠFĠKALANDIRMA SĠSTEMLERĠ

ISO 9001:2015 KALİTE YÖNETİM SİSTEMİ GEÇİŞİ İLE İLGİLİ BİLGİLENDİRME

DESTEKLEYİCİ VE SÖZLEŞMELİ ARAŞTIRMA KURULUŞU İLE İLGİLİ İYİ KLİNİK UYGULAMALARI DENETİMLERİNİN YÜRÜTÜLMESİNE İLİŞKİN KILAVUZ

E-DEVLET ÇALIġMALARI VE TÜRKSAT TA Ġġ SÜREKLĠLĠĞĠ ÇALIġMALARI MUSTAFA CANLI

Bilişim Teknolojileri Test ve Belgelendirme Hizmetleri. Mustafa YILMAZ

BİT PROJELERİNDE KARŞILAŞILABİLEN OLASI RİSKLER

Analiz ve Kıyaslama Sistemi

COBIT Bilgi Sistemleri Yönetimi. Şubat 2009

PROJE RISK YÖNETIMI D R. Ö Ğ R. Ü Y E S İ K E N A N G E N Ç O L

SUNUŞ. Sabri ÇAKIROĞLU Ġç Denetim Birimi BaĢkanı

RĠSK VE FIRSAT ANALĠZ PROSEDÜRÜ

T. C. TÜRK STANDARDLARI ENSTİTÜSÜ

EFQM Mükemmellik Modeli 2010

3.DERS YAZILIMDA KALİTENİN ANLAMI

İç Kontrol Uzmanı Pozisyonu İçin Doğru Kriterlere Sahip Olduğunuzdan Emin misiniz?

Main-Cert Kompetenzprofil für Fach- und Führungskompetenzen in der Instandhaltung (Supervisor)

TS EN ISO 14001: 2005 AC: Haziran 2010

Yaz.Müh.Ders Notları #6 1

Sıra No Tarih Saat Ders No Yöntem Ders Adı Dak San :00 1 Ders Sınavın Giriş Şartları ve Sınavın Genel Yapısı :15 1 Ders En Önemli

Emniyet-Kritik Sistemlerin Yazılım Doğrulama Süreci

Yazılım Kalite Yönetimi (SE 554) Ders Detayları

Transkript:

Yazılım Test Sürecinde Problemler ve Çözüm Önerileri Mehmet ġahġnoğlu, Mustafa SARI, AyĢegül KURT, Salih KURNAZ, Mehmet ÖZBEK, 1 Yazılım Test ve Kalite Değerlendirme Merkezi, TÜBĠTAK BĠLGEM, Gebze, Kocaeli {mehmet.sahinoglu, mustafa.sari, aysegul.kurt, salih.kurnaz, mehmet.ozbek}@tubitak.gov.tr Özet. Günümüzde, farklı sektörlerdeki ihtiyaçlar için farklı yazılım ürünleri geliģtirilmektedir. Yazılım geliģtirme sürecinin önemli bir aģaması da yazılım test sürecidir. Yazılım testleri ürün kalitesinin yükseltilmesi ve müģteri memnuniyetinin artırılması için kritik öneme sahiptir. Test sürecinin baģarısı doğrudan projenin baģarısını etkilemektedir. Yazılımlardaki çok küçük hatalar dahi can, mal kayıplarına neden olabilecek kritik sonuçlara sebebiyet verebilir. Bu sebeplerden dolayı yazılım test sürecinin etkili ve verimli geçmesi projenin istenen hedeflere ulaģmasında büyük öneme sahiptir. Bu çalıģmada test süreçlerinde karģılaģılan problemler belirli gruplarda toplanarak, bu problemlere neden olan sebepler ve bu problemler için önerilen çözüm önerileri anlatılmıģtır. KarĢılaĢılan problemler; planlama ile ilgili problemler, yönetimsel problemler, gereksinimler ile ilgili problemler, düģünsel problemler, paydaģlar arasındaki problemler ve genel test problemleri olarak gruplandırılabilir. Bu gruplar altında toplanan problemlerin sebepleri belirtilerek, çözüm yolları önerilmiģtir. Anahtar Kelimeler. Yazılım Test Süreci, Proje YaĢam Döngüsü, Test Sürecinde Problemler 1 Giriş Yazılımın doğrulanması ve geçerlenmesi süreci, birçok alt faaliyetten oluģur. Bu faaliyetlerden biri proje yaģam döngüsü süreçlerinin sonunda meydana gelen çıktıların doğru, tam, tutarlı ve açık olduğunun doğrulanmasıdır. Bir diğer faaliyet ürünün teknik yeterliliğinin değerlendirilmesi ve uygun sonuçlar elde edilene kadar bu aktivitelere devam edilmesidir. Doğrulama süreci, geliģtirilen yazılımın kendisinden beklenen davranıģları gerçekleģtirdiğini ve istenmeyen davranıģları göstermediğini ortaya koyan süreçtir. GeliĢtirilen yazılımın, gereksinimleri tam olarak karģıladığı ve geliģtirmenin her evresindeki çıktıların doğru olduğuna karar verilmesi gerekir. Doğrulama sürecinin, ürünün kusursuz olarak çalıģmasına katkısı büyük olduğundan, yazılım geliģtirmede en önemli süreçlerden birisidir [1].

Doğrulama sürecinin temel amacı, kalitesi yüksek ürün üretebilmektedir. Doğrulama geçerleme sürecinin mümkün oldukça projelerin erken evrelerinde baģlatılması olası problemlerin önünü kesme veya çözümünün daha erkene alınmasına yardımcı olacaktır [1]. Geçerleme süreci, yazılımın tam olduğunu ve kendi içinde tutarlı olduğunu gösteren bir süreçtir. Proje sırasında iģ adımları ve ara çıktılar gözden geçirilip bunların kabul edilebilir olduğundan emin olunur. Yazılımın tutarlılığını, bütünlüğünü ve doğruluğunu göstermek için yazılım geliģtirme yaģam döngüsü aģamasında ve aģamaların her birinin arasında geçerleme süreci uygulanır. Ayrıca geçerleme süreci yazılım geliģtirme esnasında eğitimler, standartlar, gözden geçirme ve yorumlar, geri bildirimler, kontrol listelerine göre denetimlerin yapılması gibi aģamalarla gerçekleģtirilir [2]. Yazılım test faaliyetleri doğrulama ve geçerleme süreci içerisindeki alt aktiviteler arasında önemli aktivitelerdir. Yazılım test sürecinin olmadığı ya da eksik olduğu durumlarda yaģanabilecek negatif durumlar; proje yönetimi ile ilgili problemler, test yönetimi ile ilgili problemler, düģünsel problemler ile ilgili problemler olarak genel baģlıklarla toplanabilir. Bu çalıģma kapsamında belirtilen genel durumlar detaylı bir Ģekilde ele alınacaktır. 2 Proje Yönetimi ile ilgili Problemler ve Çözüm Önerileri 2.1 Proje Planlaması Yazılım projelerinde proje özelliklerine, ihtiyaçlarına, hedeflerine uygun olarak belirlenen yazılım geliģtirme yaģam döngüsü seçimi ve bu yaģam döngüsü aģamalarının amaçlarının belirlenmesi, bu aģamalarda yapılması gereken faaliyetlerin ve bu faaliyetlerin çıktılarının belirlenmesi gerekmektedir. Proje süreçleri içerisinde bir aģama tamamlandıktan, hedeflerine ulaģarak faaliyetler kapandıktan sonra ilerleyen dönemlerde bu aģamalara geri dönmenin, projenin planlarından sapmasına, aynı iģlerin tekrar yapılmasına, zaman, iģ gücü kaybedilmesine sebebiyet vermektedir. Örneğin, projenin sistem testleri gerçekleģtirilir iken, müģteri kurumdan yeni bir özellik talebi gelmesi, isterlerin tekrar düzenlenmesi, geliģtirme sürecine geri dönülmesi ve test sürecinin (yineleme ve sistem testleri) yeni duruma göre tekrar değerlendirilmesini gerektirecektir. Bu problemin önüne geçilebilmesi için proje analiz ve planlama süreçlerinin paydaģlar ile birlikte belirlenmesi, onaylarının alınması ve bu planlara bağlı kalınması gerekmektedir. 2.2 Kaynak Planlanması Proje planlama aģamasında gerekli kaynaklar belirlenirken, planlanan test faaliyetleri, iģ yüküne, yapılacak çalıģmaların teknik gerekliliklerine göre belirlenir. Test faaliyetlerini yürütecek test mühendisi sayısı ve testler sırasında kullanılacak araçların belirlenmesi gerekmektedir. Test mühendisi sayısının gerekenden az belirlenmesi iģ yükünün artmasına, yeterli detayda test yapılamamasına ve test sürecinin hedeflerine ulaģamamasına sebebiyet vermektedir. Aynı durum test faaliyetlerinde kullanılacak

araçlarının belirlenmesinde de geçerlidir. Gereken araçların tedarik edilememesi veya geç tedarik edilmesi test sürecinin verimliliğini ve etkinliğini düģürecektir. 2.3 Zaman Planlaması Yazılım geliģme yaģam döngüsünün diğer aģamalarında olduğu Ģekilde test çalıģmalarının verimli olması ve istenen çıktılar elde edilmesi için zaman planlamasına uyulması gerekmektedir. Yazılım testlerindeki faaliyetler, planlama, test tasarımı, testlerin koģturulması, bulunan hataların düzeltilmesi, yineleme testleri, değiģikliklerin olması ve bunların dokümante edilmesidir. Projelerde farklı sebeplerden dolayı zamansal dar boğazlara girilmesi ihtimali vardır. Proje teslim zamanının yaklaģması geliģtirme sürecinin henüz tamamlanmaması sonucunda zaman kazanmak için test süreci için ayrılan zaman ötelenmekte ve test faaliyetleri planlanandan daha az bir zamana sıkıģtırılmaktadır. Böylece oluģan zaman baskısı istenen detayda test yapılmasının engelleyeceği için test faaliyetlerinin kalitesini düģürmektedir. 2.4 Görevler ile ilgili Belirsizlikler Projelerde planlamalar yapılırken önemli noktalardan biri de görev tanımlamaların yapılmıģ olmasıdır. Yazılım testlerinde farklı bağımsızlık seviyelerine göre farklı pozisyondaki kiģilere farklı görevler verilebilmektedir. Test faaliyetlerinin sağlıklı ilerleyebilmesi için proje içerisinde görevlerin ve bu görevleri gerçekleģtirecek insanların belirli olmaması nedeniyle, bazı iģlemlerin takibi yapılamamakta ve bu iģlemler tamamlanamamaktadır. 2.5 Yanlış Kestirimler Proje baģlangıç aģamalarında test faaliyetleri için yapılan kestirimler iki temel dayanağa sahiptir, bunlar tecrübeye dayalı kestirimler ve istatistiksel verilere dayalı kestirimlerdir. Proje planlarının temel aldığı öngörüler takvimsel öngörüler, iģ gücüne dayalı öngörüler, bütçe öngörüleri ve proje risk öngörüleri Ģeklinde sıralanabilir. Bu öngörülerin isabetli olup olmaması, test faaliyetlerinin istenen amaçlara ulaģmasında etkili olmaktadır. 2.6 Test Altyapısı ile ilgili Sorunlar Yazılım test faaliyetlerinin sağlıklı olarak devam edebilmesi için önemli noktalardan birisi de yazılım geliģtirme ortamından ayrı bir test ortamının olmasıdır. Bu ortam yazılım geliģtirme müdahalelerinden uzak tutulmalıdır. Burada amaç test edilen yazılım ürününün durağan bir yapıda tutulmak istenmesi, yazılımda alınan çıktıların aynı iģlemler karģısında aynı kalmasını sağlamaktır. Test edilen yazılım ürününün bahsedilen durağan tepkiler vermesini sağlamak için diğer bir zorunluluk ta ürün ile ilgili düzenli sürüm tanımlama ve sürüm kontrolünün yapılmasıdır. Bu düzen sağlanmadığı durumda yazılım sürüme ait hatalar, hata dü-

zeltmeleri (bug fix), geliģtirmeden kaynaklı eklemeler sürümler arasında net olamayacak ve sağlıklı bir test süreci iģletilemeyecektir. 2.7 Dokümantasyon Fazlalığı veya Eksikliği Yazılım test faaliyetleri, yazılım yaģam döngüsü içerisindeki diğer yazılım faaliyetleri gibi girdileri ve çıktıları için dokümantasyona ihtiyaç duymaktadır. Test sürecine girdi sağlayacak dokümanların (Gereksinimler, Plan dokümanları, ġartname vb.) yeterli detayda olmaması, süreç için gerekli verileri sağlayamadığı için süreci olumsuz etkilemesi beklenebilir. Test faaliyetleri sonucunda çıktı olan, diğer test faaliyetlerine ve diğer yazılım geliģtirme evrelerine girdi olacak dokümanların miktarı iyi belirlenmelidir. Eğer gerektiğinden fazla olur ise test faaliyetlerinin hızını düģürme riski oluģmaktadır. Test dokümantasyonu miktarını belirlemek için IEEE 829 Standardı kullanılmalıdır. Burada Önem Derecesi kavramı (Integrity Level) öne çıkmaktadır [3]. 2.8 Yönetim Destek Eksikliği Test çalıģmalarının oluģturduğu doğal pozisyonlardan dolayı, yazılım geliģtirme ekibi yazılım test ekibine direnç gösterebilir. Bu direnç yapılan çalıģmaların verimliliğini düģürecek boyutta olabilir. Test ekibinin bu duruma gelmemesi için proje yönetiminin test ekibini desteklemesi, yaptığı çalıģmaların önemine inandığını geliģtirici ekip içerisinde hissettirmesi gerekmektedir. Bu desteğin sağlanamadığı durumlarda test ekibi etkinliğini kaybedebilir. 2.9 Gereksinim Yönetimi ile ilgili Problemler Yazılım projelerinde baģarısızlıkların nedenleri incelendiğinde, gereksinimler ile ilgili sorunların en baģta olduğu görülmektedir [4]. Yazılım projelerinde gereksinimler, test faaliyetlerinin ana girdisidir. Test stratejisi, test teknikleri, önceliklendirme gibi noktaların belirlenmesinde fonksiyonel ve fonksiyonel olmayan gereksinimler incelenmektedir. Bu açıdan sistemde yer alan bir özelliğin, bir fonksiyonun gereksiniminin olmaması test sürecine negatif yansıyacağı öngörülebilir. Gereksinimler tanımlanırken sadece fonksiyonel isterlerin tanımlanması yeterli olmayacaktır. Fonksiyonel olmayan güvenlik (security), güvenilirlik (reliability), kullanılabilirlik, gibi özelliklerin de sistem içerisinde tanımlanması gerekmektedir. Ġsterler tanımlanırken uyulması gereken kurallar bulunduğu gibi isterleri değerlendirirken isterlerin taģıması gereken özellikler de bulunmaktadır. Ġsterler doğru, doğrulanabilir, tam, net, sade, tutarlı, gerçekleģtirilebilir, izlenebilir olmalıdır. Gereksinimlerin proje baģlangıç aģamasından itibaren tasarım, gerçekleģtirme, test faaliyetleri aģamaları için izlenebilirliğinin kurulmuģ olması gerekmektedir. Proje yaģam döngüsü süreçlerinde gözden geçirme (review) faaliyetleri önemli yer tuttuğu gibi isterler için de gözden geçirme çalıģmaları yapılmalıdır. Yukarıda belirtilen özelliklere uygunluk durumu, izlenebilirliği de gözden geçirilmelidir. Ġsterlerin yazımı tamamlandıktan sonraki evrelerde müģteri talepleri, tasarımsal değiģiklik-

ler gibi sebepler ile isterlerin değiģtirilmesi söz konusu olabilir. Bu değiģikliklerin etkilerinin değerlendirilmesi ve proje ilerleyiģinde hesaba katılması gerekmektedir. Bahsedildiği gibi, gereksinimler üzerine inģa edilmiģ bir projede gereksinim değiģiklik oranlarının yüksek olmaması dikkat edilmesi, incelenmesi, gerekli tedbirlerin alınması gereken bir durumdur. Bu durumların sonuçlarında test planlama, test özelliklerinin belirlenmesi faaliyetlerinin tekrar yapılacak olması test sürecini uzatacağı öngörülebilir. Birçok kiģiden oluģan ve farklı fiziki ortamlarda çalıģanların olduğu projelerde gereksinimlerde yapılan değiģikliklerin tüm ekip tarafında takip edilebileceği ve gerekli uyarılaarın yapılabileceği bir alt yapı kurulması diğer bir gerekliliktir. 2.10 Bağımsızlık Kavramı Yazılım projelerinde test faaliyetlerini gerçekleģtiren kiģi veya kiģilerin farklı bağımsızlık seviyelerinde oldukları durumlar görülmektedir. Her bağımsızlık seviyesinin pozitif ve negatif yanları bulunmaktadır. Bağımsızlık seviyesi arttıkça test mühendisinin önyargı ve ĢartlanmıĢlık seviyesi azalmaktadır. Dolayısı ile baģkalarının göremediği hataları görebilirler. Bağımsız Test ekibi sistemin gereksinim ve tasarım aģamalarında etkili olarak, testlerin baģarılı bir Ģekilde gerçekleģtirilmesini sağlamaktadır. Bağımsızlık seviyesi düģükten yükseğe doğru Ģu Ģekilde sıralanabilir: GeliĢtirmeyi yapan yazılımcı kendi kodunu test edebilir, GeliĢtirme ekibinin içerisinde, ürünü kodlayan kiģiden baģka bir kiģi test edebilir, Aynı firma içerisinde, test için uzmanlaģmıģ ayrı bir ekip tarafından testler gerçekleģtirilebilir, BaĢka bir firmadan test iģlerini yapacak ayrı bir ekip proje test faaliyetlerini gerçekleģtirebilir. Bağımsız test ekibi ile çalıģmanın avantajları olduğu gibi, dezavantajları da sözkonusu olabilir. Tamamen bağımsız olma durumunda geliģtirme ekibinden izole olunma ihtimali bulunmaktadır. Bağımsız test ekibi yazılım ekibi ile farklı fiziksel ortamlarda çalıģtıklarından dolayı çalıģanlar birbirlerini görmemektedir. Bu durum beraberinde, yazılım geliģtirme ekibi için kalite duygusunun yitirilmesini getirebilir. 3 Test yönetimi ile ilgili problemler 3.1 Yanlış Test Stratejisi ve Yaklaşımı Test stratejisi ve yaklaģımı projeye özgü bir Ģekilde belirlenmektedir. Test planlaması sırasında test yaklaģımına karar verilir, detaylandırılır ve bu yaklaģımdan yola çıkılarak test durumları, test aktiviteleri belirlenir. Test planlamasının ilk adımı test stratejisinin belirlenmesidir. YanlıĢ test yaklaģımının belirlenmesi test sürecinde istenen hedeflere ulaģılamamasına, tekrarlı iģlerin yapılmasına, sürenin uzamasına neden olabilir. Kurumsal firmalarda daha çok görülen hatalardan biri de her projeye benzer test stratejisinin uygulanmak istenmesidir. Bir uygulamada baģarılı olmuģ bir

test stratejisi, diğer bir projenin kendisine özgü durumundan dolayı istenen baģarı seviyesinde olmayabilir. Her projeye aynı test yöntemlerini uygulamama yaklaģımını sistematik hale getirmek için önem derecesi kavramı kullanılabilir. Burada proje bir proje özelliğine göre (risk, sonuç vb.) seviyelendirilir. Daha sonra bu özelliğe göre projenin tamamı veya modüllerine bir önem derecesi tanımlanır. Bu önem derecesi kavramı temel alınarak, test sürecindeki dokümantasyon ve faaliyetlerin derinliği miktarı belirlenir. Böylece her projenin hatta her modülün özelliklerine göre test yaklaģımı belirlenebilir. Test yaklaģımında yapılan diğer bir hata da test edilecek noktaların doğru belirlenememesidir. Genelde kolay test edilen kısımlar tekrar tekrar test edilirken, test edilmesi zor ama önemli alanlara yeterli önem gösterilmemektedir. Diğer bir durum ise test sürecinde tüm test durumları birden koģturularak, diğerlerine göre daha önemli kısımlara aynı özen gösterilmektedir. Bu durum zamanın ve test eforunun etkin ve etkili kullanılmaması sonucuna çıkmaktadır. Bu durumda önceliklendirme yapılması gerekir. Sistemdeki karģılıklarının önemlerine dayanarak test durumlarının önceliklendirilmesi gerekmektedir. 3.2 Planlamanın Eksik olması Proje planlaması yapılırken test süreçlerinin de planlaması gerekmektedir. Test planları tüm test süreçlerini, test aktivitelerini, test giriģ ve çıkıģ kriterlerini, test yaklaģımlarını, takvimi, kabulleri ve varsayımları, test sürecinde kullanılacak araçları tanımlamalıdır. Test dokümantasyonu IEEE Std. 829 standardında belirtilmiģtir [3].Test planları tüm test seviyelerini kapsayacak Ģekilde yazılan bir Test Ana Planından, ve her test seviyesini (birim test seviyesi, entegrasyon test seviyesi, sistem test seviyesi) tanımlayan Test Planlarından oluģmaktadır. Planları hazırlarken yeterli detay seviyesi açıklanmadığı durumlarda belirsizlikler sorunlara sebebiyet verebilmektedir. Testlere giriģ kriterleri ne zaman testlere baģlanacağını, hangi durumların testlere baģlanması için gerekli olduğunun belirtilmesidir. Bu konular yazılım geliģtiren ekip ile daha önceden belirlenmesi gereken konulardan biridir. Test ekibi etkili test yapabilmek için bazı Ģartların olgunlaģmasını talep edebilir, sistemin duman (smoke) testlerini tamamlamıģ olması buna örnek olarak verilebilir. Bu durum test ekibi ile yazılım ekibi arasında anlaģmazlıklara sebebiyet verebilir. Test Ana Planında (Master Test Plan) ve seviye test planlarında testlerin hangi kriterler sağlandığında tamamlanacağı bilgisi de yukarında belirtilen sebeplerden dolayı yer almalıdır. Test süreçlerinde, nelerin test edileceğinin belirlenmesi yanında, nelerin test edilmeyeceğinin de belirlenmesi ve bu konuda paydaģlar arasında anlaģmaya varılmalıdır. Bu durum da taraflar arasında problemlere sebebiyet verebilir. 3.3 Yetersiz Derinlikteki Testler Test faaliyetlerinin gerçekleģtirilmesi sırasında yaģanabilecek tehlikelerden birisi de yeterli seviyede test edilememesidir. Yazılımın test edilmesi sadece bir yol takip edilerek doğru çalıģtığının gösterilmesi değildir. Eğer sadece ana akıģ (Happy Path) test

edilirse sistemin çalıģmayan yanlarının gösterilmesi için gösterilmesi gereken çaba gerçekleģtirilmemiģ ve amaca ulaģılamaz. Bu durumu kontrol etmek ve test faaliyetlerinin hangi seviyede yapıldığının izlenmesi için etkili yöntemlerden birisi Test Kapsam Aracı (Test Coverage Tool) kullanmaktır. Bu araçlar yazılıma ait kodları izlemektedirler. Yazılım testleri yapılırken çalıģtırılan kod parçalarını belirlemekte, iģlem sonucunda da test faaliyetleri sonucunda çalıģtırılan kodların, tüm kodlara oranını vererek bir kapsam yüzdesi vermektedir. 3.4 Yetersiz Test Metrikleri Yazılım geliģtirme yaģam döngüsü sırasında tüm evrelerde olduğu gibi test süreçlerinin de izlenmesi ve bu evreler hakkında bilgi sahibi olunması, çıkarımlar yapılması ve bu çıkarımlara göre gerektiği durumlarda sürece müdahale edilmesi gerekmektedir. Ölçüm iģlemi doğru metriklerin alınması ile yani doğru soruların sorulması ile baģlamaktadır. Yetersiz metrikleri olan bir test süreci yeterli ölçümleri yapamayacak, dolayısı ile doğru verilere ve çıkarımlara ulaģamayacaktır. Bir projede en yaygın kullanılan test metrikleri aģağıdaki gibidir: Test durumları hazırlama aģamasında, test durumlarının tamamlanma yüzdesi, Test ortamı hazırlanmasında yapılması gereken iģlerin yüzde kaçının tamamlandığı, Testlerin koģturulması safhasında test durumlarının ne kadarının koģturulduğu, Hata verileri, (hata sayısı, hata yoğunluğu, hata oranı, düzeltilen hata sayısı, düzeltilme iģleminden sonra tekrarlanan testlerde baģarı oranı), Test kapsam yüzdesi (kod üzerinde), Test mühendislerinin sisteme güveni, Takvimsel kilometre taģları, Test maliyeti Örnekleri yukarıda verilen metriklerden veriler geldiğinde verileri değerlendirmek, riskler belirlemek ve bu riskler doğrultusunda kararlar almak gerekmektedir. Eğer riskleri belirleyecek, değerlendirecek ve gerekli tedbirleri alacak bir mekanizma kurulamaz ise proje takibi takip edilemez, plandan sapmalar tespit edilemez, projenin ba- Ģarısını etkileyecek risklere karģı gerekli müdahaleler yapılamaz. 3.5 Alan Bilgisi Eksikliği Test faaliyetleri farklı alanlarda farklı stratejiler gerektirmektedir, örneğin güvenlikkritik bir sistemin testleri ile bir banka uygulamasının testleri farklı bilgiler, farklı alt yapı gerektirmektedir. Test mühendisinin projenin ilgili konusunda bilgiye sahip olması gerekmektedir. Test mühendisi yeterli bilgiye sahip değilse yapacağı testlerin istenen hedeflere ulaģmasından Ģüphe edilebilir.

3.6 Hataların Net Bir Şekilde Bildirilmemesi Test süreci sırasında bulunan hataların test ekibi tarafından raporlanarak yazılım geliģtirme ekibine iletilmesi, yazılım geliģtirme ekibi tarafından bu hataların analiz edilerek düzeltilmesi gerekmektedir. Bu iģlemlerin yapılabilmesi için bulunan hataların geliģtirme ekibine doğru ve tam olarak iletilmesi kritik öneme sahiptir. 3.7 Test Araçları ile ilgili Problemler Test araçları doğru kullanıldığında test faaliyetlerine yüksek katkıları olmaktadırlar. Bununla beraber, araçların yanlıģ kullanılması test araçlarından alınan verimi düģürmektedir. Test araçları ile ilgili yapılan genel hatalar: Gerçekçi olmayan beklentiler, Gerekli sürelerin azımsanması, Gerekli eforun azımsanması, Araca gerekenden fazla güvenilmesi, Araç için destek alınan firmanın desteği kesmesi, Ģeklinde sıralanabilinir. 3.8 Yineleme (Regresyon) Testleri ile ilgili Problemler Yazılım test sürecinde hatalardan dolayı yapılan düzeltmeler ve yeni geliģtirme faaliyetler sonucunda kodda değiģiklikler yapılmaktadır. Bu değiģikliklerin sistemin ilgili alanlarında beklenmedik bir hataya sebebiyet verip vermediğinin kontrolü yineleme testleri (regresyon) ile yapılmaktadır. Bu testlerin yetersiz olması durumunda sistem içerisinde beklenmedik hataların çıkması ihtimali artmaktadır. 4 Sonuç Yazılım ürününün baģarısı, gereksinimleri karģılaması ve müģterilerin memnuniyeti ile ölçülebilir. Bu tanımlanan baģarıya ulaģmak için ürünün doğru süreçler iģletilerek, gereksinimlerde tanımlanan Ģekilde sonuçlandırılması gerekmektedir. Bu amaç ile doğrulama ve geçerleme süreci yazılım projelerinin hedeflenen baģarıya ulaģmasında kritik bir yere sahiptir. Yazılımın doğrulama ve geçerleme faaliyetleri içinde değerlendirilebilecek test faaliyetleri geliģtirilen ürünün istenen özelliklere uygunluğunun kontrol edilmesi açısından oldukça önemlidir. Bu faaliyetlerin etkinliği ve etkililiği çok farklı sebeplerden dolayı düģebilir. Bu sebepler öngörülebilir ve önlem alınabilir sebeplerdir. Teşekkür - Yazarlar, bu çalıģmanın gerçekleģtirilmesi için destek sağlayan TÜBĠTAK BĠLGEM Yazılım Test ve Kalite Değerlendirme Merkezi'ne teģekkür eder.

Kaynaklar 1. Özbek M., Kurt A., Gürbüz A., Emniyet-Kritik Sistemlerin Yazılım Doğrulama Süreci Software Verification Process in Safety-Critical Systems 2. Yıldırım E., PiĢken M., Orta Ölçekli Yazılım Firmaları Ġçin Ġdeal Bağımsız Doğrulama ve Geçerleme Organizasyon YaklaĢımı 3. IEEE 829-2008, Standard for Software and System Test Documentation 4. The Standish Group Report, (1995) 5. IEEE 1012-2012, Standard for Software Verification and Validation