[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