Saturday 2 March 2013

What is Software Testing - Software Testing Tutorials

What is Software Testing - Software Testing Tutorials ?

Testing is the process of evaluating a system or its component(s) with the intent to find that whether it satisfies the specified requirements or not. It consists of all test life cycle activities like static and dynamic testing concerned with planning, preparation and evaluation of software products to determine that the software products satisfy customers requirements and are fit for customers use. Software Testing is done to find software defects or failures in advance.

According to Wikipedia:

Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.

Software testing can also be stated as the process of validating and verifying that a software program/application/product:
  • Meets the business and technical requirements that guided its design and development.
  • Works as expected; and
  • Can be implemented with the same characteristics.

According to the definition given by Hetzel :

Testing involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.

According to ANSI/IEEE 1059 standard :

Testing can be defined as A process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item.

What is Software Testing ?

Software testing is an investigation done to help stakeholders with information about the quality of the product or service under test, the main 3 activities done in software testing are
  • Verification
  • Error detection
  • Validation
Verification - Are we building the system right?
This process ensures that the system complies to standards & processes, the possible activities are evaluating documents, plans, code, requirements and specification.
Error Detection
Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn't or things don’t happen when they should.
Validation: Are we building the right system?
Determination of the correctness of the products with respect to the user needs and requirements. [Validation: ] Validation evaluates the product itself.

Seven Principles of Testing

  1. Testing shows presence of defects : Testing can show that defects are present, but cannot prove that there are no defects. 
  2. Exhaustive testing is impossible : Testing everything(all combinations of inputs and preconditions) is not feasible except for trivial cases. Instead of exhaustive testing, risk analysis and priorities should be used.
  3. Early Testing : To find defects early, testing activities shall be started as early as possible in the software or system development life cycle and shall be focused on defined objectives.
  4. Defect Clustering : A small number of modules usually contain most of the defects discovered during Pre release testing or is responsible for most of the operational failures.
  5. Pesticide Paradox : If the same tests are repeated over and over again, eventually the same set of test cases will no longer find any new defects. To overcome this, test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different parts of the software or system to find more defects.
  6. Testing is context dependent : Testing is done differently in different contexts.
  7. Absence of errors fallacy : Finding and fixing defects does not help if the system built is unusable and does not fulfill the user's needs and expectations.

What is the purpose of testing?

There are two fundamental purposes of testing: verifying procurement specifications and managing risk. First, testing is about verifying that what was specified is what was delivered: it verifies that the product (system) meets the functional, performance, design, and implementation requirements identified in the procurement specifications. 

Second, testing is about managing risk for both the acquiring agency and the system’s vendor / developer / integrator. The testing program is used to identify when the work has been “completed” so that the contract can be closed, the vendor paid, and the system shifted by the agency into the warranty and maintenance phase of the project.

Why is testing important?

A good testing program is a tool for both the agency and the integrator/supplier; it typically identifies the end of the “development” phase of the project, establishes the criteria for project acceptance, and establishes the start of the warranty period.

When in the SE Life-Cycle does testing occur?

In the System Engineering “V” Model for ITS, testing is the first step in Integration and Recompostition. However, while testing is shown as one stage of the life cycle, it is important to understand that testing is also a continuous process within the life cycle. Testing begins with writing the requirements; each requirement must be written in a manner that allows it to be tested. During the design stages, testing will be a consideration as design trade-offs are evaluated for their ability to satisfy the requirements. New requirements may emerge from the designs as choices are made to satisfy the requirements within the project’s constraints. Hardware components, software components, subsystems, and systems will be verified during the implementation and testing stages.

Final system-level tests will be performed to accept the system and demonstrate the system’s readiness for production service. However, testing activities will not end once the system is in operation; testing will continue as the operations and maintenance staff perform corrective, adaptive, and other system maintenance activities.

Click to know about White box testing and Black box testing and Gray box testing

6 comments:

  1. Great Article… I love to read your qa and testing services articles because your writing style is too good, its is very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

    ReplyDelete
  2. Thanks for Sharing Information to us. If Someone wants to know about QA and software testing this is the Right place for you...
    Software Testing Services
    Software Testing Company
    Software Testing Companies in USA
    QA Testing Companies
    Software Testing Services in USA

    ReplyDelete
  3. Thanks for sharing this informative content , Great work
    To crack scrum master interview : Agile coach Interview Questions

    ReplyDelete

Share your feedback and queries here. Your feedback are more valuable to us!