Prop: Further implementation of PHPUnit Unit Testing Joomla

Locked
XineDesign
Joomla! Fledgling
Joomla! Fledgling
Posts: 2
Joined: Tue Apr 01, 2008 4:31 pm

Prop: Further implementation of PHPUnit Unit Testing Joomla

Post by XineDesign » Tue Apr 01, 2008 4:39 pm

My full Project proposal for the further implementation of Unit Testing using PHPUnit in Joomla, is on the GOSOC website, for review by project mentors. I have posted some of my project proposal bellow, I welcome your review and comments. -edit- I welcome any feedback, seriously some one respond: :eek: I've spent many years using Joomla and I think more Unit test coverage in Joomla would greatly benefit the future of the project. Please give me advice on how, you think I can make my proposal better.
Thanks
-Scot

Title: Unit Testing in Joomla

Locate code lacking existing unit tests, ineffective or obsolete unit tests, then write new unit tests. Further Unit Testing in Joomla will improve future releases by; simplifying integration, reducing programing errors, allowing for rapid testing. Unit Testing allows developers to test that a unit of code still functions properly after a change. By doing this I hope to improve the speed at which changes can be made to Joomla and be tested as well as the stability of future. Should another student be selected to create a Web-Based Unit test runner I hope to work closely with this student to ensure the proper integration. In the event that another student is not selected, I will weight the merits of creating such a web-based unit test runner and may elect to do so as part of my contribution to Joomla Unit Testing.

In December 2007 the Joomla Development team decided to move to PHPUnit, a Unit Testing frame work for php. Currently however the implementation of Unit Testing is very sparse, also all tests must be run from the command line. I plan to use the PHPUnit testing framework, and to work with the Joomla Development community to increase the coverage of Unit Testing and the ease of performing Unit Tests.

Biography:

When I was 7 I first gained access to a computer. Today the few KB of ram and a cpu several times bigger and seemingly unimaginably less powerful then what I now hold in the palm of my hand, seems laughable, but I was hooked. At first sight of the alluring dos prompt I began my quest to understand and master this magical box before me. As the years progressed new technologies began to emerge DosShell, then this strange thing called windows which looked an awful lot like a product made by that colored fruit company. In the years that followed I learned my first programing language Basic. I still remember the sounds of my first modem and gateway to the Internet. Of course at this time the net was a very different place, there was no Google, and no banner ads. I continued to teach my self new technology's as I progressed. My freshman year of high school I managed to take all of the computer science courses offered by my high school, including the Advanced Placement(College level) Computer Science class. Next year I enrolled in the Youth Options course and took my first class at University of Wisconsin Whitewater Introduction to programing in Visual Basic, I went on to take classes in Java, Perl, Assembly programing, and more all while in high school. Upon graduation from high school I enrolled full time at University of Wisconsin Whitewater, and began to per sure my Management Computer Systems degree. Now with 3 semesters completed as a full time student I already have a Junior standing. I intent to complete my Management Computer Systems degree in 2009. I selected UWW based both on my past experience with both UWW and University of Wisconsin Madison, the combination of business and computer science offered by the MCS degree was paramount in my selection. During my time at UWW I have worked for the MCS dept as a Java tutor even tutoring students for higher level classes, I had not yet taken. Additionally for the last several years I have freelanced as a website designer often using Joomla to build dynamic sites for clients.

The machines and the technology may have changed a lot since I first gazed on the flicker of the monochrome dos prompt, yet one this has remained constant, my desire to understand and master technology. As technology continues to develop at an amazing rate, and the Internet continues to connect us and influence our lives in ways that only years ago where completely unimaginable we can sit and wounder what changes will come. I however prefer to take a more active stance and help bring about those changes. The Management Computer Systems program curriculum emphasizes Unit Testing, and is focused on training skilled developers. The education I have received at UWW, and the experince of my professors with Unit Testing, as well as my own experince with Unit Testing make this an ideal project for me.

Project Stages:

Stage 1: Familiarize my self with the inner workings of the current Joomla code base and cement my knowledge of Unit Testing techniques.

Stage 2: Identify units in need of Unit Testing.

Stage 3: Using existing Unit Testing and Unit Testing principals define implementation standards.

Stage 4: Write unit test code.

Stage 5: Evaluate progress, clean up code as needed and test all new Unit Tests.

Milestones:

The first marker in my progress will be to have identified the units in the Joomla code base lacking proper Unit Testing.

The second part of my efforts will focus on identifying those units in the core Joomla code where Unit Testing would have the greatest immediate benefits and constructing unit tests for these sections of code. As the benefit of Unit Testing will increase exponentially with the number of unit tests implemented I will focus most of my time on this.

Goals:

Improve the quality of future releases of Joomla by providing developers unit tests to test methods or modules that they have changed. This will be beneficial to all Joomla users, including me as I regularly use Joomla to build websites, by improving the stability and consistency of Joomla.

Increase the speed of testing, by simplifying the testing of code changes I hope to allow developers to spend more time writing code and less time playing wack a bug.

In addition to the benefits to Joomla and the Joomla community this project will also provide me with valuable experience in developing and implementing Unit Testing. I also seek to challenge my self and have purposely selected Unit Testing as a way to improve my knowledge of procedural programing techniques. On further benefit is that I will gain an intimate knowledge of the Joomla code base.

Technologies:
PHP
PHPUnit testing framework
JDN
SVN
subversion

User avatar
deborahSusan
Joomla! Apprentice
Joomla! Apprentice
Posts: 24
Joined: Mon Jan 29, 2007 9:29 pm

Re: Prop: Further implementation of PHPUnit Unit Testing Joomla

Post by deborahSusan » Mon Apr 07, 2008 9:39 am

You've put a lot of forethought into your project proposal . . . you are to be commended!

Equally impressive, you seem well qualified to reach your goals, and I have no doubt that you will accomplish all that you set for yourself.

Successful PHPUnit tests will make a more efficient and effective environment for developers.


My recommendation would be to encourage you to prioritize the units that you intend to complete and then tackle them on an individual basis, rather than completing all at the same time. In other words, complete stage 4 for the "highest priority" unit and then move onto state 5 it. Once it is complete, go back to stage 4 for the "next highest" unit and complete stage 5 for it. Proceed through your list as far as time permits.

This way, you will definite complete some of the unit tests. The other way, you run the risk of not completing anything in entirety.

This may be a bit simplistic; another example might be to group them into batches, and then complete each batch in phases.

Just pace yourself and keep track of your pace. My concern is that in you're enthusiasm, you might find yourself taking on a load that is too heavy . . . and although I'm sure you would carry the weight of it no matter what the cost, there's no need to burn yourself out over summer break . . . especially as you start your senior year!

Best wishes to you!

XineDesign
Joomla! Fledgling
Joomla! Fledgling
Posts: 2
Joined: Tue Apr 01, 2008 4:31 pm

Re: Prop: Further implementation of PHPUnit Unit Testing Joomla

Post by XineDesign » Mon Apr 07, 2008 5:47 pm

Thanks for the feedback, took into account what you said and updated my project proposal on the GSOC site. I had intended to prioritize units and then work on them in sets but my proposal didn't make that very clear.

Anyone else have any comments about my proposal, or Unit Testing in Joomla in general? Or perhaps some one has a question for me?


Locked

Return to “Proposed projects”