[Gelistirici] Test süreçleri - Otomasyon ve Ölçüm
Serbulent UNSAL
serbulent at pardus.org.tr
14 Ara 2008 Paz 22:03:25 EET
Merhaba,
Halen devam eden "kararli depoya paket gecis sureci" başlıklı thread den
ayrılan yönleri sebebiyle yukarıdaki başlık altında özetlemek istedim konun
test süreçleri ile ilgili kısımlarını. Konu ile ilgili fikirlerinizi ve
sorularınızı bekleriz.
PS: Uzun maillara da şefkat gösterelim, onları da okuyalım ;)
A) Ölçüm
Sorunun tanımı;
İster test süreçlerine dair olsun ister daha geniş kapsamdaki depo
politikalarına ilişkin olsun, tartışmalarımızı sayısal verilerden yoksun
sürdürüyoruz.
Çözüm önerileri;
1- Kısa vade de ( 5 Gün ); Son 3 ACK/NACK sürecindeki paketleri inceleyip ne
zaman merge istenmiş, ne zaman depoya girmiş ve aradaki hangi süreçte ne
kadar beklemiş sorularının yanıtlarını verecek, böylece bir paketin hangi
süreçte ortalama ne kadar zaman harcadığını belirleyecek bir çalışma
yapacağız.
( Tahmini bitiş süresi: 5 Gün , Sorumlu geliştirici "Serbülent Ünsal" )
2- Uzun vade de ( 3-4 Hafta); Merge istenen her bir paketin, merge isteğinden
kararlı depoya girişine kadarki süreci takip eden bir sistem geliştirmeyi
düşünüyoruz. Ancak burada bir bu süreçlere ait iletilerin standart hale
getirilmesi gerekiyor ki bu işi yapacak araçlar iletileri düzgün biçimde
parse edebilsin. Örneğin şu an için ACK/NACK sürecindeki mesajları parse
etmek pek mümkün değil. Bahadır'ın duyurduğu ack/nack arayüzü Noan bu
verilerin bir bölümünü öğrenmek mümkün olacak.
Merge aşamasının bir script tarafından parse edilerek kayıt altına alınması
mümkün görünmekle beraber listede arada yapılan tartışmalar sebebiyle bütün
kayıtların parse edilmesi sorun olabilir. Bunu bir taraftan listeyi takip
edip bir taraftan da depoları takip ederek yapabiliriz belki, çözüm
önerilerine açığız.
(Tahmini bitiş süresi: 4 Hafta, Sorumlu geliştirici "Serbülent Ünsal" )
B) Otomasyon
Sorunun tanımı;
Test süreçleri içerisinde bilgisayar tarafından yapılabilecek pek çok iş
testçiler tarafından yapılıyor. Bu durum zaman kaybı, testlerde insan
hataları sebebiyle hata oranının artışı, zaman sınırından dolayı ancak temel
testlerin yapılabilmesi ( dolayısı ile test kalitesinin düşmesi ), bir takım
sıkıcı ve kendini tekrarlayan işlemlerden dolayı test ekibinde motivasyon
kaybı olmak üzere 4 temel soruna yol açıyor. Ayrıca test takımının elinde
bulunan donanım listesinin geliştircilerin ulaşabileceği bir şekilde
bulunmaması test takımından sağlanabilecek faydayı azaltmaktadır.
Çözüm önerileri;
Test süreçleri içerisindeki işler mümkün olduğunca otomatize edilmelidir.
1- Test sırasında paket kurulumu. Paket kurulumlarında testçilerin paket
yöneticisini kullanmak zorunda olmaları ( kullanıcılar ile mümkün olduğunca
benzer bir şekilde test yapmak için ) kimi zaman 200+ paket ile yapılan
testlerde tek tek paketleri arayıp bulmak ve sepete eklemek ve her bir paket
için bu işlemi tek tek yinelemek ciddi bir vakit ve motivasyon kaybı
yaşatmakta. Bunun için paket yöneticisinin verilen bir listedeki paketleri
sepete ekleyebilmesi ( tabi ki kurulu olmayanları ) sağlanırsa önemli bir dar
boğazı aşmış olacağız. Bu konu için Faik zaman ayırabilir mi bilemiyorum
ancak itirazı yoksa vakti olan ve Paket Yöneticisi'ne aşina bir başka
geliştirci de bu işi üstlenebilir sanırım.
(Gerekli tahmini iş gücü : 7 Gün/Kişi , Sorumlu geliştirici ????? )
2- Ack/Nack süreçlerinin otomasyonu. Hem Ack/Nack toplarken hemde birbiri ile
bağımlılıklar yönünden uyumlu bir paket listesi oluştururken işleri
kolaylaştıracaktır bu süreci otomasyona geçirmek. Bahadır'ın duyurusunu
yaptığı Noan ile önümüzdeki dönemde paketler arası bağımlılık sorunları
sebebiyle testlerde yaşanan aksaklıkları ve vakit kayıplarını
çözebileceğimizi düşünüyorum.
(Tahmini bitiş süresi: ????? , Sorumlu geliştirici ( tabi eğer kabul edersen
Jim :) ) "Bahadır Kandemir" )
3- Testlerin otomasyonu.
Test takımı tarafından yapılan pek çok paket testi zaman ve bilgi
kısıtlamaları sebebiyle çok basit düzeyde ve yetersiz kalıyor. Bu sorunun
çözümü için en azından konsol tabanlı uygulamalar ve kütüphanelerin
testlerini yapabilecek ve sonuçları otomatik olarak raporlayacak bir araca
gereksinim var. Bir süredir projeler deposunda test-manager adı ile
geliştirilen aracın temel işlevi bu olacak.
Konsol tabanlı her türden uygulama/kütüphane için test yazımına izin vermesi
planlanan araç her geliştircinin isterse sorumlu olduğu paket ve kütüphaneler
için test yazmasına izin verecek. Araçla ilgili daha detaylı bir e-posta
yazarak tasarımla ilgili önerileri toplayacağım.
(Tahmini bitiş süresi 4 Hafta, Sorumlu geliştirici "Serbülent ÜNSAL" )
4- Donanım veritabanı. Test ekibinin elindeki donanımları içeren ve
geliştiricilere arama imkanı sunan bir web arayüzü test takımının etkinliğini
arttıracaktır düşüncesindeyim. Bu arayüz için istemci tarafındaki verileri
smolt ile toplayabiliyoruz. Ancak smolt'un sunucu bölümü hem istenilen
biçimde arama imkanı vermemesi hemde şu ana kadar paketçisi tarafından Pardus
üzerinde çalıştırılamaması sebebiyle uygun görünmüyor. Söz konusu verileri
smolt istecisinden alıp işleyecek ve gösterecek basit bir web uygulamasına
ihtiyacımız var. Kısa ve orta vadede ( 4-6 Hafta ) benim bunu yazmam için
yeterli vaktim yok. Eğer gönüllü bir geliştiricimiz yoksa uzun vadede bu
araca sahip olacağımızı söyleyebilirim bir tarih vermemek ile beraber.
(Gerekli tahmini iş gücü : 3 Hafta/Kişi, Sorumlu geliştirici: ????? )
--
İyi Çalışmalar,
Serbülent
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi