You are on page 1of 2

vmchecker

Propunere proiect pentru stagiu ı̂n cadrul


ROSEdu
Vlad Dogaru <ddvlad@anaconda.cs.pub.ro>
4 iunie 2008

1 Introducere
vmchecker este un program care vizează automatizarea testarea temelor la
Sisteme de Operare I şi II. Aplicaţiile ar putea fi extinse şi la alte materii,
cum ar fi Protocoale de Comunicaţii.
Există deja o variantă funcţională a programului scrisă ı̂n Bash, dar pe
care dorim să o rescriem ı̂n C, pentru a creşte flexibilitatea şi portabilitatea
ei.

2 Cunoştinţe minime
Cerinţele pentru a lucra la vmchecker sunt următoarele:

• Linux şi lucru ı̂n linia de comandă – intermediar

• C – intermediar

• Bash scripting şi/sau Python – de bază sau want to learn – probabil


testele vor fi scrise ı̂ntr-unul dintre aceste limbaje

• familiaritate cu software pentru maşini virtuale (probabil vmware, pen-


tru că este folosit cu preponderenţă)

• entuziasm :-) – aceasta ar trebui să fie prima pe listă, deşi nu este o
“cunoştinţă”.

1
3 Desfăşurarea proiectului
În prezent, sunt folosite nişte scripturi bash pentru testare. Deşi ele funcţi-
onează, sunt destul de inflexibile şi greu de urmărit.
Vom ı̂ncerca ı̂mpreună să construim o infrastructură care urmăreşte un
grad cât mai ridicat de automatizare a procesului de testare. Câteva direcţii
ı̂n care am putea dezvolta proiectul sunt:

• definirea unui API pentru programele de test

• rapoarte şi statistici: se trimite mail studentului şi evaluatorului, la


sfârşitul testelor se contorizează rezultatele

• suport pentru maşini virtuale diferite, pentru a compensa eventualele


inconvenienţe ale maşinii virtuale alese iniţial

4 Beneficii
Pe lângă faptul că vom putea ajuta facultatea, vom ı̂nvăţa despre (sau ne
vom perfecţiona ı̂n) următoarele arii:

• comunicarea cu maşina virtuală folosind SSH

• programarea ı̂n C – pentru că evaluatorul ar putea rula un timp ı̂ndelungat,


trebuie să avem grijă la eliberarea resurselor

• scripting ı̂n Bash/Python

• folosirea unui sistem de control al versiunii (Subversion, Git, Darcs,


alte sugestii sunt binevenite)

• folosirea uneltelor pentru automatizarea procesului de build şi deploy-


ment (make)

• depanare (gdb, valgrind)

• lucru ı̂n echipă – din nou, trebuia menţionat primul, pentru că este cel
mai important

You might also like