Print Page | Close Window

Basic about testing

Printed From: One Stop Testing
Category: Software Testing @ OneStopTesting
Forum Name: Beginners @ OneStopTesting
Forum Discription: New to the Club...!!! Don't Worry, We are here for you...!!! Learn the very basics of Software Testing and other pertinent Informations.
URL: http://forum.onestoptesting.com/forum_posts.asp?TID=448
Printed Date: 18Jul2025 at 1:38am


Topic: Basic about testing
Posted By: jack45
Subject: Basic about testing
Date Posted: 02Apr2007 at 4:04am

In general, http://www.answers.com/topic/software-engineering - software engineers distinguish software http://www.answers.com/topic/fault-technology - faults from software http://www.answers.com/topic/failure - failures . In case of a failure, the software does not do what the user expects. A fault is a programming error that may or may not actually manifest as a failure. A fault can also be described as an error in the http://www.answers.com/topic/correctness-2 - correctness of the http://www.answers.com/topic/semantics - semantic of a computer program. A fault will become a failure if the exact computation conditions are met, one of them being that the faulty portion of computer http://www.answers.com/topic/computer-software - software executes on the http://www.answers.com/topic/central-processing-unit - CPU . A fault can also turn into a failure when the software is ported to a different hardware platform or a different compiler, or when the software gets extended. Software testing is the technical investigation of the product under test to provide stakeholders with quality related information.

Software testing may be viewed as a sub-field of http://www.answers.com/topic/software-quality-assurance - Software Quality Assurance but typically exists independently (and there may be no SQA areas in some companies). In SQA, software process specialists and auditors take a broader view on software and its development. They examine and change the software engineering process itself to reduce the amount of faults that end up in the code or deliver faster.

Regardless of the methods used or level of formality involved the desired result of testing is a level of http://www.answers.com/topic/confidence - confidence in the software so that the organization is confident that the software has an acceptable defect rate. What constitutes an acceptable defect rate depends on the nature of the software. An arcade video game designed to simulate flying an airplane would presumably have a much higher tolerance for defects than software used to control an actual airliner.

A problem with software testing is that the number of http://www.answers.com/topic/computer-bug - defects in a software product can be very large, and the number of http://www.answers.com/topic/computer-configuration - configurations of the product larger still. Bugs that occur infrequently are difficult to find in testing. A http://www.answers.com/topic/rule-of-thumb - rule of thumb is that a system that is expected to function without faults for a certain length of time must have already been tested for at least that length of time. This has severe consequences for projects to write long-lived reliable software.

A common practice of software testing is that it is performed by an independent group of testers after the functionality is developed but before it is shipped to the customer. This practice often results in the testing phase being used as project buffer to compensate for project delays. Another practice is to start software testing at the same moment the project starts and it is a continuous process until the project finishes.

Another common practice is for test suites to be developed during technical support escalation procedures. Such tests are then maintained in http://www.answers.com/topic/regression-testing - regression testing suites to ensure that future updates to the software don't repeat any of the known mistakes.

It is commonly believed that the earlier a defect is found the cheaper it is to fix it.

  Time Detected
Time Introduced    Requirements    Architecture    Construction    System Test    Post-Release   
Requirements 1 3 5-10 10 10-100
Architecture - 1 10 15 25-100
Construction - - 1 10 10-25

Source: Steve, McConnell (2004). Code Complete, Second Edition. Microsoft Press, 960. ISBN 0-7356-1967-0. 

In counterpoint, some emerging software disciplines such as http://www.answers.com/topic/extreme-programming - extreme programming and the http://www.answers.com/topic/agile-software-development - agile software development movement, adhere to a " http://www.answers.com/topic/test-driven-development - test-driven software development " model. In this process http://www.answers.com/topic/unit-testing - unit tests are written first, by the programmers (often with http://www.answers.com/topic/pair-programming - pair programming in the extreme programming methodology). Of course these tests fail initially; as they are expected to. Then as code is written it passes incrementally larger portions of the test suites. The test suites are continuously updated as new failure conditions and corner cases are discovered, and they are integrated with any regression tests that are developed.

Unit tests are maintained along with the rest of the software source code and generally integrated into the build process (with inherently interactive tests being relegated to a partially manual build acceptance process).

The software, tools, samples of data input and output, and configurations are all referred to collectively as a http://www.answers.com/topic/test-harness - test harness .




Print Page | Close Window