This document provides an introduction to software testing. It defines software testing as a process used to identify correctness, completeness, and quality of computer software. The key points covered include: why software testing is important; who should be involved in testing; when testing should start and stop in the software development lifecycle; the differences between verification and validation; types of errors; types of testing including manual and automation; methods like black box and white box testing; levels of testing from unit to acceptance; and definitions of test plans and test cases.
SOFTWARE TESTING
Softwaretesting is a process used to identify the correctness,
completeness and quality of developed computer software.
It is a process of executing a program / application under positive
and negative conditions by mutual or automated means. It checks
for the:-
Specification
Functionality
Performance
4.
WHY SOFTWARE TESTING?
Software testing is important as it may cause mission failure,
impact on operational performance and reliability if not done
properly
Effective software testing delivers quality software products
satisfying user’s requirements, needs and expectations.
5.
WHO SHOULD TEST?
In the IT industry, large companies have a team with
responsibilities to evaluate the developed software in context of
the given requirements.
Moreover, developers also conduct testing which is called Unit
Testing.
6.
In mostcases, the following professionals are involved in testing a
system within their respective capacities:
• Software Tester
• Software Developer
• Project Lead/Manager
• End User
Different companies have different designations for people who
test the software on the basis of their experience and knowledge
such as Software Tester, Software Quality Assurance Engineer,
QAAnalyst, etc.
7.
WHEN TO STARTTESTING ?
An early start to testing reduces the cost and time to rework and
produce error-free software that is delivered to the client.
It also depends on the development model that is being used.
For example, in the Waterfall model, formal testing is conducted
in the testing phase; but in the incremental model, testing is
performed at the end of every increment/iteration and the whole
application is tested at the end.
8.
Testing isdone in different forms at every phase of SDLC:
• During the requirement gathering phase, the analysis and
verification of requirements are also considered as testing.
• Reviewing the design in the design phase with the intent to
improve the design is also considered as testing.
• Testing performed by a developer on completion of the code is
also categorized as testing.
9.
WHEN TO STOPTESTING ?
It is difficult to determine when to stop testing, as testing is a never-ending
process and no one can claim that a software is 100% tested. The following
aspects are to be considered for stopping the testing process:
• Testing Deadlines
• Completion of test case execution
• Completion of functional and code coverage to a certain point
• Bug rate falls below a certain level and no high-priority bugs are identified
• Management decision
10.
VERIFICATION
Verification isthe process of confirming that – software meets its
specification , done through inspection and walkthroughs.
USE – To identify defects in the product early in the life cycle.
11.
VALIDATION
Validation isthe process confirming that it meets the user’s
requirement. It is actual testing.
TYPES OF TESTING
ManualTesting
Manual testing includes testing a software manually, i.e., without using any
automated tool or any script.
In this type, the tester takes over the role of an end-user and tests the
software to identify any unexpected behavior or bug. There are different
stages for manual testing such as unit testing, integration testing, system
testing, and user acceptance testing.
Testers use test plans, test cases, or test scenarios to test a software to ensure
the completeness of testing. Manual testing also includes exploratory
testing, as testers explore the software to identify errors in it.
17.
2.Automation Testing
• Automationtesting, which is also known as Test Automation, is
when the tester writes scripts and uses another software to test the
product. This process involves automation of a manual process.
Automation Testing is used to re-run the test scenarios that were
performed manually, quickly, and repeatedly.
• Apart from regression testing, automation testing is also used to test
the application from load, performance, and stress point of view. It
increases the test coverage, improves accuracy, and saves time and
money in comparison to manual testing.
18.
METHODS OF TESTING
1.BLACK BOX TESTING
No knowledge of internal program design or code required.
Test are based on requirements and functionality.
19.
2. WHITE BOXTESTING
Knowledge of the internal program design and code required.
Tests are based on coverage of code statements, branches,
paths, and condition.
20.
LEVELS OF TESTING
There are four levels of software testing:
1. Unit testing
2. Integration testing
3. System testing
4. Acceptance testing
ALPHA TESTING
Thistest is the first stage of testing and will be performed amongst the
teams (developer and QA teams). Unit testing, integration testing and
system testing when combined together is known as alpha testing.
During this phase, the following aspects will be tested in the application:
• Spelling Mistakes
• Broken Links
• Cloudy Directions
• The Application will be tested on machines with the lowest specification to
test loading times and any latency problems.
26.
BETA TESTING
Thistest is performed after alpha testing has been successfully performed.
In beta testing, a sample of the intended audience tests the application.
Beta testing is also known as pre-release testing.
Beta test versions of software are ideally distributed to a wide audience on
the Web, partly to give the program a "real-world" test and partly to provide
a preview of the next release.
27.
TEST PLAN
Atest plan is a systematic approach to testing a system i.e.,
software .
The plan typically contains a detailed understanding of what the
eventual testing workflow will be.
28.
TEST CASE
Atest case is a specific procedure of testing a particular
requirement .
It will include:
identification of specific requirement tested
test case success/failure criteria
Specific steps to execute
test data