Glance through a typical requirements specification, project plan, test specification or quality plan and you’ll see the phrase “high-quality software”.
But how do we ensure that high quality is achieved?
In an attempt to ensure product quality, companies currently employ a small army of test engineers to perform extensive system testing. Unfortunately, with the ever increasing complexity of software and shortening times-to-market, this approach is proving ineffective; and is leading to a mixture of dissatisfied customers, product recalls and even legal action.
There are also a number of disadvantages to using this part of the product lifecycle as the gatekeeper:
- Designs are not necessarily adequately tested
- Project slippage may lead to compressed timescales for testing and increased pressure to deliver on time
- A lack of testing competence in the development team
- Third-party test teams may not have the project or domain experience to identify or rectify quality issues
Typically, the earlier in the development process a bug is found, the cheaper it is to fix in the long term.
A better alternative is to build in software quality by moving much of the software verification and validation effort to the people best placed to test it - those who coded the software in the first place. Unfortunately, many programmers have never been taught the appropriate skills required to effectively test their own software.
The concept of Effective Testing means employing multiple verification and validation techniques across the development lifecycle, ranging from high-integrity testing (e.g. MC/DC) and static analysis, up to modern Agile techniques such as TDD.
Organisations who use Effective Testing have found that as quality issues are identified and addressed earlier in the project, it saves time and costs, and gives a better customer experience!
Feabhas is pleased to introduce a new course specifically designed for software developers (rather than test engineers) who want to learn how to do more rigorous testing during product development.
Please click on the course links to find out more.
- T-101 – Verification and Validation for Managers
- TC-401 – Embedded Software Testing with C
- T-201 – Software testing fundamentals
- NEW: TC++-401 – Embedded Software Testing with C++
This new 4 day course provides an introduction to the concepts and practices of testing embedded software across the entire development lifecycle.
It includes practical exercises in software verification and Agile development practices on embedded systems.