|What is 'Software Testing'?
Software Testing is the operating of a system or application under controlled conditions, and evaluating results arising from those controlled conditions. This evaluation must include both normal and abnormal conditions.
|What is 'Software Quality Assurance'?
Software Quality Assurance is the monitoring and improving of the entire software development process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with.
|What is the 'Software Quality Gap'?
The difference in the software, between the state of the project as planned and the actual state that has been verified as operating correctly, is called the software quality gap.
|Why does software have bugs?
Business Requirements - Inadequate understanding & conversion of business requirements into functional specifications
Software complexity - The complexity of current software applications may be difficult to comprehend for anyone without experience in modern-day software development.
Programming errors - Programmers "can" make mistakes.
Changing requirements - A redesign, rescheduling of engineers, effects on other projects, etc. If there are many minor changes or any major changes, known and unknown dependencies among parts of the project are likely to interact and cause problems, and the complexity of keeping track of changes may result in errors.
Time pressures - Scheduling of software projects is difficult at best, often requiring a lot of guesswork. When deadlines loom and the crunch comes, mistakes will be made.
Poorly documented code - It's tough to maintain and modify code that is badly written or poorly documented; the result is bugs.
Software development tools - Various tools often introduce their own bugs or are poorly documented, resulting in added bugs.
|Why outsource testing?
Skill and Expertise - "Testing" is a specialized skill and task. Outsourcing of testing to a specialist testing partner provides the opportunity to leverage and deploy best practices.
Focus - Using a dedicated and expert test team allows the development team to focus on sharpening their core skills in design and development in their domain areas.
Independent assessment - Independent test teams are unbiased and look afresh at each test project. They bring with them both experience and knowledge acquired across a diverse spectrum of applications.
Save time - Testing by an independent test team can happen simultaneously along with the software development life cycle. This ensures delivery of a quality end product within the scheduled time.
Reduce Cost - Outsourcing testing projects to a specialist testing partner provides the flexibility of having a large test team, only when needed. This reduces carrying costs, ramp-up time and additional expenditure on infrastructure and optimises resource utilization.
|Why the Focus on Testing?
Published data shows that the largest component in the cost of quality is the cost of rectification. This cost is not only in terms of money, but also in terms of time lost to market, thereby resulting in loss of market share..Studies further suggest that more than 50% of the effort involved in developing large software applications is devoted to testing and for life-critical software; the testing effort may be even larger. With less time to market the product and rapid changes in technology, development cycles ar ebeing squeezed. Short and manageable development cycles are promoting specific skill zones as part of the engineering process. And of course, "Testing" is emerging as the activity to make short life cycles a viable proposition.
Advantages of Outsourced Testing
Demand for Reliable Software: - In critical applications like web, banking, financial, and risk management, the business risks of defective software have increased tremendously. A minor failure in an application could spell doom for the organization. In such a scenario, testing assumes great importance.
Insufficient Numbers of Qualified Testers: - Good quality testers who can come into an organisation and get a grip of the situation at a very short notice are in short supply. Finding them is extremely difficult and retaining them even more so.
Professional Testing and Quality Standards: - Software development companies lay emphasis on strict standards of coding. Likewise, there are testing standards that are dedicated to testing software. Therefore, a product that is developed within a framework of high coding standards and tested by a professional testing partner with quality standards, will have greater reliability.
|What is software 'quality'?
Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable. However, quality is obviously a subjective term. It depends on who the 'customer' is and their overall influence in the scheme of things. A wide-angle view of the 'customers' of a software development project might include end-users, customer acceptance testers, customer contract officers, customer management, the development organization's management/accountants/testers/sales people, future software maintenance engineers, stockholders, magazine columnists, and so on. Each type of 'customer' has their own slant on 'quality'. The accounting department might define quality in terms of profits, while an end-user might define quality as user-friendly and bug-free.
|What is the size and impact of major computer system failures caused by software bugs?
The following media reports illustrate the costs of defective software:
|How to select off-shore vendor?
An off-shore vendor can be selected on the basis of the following factors: