Açık Kaynak Topluluklarının Organizasyonel Davranışları ve Güvenli ve Kaliteli Yazılımları

Perşembe, 03 Eyl 2009

Açık kaynak toplulukları farklı ilgi, eğilim ve becerileri olan yüzlerce, bazen binlerce gönüllü kişinin oluşturduğu gruplardır. İlginç bir şekilde, bu gönüllü kişilerden oluşmuş toplulukların üyeleri, neredeyse hayatları boyunca sanal ortam dışında ve birbirleriyle hiç yüz yüze görüşmeden, bir ekip olarak; büyük, karmaşık ve güvenilir yazılım projeleri geliştirmekte ve iyileştirmektedirler. Üstelik bu projeler birçok bireysel, kurumsal ve devletsel alanda dünya çapında kullanılmaktadır.

Bu durumda aklımıza bir takım sorular takılabilmektedir: Bu gibi bir davranış nasıl bir yazılım projesi olarak sonuçlanabilir? Kararları kim vermektedir? Yazılım projesi sürecinde karşılaşılan anlaşmazlıklar nasıl çözülmektedir? Ortaya çıkan projenin kalitesi ve güvenilirliği nasıl garantilenmektedir?

Açık kaynak projelerinde topluluk üyeleri sürekli bir bilgi paylaşım ağı içerisinde olmayı sevmekte ve bu durum sayesinde diğer kişilerin tecrübelerinden yararlanmayı çok iyi bir şekilde yapabilmektedirler. Böylece büyük bir ekip ruhuyla çok büyük projelere imza atabilmektedirler. Karmaşık bir yazılım projesinin yardım almadan gerçekleştirilmesi mümkün değildir. Bu topluluklarda rol paylaşımı çok büyük bir önem taşımaktadır. Bu roller kaynak kodun ortaya çıkarılması; yazılımın her adımda test sürecine tabi tutulması; hata bulunması, raporlanması, kapatılması; farklı dillere çevirilerin yapılması; kullanım kılavuzlarının ve dokümanların hazırlanması; web sitesi veya e-posta listesi yönetimi ve bakımı gibi farklı alanları kapsamaktadır. Böylece farklı beceriye sahip kişilerin bu faaliyetleri uyumlu bir şekilde yürütmesi ile güvenilir ve kaliteli açık kaynak yazılım projeleri ortaya çıkmaktadır.

Linux Dağıtımı projeleri üretim ve geliştirme sürümleri çıkarmaktadır. Geliştirme sürümleri yeni uygulamalar ortaya çıkarmak ve bunları test etmek için ortaya çıkmakta, üretim sürümleri ise kararlı hale gelmiş uygulamaların birleşiminden kararlı Linux dağıtımını meydana getirmek için çıkarılmaktadır.

Geliştirme sürecinde topluluğa katılım ön tanımlı olarak kalite kontrol sürecinin bizzat içinde olunmasını sağlamaktadır. Bunun anlamı otaya çıkan yazılımın tüm topluluk üyeleri tarafından kullanımının, devamlı bir test süreci içerisinde olunmasını sağlamasıdır. Bu tip test yöntemine ad-hoc test denilmektedir, fakat açık kaynak projeleri ayrıca regresyon, işlev, güvenlik, entegrasyon ve unit testleri gibi formel test yöntemlerine tabi tutulmalıdır. Örneğin,bir bilgisayar üzerinde bulunan farklı uygulamaların çakışmadığının doğrulanması için entegrasyon test yöntemi kullanılmaktadır.

Ayrıca yazılımların üretim (kararlı) sürümlerine geçmeden önce formel olarak doğrulanabilmesi için, unit, işlev, güvenlik, ve regresyon test süreçlerinde kullanılmak üzere test aşamaları (testcases) hazırlanmaktadır.

- Bileşen tabanlı test aşamalarına buradan ulaşabilirsiniz.

- Test aşamalarına bağlı test betikleri ve dokümanlarına buradan ulaşabilirsiniz.

Pardus Linux Dağıtımında, tüm pardus paketlerine (bir linux dağıtımını oluşturan birbirinden bağımsız tüm uygulamalar) test aşamalarını uygulayacak ve paketlerin testini gerçekleştirecek olan bir test ekibi bulunmaktadır. Ayrıca test süreçlerinde iletişimi sağlamak amacıyla bir listemiz de bulunmaktadır.

