Cumartesi, Nisan 05, 2008

Pardus Test Süreci'nin Dünü, Bugünü, Yarını

Pardus ekibine katıldığımdan beri pek fırsat bulamıyorum yazmaya. Oldukça yoğun ama bir o kadar da zevkli bir çalışma dönemi yaşıyoruz.

Sorumlusu olduğum Pardus test süreçlerinden bahsetmek istedim biraz. Hem süreçleri çekirdek ekip dışındakiler için biraz daha belirgin kılmak, hem de Pardus Test Takımına ve gelecekteki takım arkadaşlarımıza bir başlangıç noktası oluşturmak için.

Pardus ekibinin her üyesinde görebileceğiniz ortak bir özellik mükemmeliyet takıntısıdır. Bazen küçük bir düğmenin yeri ve işlevi için bile saatlerce tartışabiliyoruz. Ancak Pardus'la ilgili değerlendirmeleri okudukça harcadığımız bu zamanın karşılığını fazlası ile aldığımızı görüyoruz. Pardus Test Takımı da bu mükemmelleştirme sürecinin önemli bir parçası olmak üzere kuruldu.

Ne kadar yetenekli geliştiricilere sahip olursanız olun, tek başına sorunsuz çalışan parçalar bir araya gelince çalışmak konusunda sorun yaratabiliyorlar. Pardus Test Takımının görevi büyük yapbozu incelemek ve onu kusursuz hale getirmek.

Evvel zaman içinde, Pardus 1.0 sürümü öncesinde rootfs in çıkışı ile başlamış test takımı kurma fikri. O zamanki adıyla Resmi Pardus Test Sürecinin (RPTS) kordinasyonunu sevgili Erkan Tekman yürütüyormuş. Lakin zaman içinde iş yoğunluğunun arasında kaybolmuş gitmiş yeni sürümler çıkarken RPTS. Bu gün bu süreç daha geniş bir katılımla ve daha uzun soluklu olarak yeniden canlanıyor.

Yeni test sürecini planlarken önce diğer dağıtımların test süreçlerini inceledik. Kendi çalışma metoçlarımızı gözden geçirdik. Geçmişteki deneyimlerimize dönüp baktık. Sonuçta test süreçlerinin 2 ana bölüme ayrılmasına karar verdik.

Test takımımız şimdilik birinci bölümde bizlere yardımcı olacak ancak süreç ilerledik takımın içinde çıkacak istekli ve tecrübeli arkadaşlarla ikinci bölümü de bir ekip halinde yürütmeyi planlıyoruz.

Birinci Bölüm "Sürüm Öncesi Test Süreci"

Sürüm Öncesi Test Süreci alfa sürümünün çıkması ile başlayan ve kararlı sürüm ile sona eren yaklaşık 30 - 60 günlük bir süreçtir. Bu süreç de Alfa , Beta ve RC sürümleri çıktıkça, test takımımız kendileri için hazırlanan test kılavuzunun yardımıyla dağıtımın temel işlevlerini test edecek ve sonuçları test_takımı listesi aracılığı ile bizimle paylaşacaklar. Liste içinde istenilen bilgilerin tamamlanması ile gerekiyorsa hata takip sistemine aktarılacak hata bilgileri ve burada çözümlendikten sonra hatayı bildiren ve tekrarlayan takım üyelerince çözüm onaylanacak.

İkinci Bölüm "Düzenli Testler"

Bu test süreci yeni kararlı sürümün çıkması ile başlar ve sürüm resmi olarak desteklendiği sürece devam eder. Bu süreçte kendi içinde ikiye ayrılır. "Güncelleme Testleri" ve "İşlev Testi".

Bu süreç için öncelikle, test edilen kararlı sürüm ( örneğin Pardus-2007 ) ve o ana kadar çıkmış ara sürümlerin her birinin ( örneğin 2007.1 , 2007.2 , 2007.3 ) yeni kurulmuş birer versiyonuna sahip olmamız gerekir. Her bir testin ardından tekrar bu temiz kurulumlara ihtiyaç duyacağımızdan bu sürümleri sanal görüntü olarak kurmak ( misal VirtualBox ile ;) ) sağlık ve de sıhhat açısından faydalıdır. Bu sanal görüntüleri güncelleme testlerinde kullanacağız.

Ayrıca her güncelleme sonrasında kararlı depodan güncellediğimiz düzenli güncellenen bir sanal imaja da ihtiyaç vardır.

Süreç genel hatları ile şöyle işler; Test sorumlusu test deposunda bekleyen paketler için bir onay süreci başlatır. Geliştiriciler tarafından onaylanan paketler o anki kararlı depo ve onay alan yeni paketlerden oluşan bir geçici depoya aktarılırlar. Temiz kurulmuş sürümlere bu deponun adresi verilerek sürümler güncellenir. Her güncellenmiş sürüm yeniden başlatılarak temel sistemlerin sağlıklı işleyip işlemediği kontrol edilir. Ardından revdep-rebuild komutu ile ters bağımlılıklardaki kırık paylaşımlı kütüphane dosyalarının varlığı denetlenir.

İşlev testi içinse, kararlı depo ile eş zamanlı güncellediğimiz imaj, test için geçici depodan güncellenir ve güncellenen her bir program tek tek test edilir.

Testçinin bütün program ve kütüphaneleri bütün özellikleri ile test etmesi bilgi, tecrübe ve zaman açısından mümkün görülmediği için test edilecek olan paketler 4 ana kategoriye ayrılmıştır. Kategorizasyon işlemi halen devam etmekte olup yeterince olgunlaşınca wikiye aktarılacak. Bu kategoriler; Detaylı biçimde test edilecek paketler ( ki bunların nasıl test edileceği ayrıntılı olarak belgelenmiştir ) , Standart biçimde test edilecek paketler ( kurulum ve temel çalışma denetimi yapılır ) , Yalnız kurulum testine tabi tutulacak paketler ve Multimedya paketleridir ( Multimedya paketlerininde nasıl test edileceği detaylı olarak belgelenmiştir ).

Bu süreçler Pardus'un dünyada ve Türkiye'de hak ettiği yere gelmesinde önemli rol oynarken bizlere de test takımımızın içinden yeni dostlar ve yeni geliştiriciler kazandıracak. Özgürlük İçin...