Name: Catalin Hritcu
Project Name: Functional Test Suite
Project Mentor: Vincent Massol
Building a functional test suite covering the most important features of XWiki. The tests will be fully automated, and will use the Selenium application built for this purpose. Since the Selenium application is still experimental, additional work will be needed on enhancing the testing framework itself. Finally, some parts of the XWiki interface (like the XYSIWYG editor) will have to be enhanced to allow easier testing.
If you would be willing and able to do other projects instead, which ones?
– My second choice is the WYSIWYG MathML Editor in GWT, because of sMArTH (http://smarth.sourceforge.net/).
Please describe any XWiki experience (if any):
– I’m an XWiki commiter and I have been involved in the development of XWiki extensions (Charting, P2P, UML)
– Please see: https://hritcu.wordpress.com/projects/
What school do you attend?
– Saarland University, Saarbrucken, Germany
What is your specialty/major at the school?
– Computer Science, PhD student
– Semantics of Programming Languages
– Language-based Security
– Deductive Verification
– Formal Methods in Software Engineering
How many years have you attended there?
– 1.5 years as a MSc student
What city/country will you be spending this summer in?
– Saarbrucken, Germany – June, July
– Suceava and Iasi, Romania – August
How much time do you expect to have for this project?
– 3h/day for 4 months (predicted average)
Please list jobs, summer classes, and/or vacations that you’ll need to work around:
– PhD Student (research) – in Germany school ends at the end of July
– Teaching Assistant – Computation Logic
– Probably one week in the mountains with Marta and Sergiu
– (I have already factored all these in when answering the previous question)
Did you participate in a 2005 or 2006 Summer of Code project?
– Yes, I helped Sergiu and Marta with their SOC projects (mostly testing, debugging, documenting).
Have you applied for any other 2007 Summer of Code projects?
– No, and I won’t.
Why are you interested in Open Source development ?
– Because of freedom/liberty, collaboration and community.
Why did you decide to apply for the Google Summer of Code ?
– Because the mentoring, the money, the strict timeframe, all bring extra motivation.
Why did you decide to apply for an XWiki project ?
– Because I believe in XWiki and I want to stay involved.
Any personal/blog URLs you would like to list:
Please describe why you are interested in this specific project:
– Because I think tests are what XWiki needs the most, and I like writing (unit) tests. Functional testing would be something new, but I am very interested to learn.
Please describe a tentative project architecture or an approach to it. Please detail an expected project plan and timeline with milestones:
– until the 30th of April
* Learn more about functional testing and Selenium
– 1st May – 31st May
* Decide together with my mentor which functionalities will be tested, and assign a priority to each
* Design a functional testing architecture, based on an improved Selenium XWiki Application (http://www.xwiki.org/xwiki/bin/view/Code/SeleniumApplication). For example decide whether to use Selenese together with Flow Control (http://wiki.openqa.org/display/SEL/flowControl) or JUnit tests using the Selenium Remote Control (http://www.openqa.org/selenium-rc/).
* Implement, set up and document the testing infrastructure
* Create a couple of representative sample tests
* Document the process of writing functional tests
* Establish a more detailed timeline for the following period
– 1st June – 31st August
* Write the tests in the order given by their priority
* If writing a test is not easy (or not possible), then depending on the cause:
* Enhance the XWiki user interface to make it more easily testable (for example by adding IDs to all elements)
* Or enhance the testing infrastructure
* Or both if necessary
* Document the functional tests:
* Maybe by writting down the scenario exercised by each test
* Asses the cumulated coverage of all the tests
* Document what will remain to be done
and finally in 2 sentences, why should we take YOU ?
Because I like writing tests, and I think that XWiki needs this badly.