The Joomla! Bug Squad (JBS) is a team within the production working group. Their job is to identify and fix bugs in Joomla. This includes the following:
The Bug Squad is also supporting with testing and quality assurance when a new major or minor version is developed. Generally speaking the bug-squad is in the lead when a version switches from beta-stage to the stable-stage within the development cycle of Joomla!
The Bug Squad was created in December 2007. As of May 2010, JBS has been organised into the following teams:
These teams are not rigid, and JBS members can participate in whatever activities they wish. The purpose of the teams is to make it easier for JBS members to focus their efforts and learn the skills required to successfully contribute to the project.
This team has the very important and difficult job of filtering all of the forum posts and bug reports and sorting out which ones are real bugs that are ready to be worked on. From the standpoint of the tracker, their job is to move issues from Open status to Confirmed status. Of course, many issues will also be put into other status codes, including Information Required, Needs Review, Duplicate, Not a Bug, and so on.
Before an issue is marked Confirmed, it needs to be reproduced and documented so that others can reproduce the problem.
The Tracker Team should also make sure the issue has the correct Type and Priority. Remember, many users reporting bugs are not familiar with all of the fields and terminology. In many cases, this could be the user's first contribution or interaction with the project.
It is critically important that all JBS members follow the code of conduct and show courtesy and respect in all tracker comments. Remember, we are the ambassadors of the Joomla! project, and the way we behave reflects on the whole project. People will naturally be unhappy if an issue they report is not taken seriously or if they feel that it was closed improperly. So we need to be sensitive to that fact, while of course making the what we believe to be the correct decision. So, for example, if you close an issue as Not a Bug, please put a comment in telling the reporter why in a nice way.
Also, if someone is not following the Code of Conduct in a tracker comment, please point this out in a respectful way and remind the person that we need to follow the CoC at all times. If there is a persistent problem, please let your Team Leader or a JBS Coordinator know so we can take action. We absolutely do not want to tolerate rude or disrespectful behavior in the tracker or forum.
The coding team works with Confirmed issues and creates patches to correct these issues. When a patch is completed, and when a test plan has been added that tells the testers how to test the patch, the issue is changed to Pending status.
Many times the first patch submitted for an issue will not be the actual patch that is committed to the SVN. There are many reasons for this. Someone else may have a different approach to the bug. A tester might find a problem. Or the person who submitted the patch will think of a better way to do it.
It is important to be positive and flexible and not expect that every patch you submit will go straight into the SVN. That does not mean the work is not helpful or valuable. In many cases, it is not possible to get to the end result without going through one or more tries.
This team tests Pending issues and, when tests are successful, documents this and moves the issue to Ready to Commit status. At this point, one of the JBS coordinators will commit the patch to the SVN.
Over time, we plan to include more automated testing into the process. Eventually, we would like every Ready to Commit issue have both a code patch and an automated system or unit test. Accordingly, it will be important for members of the testing team to be learning how to write and use system tests.
There are some tips for testing in the wiki in the Testing Checklists article.
Automated testing is a key technology that we will incorporate into the workings of JBS. At the present, this is a somewhat specialized skill, so we will start by developing a separate team of people who are familiar with this and can help write automated tests and train other JBS members on automated testing. Our aim is to eventually make automated testing a routine part of fixing issues.
This team is responsible for coding and documenting the upgrade process for users migrating sites or extensions from one version to the next (for example, from version 1.5 to 1.6). They will be responsible for creating and fixing issues in this area of the code.