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.- 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 DetectionTesting 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
- Testing shows presence of defects : Testing can show that defects are present, but cannot prove that there are no defects.
- 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.
- 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.
- 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.
- 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.
- Testing is context dependent : Testing is done differently in different contexts.
- 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
Very valuable post...! This information shared is helpful to improve my knowledge skill. Thank you...!
ReplyDeletesoftware testing services
software testing companies
Regression testing services
Performance testing Services
Test automation services
Nice Post.. really helpful to clear my small concepts. thanks :)Keep doing more, waiting to read your next blog.
ReplyDeletequality assurance and testing services
Software testing and Quality Assurance Services
Software testing companies in USA
End to end Performance testing services in USA
Performance testing services company
security testing services company
Test automation service providers
QA Services company
mobile app testing services
Well written articles like yours renews my faith in today's writers. The article is very informative. Thanks for sharing such beautiful information.
ReplyDeleteSoftware Testing Services
Software Testing Services in India
Software Testing Companies in India
QA Testing Services in India
QA Testing Companies In India
QA Testing Services
Software Testing Companies
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.
ReplyDeleteThanks for Sharing Information to us. If Someone wants to know about QA and software testing this is the Right place for you...
ReplyDeleteSoftware Testing Services
Software Testing Company
Software Testing Companies in USA
QA Testing Companies
Software Testing Services in USA
Thanks for sharing this informative content , Great work
ReplyDeleteTo crack scrum master interview : Agile coach Interview Questions