Friday, December 19, 2008

2008 Survey results - Software quality issues due to variable level of skills between locations

"...communication and collaboration was still the dominant challenge in distributed development with more than 85% respondents mentioning it, the surprise second, as per the survey, was software quality issues arising from too much variation in skill sets between sites" (see http://www.infoq.com/news/2008/12/distributed-development-quality for more information).
This was one of the conclusions from the survey (September 2008) described in the attached link, but the top identified issues are practically the same, even if some changes have occur in the hierarchy
- General communication and collaboration challenges
- Software quality issues due to variable level of skills between locations
- Political issues with the way organization is structured
- Quality concerns due to difference in processes/practices
- Project management issues caused by complexities of distributed development

Tuesday, December 2, 2008

Informal reviews - the inexpensive way to get benefits

An informal review is always the best solution when you want to avoid too many corrections from the formal reviewers or to decrease the number of obvious mistakes you've done. And it is quite easy: you have to go to one of your team colleagues and kindly ask him to review your work. The informal reviews are also very useful for the junior software testers since their confidence and experience is low, so they need help from the experienced colleagues (especially senior testers or programmers) to quickly review their work and to identify the aspects which don't make sense, which need to be improved or better described, etc. .
The informal review is not a formal process, it may be documented if the reviewers consider it necessary (the material may be as informal as a computer listing or hand-written documentation), is the most inexpensive way to get benefits and the date and the time of the agenda for it will not be addressed in the project plan.

Depending of the nature of the review, the tester can ask the informal review also from a programmer and not only from someone within the testing team ( senior testers or technical leads are
especially recommended for this, because they have the requisite technical or business expertise).
If you are a programmer you should be performing informal code reviews or having a colleague developer perform an informal code review to catch some of the smaller mistakes that are commonly made. A number of techniques are available for doing this, for example, use a parameter or constant in the code as a switch to display all parameters and/or print them to a log file. Become aware of what causes errors in program code and how errors can be detected and prevented. Also, learn to make the functionality understandable by using adequate comments.
One more important thing for the informal reviewer : critically reading the work of another software tester/programmer enables you to become more able to identify, diagnose, and solve some of your own issues.


Monday, December 1, 2008

Review process

"Review" is one of the key words when talking about the software testing. The reviews should not be necessarily carried out by the testers, but by the people to whom the project manager will assign this task (especially by the quality assurance department, if this exists within the company) .
We can review a lot of aspects during the software development life cycle: development and design documentation, test plans, test cases, test results, defects, tests and development metrics, etc.
Even if we are doing informal, walkthrough, technical or inspections reviews (I'll try to detail each of these types in the next posts) it is important to distinguish between the factors which make a review to be successfull or not.
We need to make sure the right people are involved for the review objectives, the review's objective is clear for all participants, each issue found is expressed objectively without affecting the author (it has to be a constructive action and not a "witch hunt"), we use checklists in order to be more effective in identifying the issues, adequate time for reviews are allocated in the project shedules, etc.
In case that the responsibilities are not taken seriously or understood, the allocated resources are insufficient or the processes to support reviews are insufficient (or don't exist) then we can talk about unsuccessfull reviews.
Only by reviews we can make sure that the system specifications/requirements are correct and important faults are found before coding has started.

Saturday, November 8, 2008

Software testing and Quality Assurance certifications

The software testers and quality assurance specialists can achieve now one (or more) of the testing/quality assurance certifications available. These Software testing certification are basically of 2 types: an exam type based (you'll need to pass an exam: e.g. ISTQB (International Software Testing Qualifications Board)) and an education based (you'll need to pass each course: e.g. IIST (International Institute for Software Testing)) )
Read below the list with the most popular testing certifications and see if you can find one suitable for you (the information displayed for each certification are the ones from their official sources):

- ISTQB Certified Tester, Foundation Level (CTFL) offered by the International Software Testing Qualification Board
CTFL is an exam-based certification, based on a Certified Tester - Foundation Level Syllabus (see http://www.istqb.org/downloads/syllabi/SyllabusFoundation.pdf).
Objectives for the CTFL:
The Foundation Level qualification is aimed at anyone involved in software testing. This includes people in roles such as testers, test analysts, test engineers, test consultants, test managers, user acceptance testers and software developers.
This Foundation Level qualification is also appropriate for anyone who wants a basic understanding of software testing, such as project managers, quality managers, software development managers, business analysts, IT directors and management consultants. Holders of the Foundation Certificate will be able to go on to a higher level software
testing qualification (more details on http://www.istqb.org)

- ISTQB Certified Tester, Advanced Level (CTAL) offered by the International Software Testing Qualification Board
CTAL is an exam-based certification, based on a Certified Tester - Advanced Level Syllabus (use http://www.istqb.org/downloads/syllabi/CTAL_Syllabus_V_2007.pdf).
Objectives for the CTAL :
The Advanced Level qualification is aimed at people who have achieved an advanced point in their careers in software testing.
This includes people in roles such as testers, test analysts, test engineers,
test consultants, test managers, user acceptance testers and software developers. This Advanced Level qualification is also appropriate for anyone who wants a deeper understanding of software testing, such as project managers, quality managers, software development managers, business analysts, IT directors and management consultants. To receive Advanced Level certification, candidates must hold the Foundation Certificate and satisfy the Exam Board which examines them t
hat they have sufficient practical experience to be considered Advanced Level qualified.
The courses ISTQB Advanced Level cover the following main areas:

- Advanced Level Test Manager ( the Advanced Level Test Management professionals should be able to:
define the overall testing goals and strategy for the systems being tested, plan, schedule and track the tasks, describe and organize the necessary activities, select, acquire and assign the adequate resources to the tasks, select, organize and lead testing teams, organize the communication between the members of the testing teams, and between the testing teams and all the other stakeholders, justify the decisions and provide adequate reporting information where applicable
- Advanced Level Test Analyst ( the Advanced Level Test Analysts should be able to: structure the tasks defined in the test strategy in terms of business domain requirements, analyze the system in sufficient detail to meet the user quality expectations,evaluate the system requirements to determine domain validity, prepare and execute the adequate activities, and report on their progress, provide the necessary evidence to support evaluations, implement the necessary tools and techniques to achieve the defined goals
- Advanced Level Technical Test Analyst ( the Advanced Level Technical Test Analysts should be able to: structure the tasks defined in the test strategy in terms of technical requirements, analyze the internal structure of the system in sufficient detail to meet the expected quality
level, evaluate the system in terms of technical quality attributes such as performance, security, etc, prepare and execute the adequate activities, and report on their progress, conduct technical testing activities, provide the necessary evidence to support evaluations, implement the necessary tools and techniques to achieve the defined goals (more details on http://www.istqb.org
)

- Certified Software Test Professional (CSTP) offered by the International Institute for Software Testing (IIST):
CSTP is an education-based certification, based on a Body of Knowledge that covers areas essential for every test professional to effectively perform their job in testing projects. Objectives of CSTP Certification: help individuals develop their software testing skills through formal education, establish a common skill set for software testing professionals according to a well-defined Body of Knowledge, create a pool of qualified software testing professionals, prepare candidates for a wider range of software testing assignments, complement company in-house and on-the-job training programs, provide professional recognition and career enhancement. There are two requirements that must be satisfied before the CSTP certification can be granted. These are: Formal Education Requirement and Job Experience Requirement (more details on http://www.testinginstitute.com/cstp.php )


- CATe offered by the International Institute for Software Testing (more details on http://www.testinginstitute.com

- Certified Test Manager (CTM) offered by the International Institute for Software Testing (IIST):
CTM is based on the Test Management Body of Knowledge (TMBOK) developed by IIST through its Advisory Board.

Objectives of CTM Certification:
The CTM Certification was developed to fill the gap in the management skills required by test managers and test leads to effectively manage the test process, the test project and the test organization. Specifically, CTM aims at achieving the following objectives: help individuals develop their test management skills through formal education, establish a common skill set for software test managers and test leads based on a well-defined Test Management Body of Knowledge (TMBOK), create a pool of qualified software test managers Prepare test professionals, especially those who achieved the Certified Test Professional (CSTP) designation for management and lead positions in software testing projects, provide professional recognition and career enhancement for those who manage test projects.

There are two requirements that must be satisfied before the CTM certification can be granted. These are: Formal Education Requirement and Job Experience Requirement (more details on http://www.testinginstitute.com/ctm.php)

- Certified Software Tester (CSTE) offered by the Quality Assurance Institute (QAI):
Objectives of CSTE Certification:
The Certified Software Tester (CSTE) certification is intended to establish standards for initial qualification and provide direction for the testing function through an aggressive educational program. Acquiring the designation of Certified Software Tester (CSTE) indicates a professional level of competence in the principles and practices of quality control in the IT profession. CSTEs become members of a recognized professional group and receive recognition of their competence by business and professional associates, potentially more rapid career advancement, and greater acceptance in the role as advisor to management.

To qualify for candidacy, each applicant must meet one of four prerequisites: a 4 year degree from an accredited college-level institution and 2 years experience in the information services field, a 3 year degree from an accredited college-level institution and 3 years experience in the information services field, a 2 year degree from an accredited college-level institution and 4 years experience in the information services field, six years experience in the information services field AND Are working, or have worked at any time within the prior 18 months, in the field within covered by the certification designation (more details on http://www.softwarecertifications.org/qai_cste.htm )

- ISEB offered by the Information Systems Examinations Board (see more on http://www.bcs.org/server.php?show=conWebDoc.2064 )
The following are the ISEB certification for software testing:
- Foundation Certificate in Software Testing
This certificate provides a good overview of the basics of software testing (more details on
http://www.bcs.org/server.php?show=nav.6942).
- Intermediate Certificate in Software Testing
This certificate is the next level of competency in software testing after foundation level. A pass in this certificate provides evidence that the candidate has proven analytical ability, having gained knowledge and practical skills in the key topics required for practicing software testing. (more details on
http://www.bcs.org/server.php?show=nav.001010002003021).
Practitioner Certificate in Test Management
This certificate is a high level qualification which examines knowledge and skills required for the management of Software Testing. It is the next level of competency in software testing after the ISEB intermediate level. A pass in this certificate provides evidence that the candidate has gained a high level of competency in topics specific to the management of software testing, having proven ability to analyse, synthesise and evaluate. (more details on http://www.bcs.org/server.php?show=nav.001010002003022)
Practitioner Certificate in Test Analysis
This certificate is a high level qualification which examines knowledge and skills required for the technical analysis of Software Testing. It is the next level of competency in software testing after the ISEB intermediate level. A pass in this certificate provides evidence that the candidate has gained a high level of competency in topics specific to the analysis of software testing, having proven ability to analysis, synthesis and evaluate.(
more details on http://www.bcs.org/server.php?show=nav.001010002003023)

- CBTS offered by the Brazilian Certification of Software Testing (ALATS) (more details on http://www.alats.org.br)

A similar list is described below for the Quality assurance certifications:


- CSQE offered by the American Society for Quality (ASQ)
Objectives of CSQE Certification: The Certified Software Quality Engineer understands software quality development and implementation, software inspection, testing, verification and validation; and implements software development and maintenance processes and methods (more details on http://www.asq.org/certification/software-quality-engineer/index.html).

- CQIA offered by the American Society for Quality (ASQ)
Objectives of CQIA Certification: The Certified Quality Improvement Associate has a basic knowledge of quality tools and their uses and is involved in quality improvement projects, but doesn't necessarily come from a traditional quality area (more details on http://www.asq.org/certification/quality-improvement-associate/index.html)

- CSQA offered by the Quality Assurance Institute (QAI) (more details on http://www.softwarecertifications.org)

Even if
some of these certifications may be a bonus when trying to get a job in the software testing/ quality assurance area, they can't measure an individual's productivity, their skill, or practical knowledge, and cannot guarantee their competence, or professionalism as a tester.

Friday, November 7, 2008

Software testing certifications - ISTQB reached 100000

The ISTQB Certified Tester program will soon become the most popular software testing certification.
Few words about ISTQB (see more details on their official link : http://www.istqb.org
) - it is a "program that provides certification for software testers internationally. There are currently two levels of certification: The Foundation Level and three separate Advanced Level certificates (ISTQB Certified Tester Foundation Level (CTFL) and ISTQB Certified Tester Advanced Level (CTAL)). For both levels, international working parties develop and maintain internationally uniform curricula and exams. One of the core principles of the program is a strict separation between the administration of exams and the training to those who would like to prepare for the exam in ISTQB compliant courses".
What is interesting is that they've already reached to a number of 100,000 Software Testing Professionals
ISTQB Certified, which I find to be a really great achievement (more details on http://www.istqb.org/october_24_2008.htm - BRUSSELS, BELGIUM (24 October 2008) – The International Software Testing Qualifications Board (ISTQB) announced that, through their National Boards and Exam Boards, they have granted more than 100,000 certifications at the ISTQB Certified Tester Foundation Level (CTFL) and ISTQB Certified Tester Advanced Level (CTAL). "ISTQB software tester certification is by far the most widely recognized and fastest-growing software tester certification in the world," said Rex Black, CTAL, president of ISTQB. “Reaching the 100,000 certification milestone validates ISTQB’s leadership in helping software testers to demonstrate their knowledge, skill and professionalism.” ISTQB certification traces its origins to the UK, where industry demand led to its development. “Software testing is critical to the reliable functioning of the world’s software systems. We realized that certification can help to improve the capability of those that test systems, while moving the profession forward,” explained Geoff Thompson of the UK Testing Board (UKTB). The appeal of ISTQB software testing certification quickly led to its expansion. Horst Pohlmann of the German Testing Board (GTB) continued, "Companies tell us they choose ISTQB certification because it is practical, focusing on the software testing knowledge and skills their testers need every day." In recent years, ISTQB has become a global standard for software testing certification. Vinay Baid of the Indian Testing Board (ITB) explained, “ISTQB software testing certification is now essential to software testing in India. As is true throughout much of the world, many employers prefer to hire ISTQB certified software testers or have a program that encourages their software testers to obtain ISTQB certification.” The rapid growth of ISTQB software testing certification can also be attributed to its not-for-profit nature. “Companies have found ISTQB certification to be credible because we freely offer the ISTQB certification syllabi and software testing glossary, and let you choose your own education,” said Patricia McQuaid, PhD, CTFL, president of the American Software Testing Qualifications Board (ASTQB). This not-for-profit quality extends to ISTQB’s leadership. The organization is composed of representatives from national boards throughout the world, all of whom are volunteers. ISTQB decides on the standards for certification and the national boards develop and maintain the country-specific examinations. “While we’re proud of our status as the leading global software testing certification, we won’t rest on our laurels,” said Black. “Companies look to ISTQB to help them deliver quality software, and software testers look to ISTQB to help them build their profession. ISTQB’s volunteer leadership is already developing the vision that will take software testing to a new level.”).