Pardus Linux Dağıtımı’nın test süreçleri geliştirme sürümü test süreçleri ve kararlı sürüm test süreçleridir.

- Geliştirme sürümü test süreçleri için bilgiye buradan ulaşabilirsiniz..

- Kararlı sürüm test süreçleri için bilgiye buradan ulaşabilirsiniz.

Nasıl Pardus Linux Dağıtımı Test Ekibi Üyesi olabilirsiniz?

Pardus test süreçleri ve test ekibi organizasyonu sorumluluğunu üzerime aldığımdan bu yana amacım, Pardus Linux Dağıtımı alt yapısını çok iyi bilen, hata yakalayabilen ve yakaladığı hatayı iyi bir şekilde raporlayabilen ve bu hatanın nereden kaynaklandığını bulabilen bir test ekibi oluşturmaktı. Bu amaca uygun test ekibi üyeleri yetiştirebilmek adına bir kılavuzluk sistemi (mentoring) ortaya çıkarılmıştır.

Test ekibi üyeliği adaylığı için pardus-test@pardus.org.tr adresine e-posta atabilirsiniz. Bu aşamadan sonra bir test ekibi üye adayı olacaksınız.

Test ekibi üyesi olma isteğinizi bildirdiğiniz andan itibaren başlayacak olan sürecin ilk aşaması olan, Pardus Linux Dağıtımı’nın alt yapısı; hata bulma, raporlama, ve kapatma; Pardus’ta bulunan test türleri ile ilgili bilgi sahibi olabileceğiniz, küçük bir test ekibi üyelik sınavı bulunmaktadır. Bize e-posta gönderdiğiniz andan itibaren bu soruları cevaplamaya başlayabilirsiniz :). Takıldığınız noktalarda danışabilir ve yardım alabilirsiniz. Yardım için e-posta adresimiz: pardus-test@pardus.org.tr

Bu soruları uygun bir şekilde cevaplandırıp, pardus-test@pardus.org.tr adresine göndermelisiniz. Cevaplandırmış olduğunuz sorular onaylandıktan sonra bir Pardus test ekibi Üyesisiniz!!! Ve Pardus test ekibi listesinin de bir üyesisiniz.

- Pardus test ekibi için ayrıntılı bilgiye buradan ulaşabilirsiniz.

Pardus test ekibi üyesi olmak ne kazandırır? Linux dağıtımı projesi süreci nasıl işler, Linux dağıtımının genel olarak alt yapısı nedir ve hangi parçalardan oluşur gibi konular hakkında bilgi sahibi olmanın yanı sıra sizlerin test yöntemleri ve yazılım test süreçleri ile ilgili tecrübeli bir kişi olmanızı sağlayacaktır. Ve en önemlisi Pardus paketlerinin kararlı sürümlerine geçmeden önce güvenilirliğini ve kalitesini kontrol etmiş olacaksınız.

Eğer daha önce hiç bir açık kaynak projesine katkıda bulunmadıysanız, bu sizin için farklı bir tecrübe olacak…

Katılımınızı bekliyoruz!!!

admin Turkish

Organizational Behaviour of Open Source Communities and Their Reliable İnnovations

Çarşamba, 02 Eyl 2009

Open source communities are groups of voluntary membership of hundreds sometimes thousands of people with different interest, aptitude and talent. Even most of them are volunteers and they might never see each other  in real life, they  are able to collectively develop software that is highly complex, and surprisingly reliable and used by many individuals, corporations and governmental organizations worldwide.

The questions are: How can such behaviour result in software? Who makes the decisions? How are conflicts resolved? How can the reliability and quality of the software be ensured?

In open source projects, people enjoy sharing their knowledge and they hope to learn from the knowledge they receive from others. Together participants are able to achieve great things. A complex software program cannot be created without the help of others. The activities that need to be performed in the communities are different. Examples are the actual creation of new source code; testing the software in all sorts of settings; finding, reporting and fixing bugs; translating software into different languages; writing manuals and other documents; and creating and maintaining support tools, like a website, mailing list. Therefore  open source project life cycles can go-ahead with all of these activities, with  people who have different skills. Each performs a part in the quest to together improve the quality of the software.

Linux consists of a production version and development version. The development version is for trying out new things and testing. The production versions are the versions that are used in the distribution and indicate that the version will remain stable for a reasonable amount of time.

In development processes, the  participation in the communities automatically involves monitoring. This means the use of the software by all participants automatically results in testing of that software. This kind of test is ad-hoc testing, but open source projects needs also regression, functional, security, integration and unit testing which use formal testing processes. For instance, in order to verify that the applications on one computer do not conflict, the integration testing methods are used.

And also the testcases are used for unit, security, functional and regression testing in order to formally verify the applications before passing production (stable) version.

In Pardus Linux Distribution, we have a testing team in order to apply these testcases for all packages (each unique application). We have a list in order to communicate between test team members about testing process. You can access this list from this link.

The Pardus Linux Distribution test processes are development version test processes and stable version test processes.

- For informatin about development version test processes please follow this link.

- For informatin about stable version test processes please follow this link.

- For component based testcases of Pardus packages please follow this link.

- For testcase related test scripts and test documents pelease follow this link.

How can you be a Pardus Linux Distribution Test Team Member?

Since I have been working as a test supervisor and working on test team organisation in Pardus, my intention is to create a test team which will be well aware about Pardus Linux Distribution infrastructure, and which can find bugs and also which can find a way to resolve bugs. Therefore a mentoring system is introduced for candidature of Pardus Linux Distribution Test Team.

Request for candidature for the test team please send a mail to pardus-test@pardus.org.tr. After that step you will be a test team member candidate.

From that moment you will take a test team member quiz in order to learn Pardus Linux Distribution infrastructure and bug finding, fixing and reporting. You can consult your mentor if you’re unable to locate answers. For consulting the mail adress is also pardus-test@pardus.org.tr.

After answering these questions properly, you will be a Pardus test team member!!! İndeed the moderator will affirm your test team list membership.

- For information about test team in Pardus please follow this link.

Being a member of Pardus Test Team give you an intense idea how a linux distribution project life cycle works, what the general infrastructure of a linux distribution is and most importantly you will be a wise person about testing types and processes and will also be aware reliability of Pardus packages before take their stable versions.

If you have not participate to an open source project community before this will be a different experience…

We will wait for your participation!!!

admin English

Neo-Blog

Çarşamba, 18 Mar 2009

This is the first time that, I write something about me on internet. Neither have I a facebook account, nor do I have alike :) Therefore I am a little bit exited.

I think, I can start from the second half of 2008. I am graduated from Galatasaray University computer engineering.  As every graduate student, I have a lot of plan about what I will do and where I will be for the next year. First I had to finish my graduation project about Autonomous Systems Model Checking and Automated Testing. I had chosen this topic 2 years ago when I was an ERASMUS student at Belfort Montbéliard Technolgy University. But this was a bit hard way to finish it. Because it was a project topic that not listed as a graduation project.  So one of the members of the thesis committee rejected it when I had almost finished the half. After short  intercourses on other members, I finally convinced them!!! :)

gsu

In the meantime,  I figured out the possibilities about what can I do:

  • I wanted to continue on my thesis, so I could find a master on this.
  • I am familiar with Linux about for  4 or  5 years, and as I like to deal with it,  I could work on a project which is related with Linux.

First I searched for a master, and I took an offer from City University London, but unfortunately I couldn’t find a scholarship. But I’am not sure it’s a misfortune or not :) ,  because for the other plan I took an higher sight about finding the appropriate job *PARDUS*.  Finally I achieved my goal!!!

pardus11

I like Pardus and its people, and anything can supersede contributing to opensource.

As I have started to work on Pardus Project, I am dealing with new component draft of Pardus 2009, TeXLive and various bugs. For component draft, we rearrange the packages related to newly changed or created component directories.

As for TeXLive, first I make  research on different Linux distributions, and finally I decided to divide it into subpackages related to different roles. Therefore we can guarentee the granularity of the packages.

When it comes to my other aim, master on automated testing and verification, I am a student of Sabanci University since this spring semestre. After the conversation with Assistant Professor Hüsnü Yenigün who had also orientated me on my graduation project, I applied to Sabanci University and I passed its interview.

sabanci

Voila!!!

admin English