Merhaba Arkadaşlar,
Mobilhanem’de Yazılım Test Süreci ile ilgili yazılarımıza bu bölümde başlıyoruz. Bu yazımız ile birlikte Yazılım Testi konusuna giriş yapıyoruz.Yazılım Test Süreci, test ile ilgilenen herkesin hakim olmak isteyeceği konulardandır. Aynı zamanda test süreçlerini iyileştirmek isteyen şirketlere yardımcı olmak amacıyla Test Süreç İyileştirme konularını ele alacağız. Test süreç iyileştirme ile ilgili Test olgunluk modellerini ve bu modeller içerisinden TMMi (Test Maturity Model Integration) modelinin detaylı anlatımını göreceksiniz. Aynı zamanda Test yönetimi, Yazılım Test Düzeyleri, Yazılım Tasarım teknikleri ve Yazılım Test Türleri verilerek kafanızdaki soruların çoğuna yanıt bulabileceksiniz.
Bu eğitim serisinde ilk önce Yazılım geliştirme süreçleri ve bu süreçlerdeki yazılım süreç modelleri nelerdir, CMMI (Capability Maturity Model Integration) modeli nedir gibi konuları ele almaya çalışacağız.
Yazılım Test Süreci nedir?
Bu konuya önceki yazımızda da değinmiştik. Ancak yine de hatırlamak adına kısaca Yazılım Testi, kullanıcı gereksinimlerinin karşılanıp karşılanmadığı ve sistemin işlevselliğinin
kontrol edildiği aktiviteler olarak tanımlamıştık. Testin hedefleri olarak ise hataların yakalanması, kalite kriterlerini sağlayarak güvenilirlik sağlama, doğru ve uygun karar verebilmek için bilgi edinme ve hataları önceden önleme olarak sayabiliriz. Bir önceki yazımızda verdiğimiz aşamaları ilerleyen derslerde detaylı olarak vermeye çalışacağım.
Yazılım Test Süreci ise planlanan ve gerçekleştirilip sonuçları kaydedilerek belgelendirilen aktivitelerden oluşur. Aşağıdaki şekilde yazılım test süreci görülmektedir. Yazılım test süreci izlenerek geliştirilen yazılım ürünündeki hataların varlığına odaklanır.
Bir yazılım test sürecinde olması gereken aşamalar ve aşamalarda yapılması gerekenler yukarıdaki şekilde olduğu gibi: Test strateji ve plan aşamasında şekilde verilen işlemlerin gerçekleştirilmesinden sonra, testin tasarımı aşaması başlayacaktır. Bu aşamada test durumları belli bir standarta uygun şekilde (test caseleri,test senaryoları) yazılır ve testlerin yürütülmesi(koşulması) aşamasına geçilir. Bu aşama ile yakalanacak olası hatalar ve hataların düzeltilmesi, çözülmesi sonrasında ise düzeltilen bu hatalar için yapılan tekrar testleri ya da mevcut yapıda olası kusurları, hataları yakalamak için Regresyon testi gerçekleştirilir. Yakalanan hataların düzeltilip tekrar testlerinin başarılı olmasından sonra onaylama aşamasında test raporları yazılır ve projedeki kişiler ile paylaşılır. En genel anlamda bir test sürecini bu şekilde düşünebiliriz.
Yazılım Geliştirme Süreci
Yazılım süreçleri yazılım ürünlerinin oluşması için yapılması gereken birden fazla eylemden oluşan belirli bir sıraya göre gerçekleştirilen eylemlerden oluşan süreçlerdir. Şirketler,kuruluşlar, organizasyonlar yazılım geliştirme süreci için farklı yaklaşımlar kullanabilir. Bahsedilen bu eylemler aşağıdaki şekilde verilmeye çalışılmıştır. Genel olarak yazılım sürecinde bulunan adımlar bu şekildedir. Bu adımları içeren çeşitli modeller bulunmaktadır. Bu modellere kısaca değinmeye çalışacağım.
Şelale (Waterfall) modeli
İlk olarak gereksimilerin tanımlanması ile başlayan şelale modeli yaygın bir model olarak tercih edilen modellerden biridir. Bu modelin sonraki adımlarında tasarımın yapılması ve hemen ardından kodlama ve testlerinin gerçekleştirilmesi adımları bulunur. Testi başarılı olarak raporlandıktan sonra bakım ve sonrasında yönetim adımlarına geçilir. Bu modelin dezavantajı testin son aşamada olması yani diğer aşamaların bitmesinin beklenmesidir. Bu projeler için ciddi maliyetlere sebep olmaktadır.
V-modeli
Bütün yazılım geliştirme süreci adımlarına karşılık gelen test işlemlerinin bulunduğu bu model V şeklinden dolayı V-modeli ismini almıştır. Hataların daha ilk aşamalarda bulunması amacıyla kullanılır.
Prototip geliştirme modeli
Kullanıcılara tasarım yapıldıktan sonra bir prototipin üretildiği bu modelde gereksinimler toplanır ve geliştiren kişilerin ve müşterilerin (kullanıcılar) çıkardığı çıktılar için girdilerin sağlanması,bunların hangi işlemlerden geçeceği sorularına cevaplar verilir.
Çevik (Agile) modeller
Birçok kişinin çekindiği dokümantasyon olayının en aza indirgendiği bu modelde takımlar organizedir ve uyumludur. Zamanında ve maliyetli olarak müşteri isteklerine tepki verebilen tekrar tekrar kullanılabilen kaliteli işler üreten bir yaklaşımdır.
Yaygın olarak kullanılan çevik modeller;
• Scrum
• Çevik Bilgi Yöntemi (Agile Data Method)
• Uç (sınırsal) Programlama (Extreme Programming-XP)
• Test güdümlü Geliştirme (Test-Driven Development)
• Özellik Güdümlü Geliştirme (Fature-Driven Programming)
• Çevik Birleştirilmiş Süreç (Agile Unifed Process)
Evrimsel geliştirme modelleri
Bu modelde müşteri ile birlikte çalışılarak gereksinimlerin daha iyi anlaşılması hedeflenir. Gereksinimlerden bir prototip ürün oluşturulur ve bu ürün referans alınarak onun üzerinde müşterilerin tepkilerini alınır. Değişiklikleri ve geliştirme gereken durumları öngörerek hedeflenen modele kısa sürede ulaşılır. Küçük ve orta a/g(adam/gün) maliyeti olan işlerde kullanışlı olabilir.
Sarmal model
Her bir adımda ürüne ait yeni sürümün oluştuğu sarmal model de tekrarlanan dört aktivite bulunur.
• Planlama
• Risk Çözümleme
• Geliştirme
• Değerlendirme
İteratif model
Şelale modeline benzeyen bu modelde her iterasyon için bir süre belirlenir ve bu süre içerisinden bitirmek amaçlardan biridir. Bu süreler belirlenerek olabilecek gecikmeler bir sonraki iterasyonu etkileyecektir.
Bu yazımızda yazılım geliştirme sürecine ve modellerine değinmeye çalıştım. Bir sonraki yazımızda yazılım gereksinimlerinin belirtilmesi, yazılımın tasarlanması ve geliştirilmesi ve yazılımda kalite gibi konulardan bahsedilecek ve Yazılım Testleri ve Yazılım Test Süreci konularına giriş yapılacaktır. Yazılım testi ile ilgili derslere ulaşmak için tıklayınız.
Konu hakkında soru , cevap ve görüşlerinizi alt taraftaki yorum alanından veya Soru&Cevap sitemizden bizlere iletebilirsiniz.
Daha fazlasını bulmak için tıklayınız.
38