What is Application Certification?
Testing is a crucial part of any systematic way of producing goods or services. In the simple but elegant sequence of “Plan, Do, Check, Act” used for process improvement, “Check” is as important an element as the other three.
As in any other business, the software service provider has to verify whether what he has produced is in accordance with
a) What he intended to produce and
b) What the customer requires.
(Both are supposed to be the same in an ideal world!)
Thus there are two types of testing that are required for software:
a) Have we done things right?
b) Have we done the right things?
The first type of testing is called verification and the second validation.
Application certification is the assurance or certification given by an independent agency that has verified and/or validation, that the software application meets agreed certification criteria.
Can’t we do without it?
These are days of complexity. Computer software pervades all mission-critical applications like aircraft and defense equipments, medical equipment, financial systems like the stock markets, banks and insurance companies. We do not want to have errors in applications, in which we stake our lives and our life savings, do we?
Almost all commercial software is built using many multi-member teams, each possibly sitting in different cities/countries. Each member contributes towards one piece of the software and all the pieces are put together or integrated and then packaged to form the software application. Errors might exist in the individual pieces, or might get built when the pieces are put together.
If the builder does the testing himself, chances are very high that he may not have tested from every angle, or he might have tested from his own understanding of the software’s requirement, which in itself might be wrong.
So mere testing is not enough. Proper testing by the experts is crucial and this is where application certification comes in. Application Certification has emerged as a separate discipline with many companies taking this up as their sole line of business.
Who does the testing?
Testing is done by various sets of people at various phases throughout the software development life cycle. Developers themselves do ‘Unit testing’ as they are writing the programs to ensure that the individual pieces are free from defects and works as it is intended to.
‘Integration and systems testing’ is done after putting all the pieces together. We verify here whether when all the pieces come together the application actually works and delivers the functions it is supposed to. This is typically done by an independent team.
‘User Acceptance Testing’ is done by a set of people who are actually going to use the software application after it is built.
What are the different types of testing?
In addition to the above types, there are a few more:
‘Performance testing’ is done by specialized teams using software tools such as Mercury Interactive’s LoadRunner, Segue’s SilkPerformer, etc. to check whether the software works properly and in a timely fashion under average and peak loads.
‘Functional testing’ is testing the functions that the software is supposed to perform.
‘Regression testing’ is done to verify that all other parts of the software work properly, when one or more parts of the software undergo change. Since the work is repetitive, it is a good idea to automate these tests. Popular tools like Mercury Interactive’s WinRunner & Quick Test Professional, Segue’s SilkTest and Rational Robot is available for this.
Many of the mission-critical applications have standby hardware/software which are intended to come up automatically and take over seamlessly, when the main hardware/software fail or crash due to some reasons. ‘Fail-over testing’ is done to ensure that backup systems take up the work as intended, when the main systems fail.
‘Security testing’ is done to ensure that unauthorized personnel do not get access to information as also the chance to wreck the software application!
‘Usability testing’ is done to assess how ergonomic and user-friendly the software application is.
The list goes on, with different types of testing getting added on every now and then.
What special skills are needed for doing application certification?
Testing has a set of specific practices, and there is a body of knowledge including theories, techniques, libraries of common errors in specific technologies and so on. Some programming experience is good to have. Above all, an eye for detail and ability to understand the whole picture is required. Lot of negotiation skills and ability to deal with conflict, tact and diplomacy is also required as the tester’s job is to find defects in developers’ work and many times it may be taken personally.
The Cube, Galway Technology Centre, Mervue Business Park, Galway
Tel: +353 91 704849