Software Testing Short Note
Software Testing Short Note
To save time.
To save money
To check errors.
To identify whether there are bugs or not.
To identify whether requirements achieve or not.
To avoid harmfulness to people, environment, companies, and other system.
Identify the cause of software bug.
Error – a human action that produces an incorrect result.
Fault – an error in software also known as a defect or bug.
Failure – deviation of the software from its expected delivery or service.
Requirement Analysis
Test Planning
Test Designing
Test Execution
Test Closure
Requirement Analysis
After SRS (System Requirement Specification) is ready the testing team starts a
high level analysis concerning application under test. (What to test/how to test).
The requirements may be functional or non-functional.
This phase will produce Requirement Traceability Matrix (RTM) document.
This document will link requirements throughout the validation process.
This purpose of RTM document is to ensure that all requirements define for a
system are tested.
Activities perform
Define the scope.
Prepare the RTM document.
Automation analysis.
Test Planning
Test Designing
This phase involves creation, verification and rework of test cases and test
scripts.
Test data is identified, created and is reviewed.
Deliverables are test cases, test scripts and test data.
Activities perform
Create test cases.
Review test cases and test scripts.
Create test data
Test Case,
Set of conditions under which a tester will determine whether a system under
test satisfies requirements or work correctly.
This may include test case identifier, test case name, objective, test
conditions, input data requirements, test procedure, expected results.
A good test case,
Use only one thing to test at a given time.
Ensure that all positive scenarios and negative scenarios are covered.
Write in a simple language, use active voice and use exact names.
Test Script
A test script is a set of instructions that is performed on a system under test to
verify that the system perform as expected.
Written using a scripting languages. (Javascript, python).
Used to automated tested.
Activities perform
Test Execution
Execution of test cases/scripts in the test environment is done.
Bugs will be reported back to development team for correction and retesting
will be performed.
Activities perform
Test Closure
Evaluate cycle completion criteria based on time, test coverage, cost, critical
business objectives, and quality.
Document the learning out of the project.
Prepare test closure report.( Document that gives a summary of all the test
conducted during the STLC).
Test results analysis.
SDLC – Software Development Life Cycle
Planning
Analyses
Designing
Development
Testing
Implementation
Maintenance
Test Models
V Model
Spiral Model
Waterfall Model (Sequential Model)
Incremental Model
Iterative Model
V Model
System testing
System test planning
System Design
and designing
Integration testing
Integration test
Architectural
planning and designing
Design
Coding
Check the entire system functionality and the communication of the system
with external systems.
Checks compatibility issues with the other systems available in the user
environment.
Also discovered defects in the actual user environment.
Advantages Disadvantages
Waterfall Model
Requirement Analysis
System Design
Implementation
Testing
Deployment
Maintenance
Requirement Analysis
All the units developed in the implementation phase are integrated into a
system after testing of each unit.
Then the entire system is tested for any faults.
Deployment
Once the functional and non-functional testing is done the product deploy in
the customer environment and also release into the market.
Maintenance
Testing Levels
Unit Testing
Unit testing is a method by which individual units of source code are tested to
determine if they are fit for use. A unit is the smallest testable part of an
application like functions / procedures, classes, interfaces.
A unit test provides a strict, written contract that the piece of code must satisfy.
As a result, it affords several benefits. Unit tests find problems early in the
development cycle.
Integration Testing
This testing begins with unit testing followed by tests of progressively higher
level combinations of units called modules or builds.
Top Down Testing
Highest level modules are tested first and progressively lower level modules are
tested after that.
System Testing
It verify whether all the system elements have been integrated & perform the
allocated functions.
System testing is so important because of the following reasons:
First step in the Software Development Life Cycle, where the application
is tested as a whole.
The application is tested thoroughly to verify that it meets the functional
and technical specifications.
The application is tested in an environment which is very close to the
production environment where the application will be deployed.
Enables tp test, verify and validate both the business requirements as
well as the Applications Architecture.
Acceptance Testing
Acceptance tests are not only intended to point out simple spelling mistakes,
cosmetic errors or Interface gaps, but also to point out any bugs in the
application that will result in system crashers or major errors in the application.
There are also legal and contractual requirements for acceptance of the system
Alpha testing
Alpha testing is one of the most common software testing strategy used in
software development. It’s specially used by product development
organizations.
Alpha testing is testing of an application when development is about to
complete. Minor design changes can still be made as a result of alpha testing.
Alpha testing is final testing before the software is released to the general
public. It has two phases:
In the first phase of alpha testing, the software is tested by in-house
developers. They use either debugger software, or hardware-assisted
debuggers. The goal is to catch bugs quickly.
In the second phase of alpha testing, the software is handed over to
the software QA staff, for additional testing in an environment that is
similar to the intended use.
Beta testing
It is also known as field testing. It takes place at customer’s site. It sends the
system to users who install it and use it under real-world working conditions.
Originally, the term alpha test meant the first phase of testing in a software
development process. The first phase includes unit testing, component testing,
and system testing. Beta testing can be considered “pre-release testing.
Testing Varieties
Functional Testing
White-Box Testing
• White box testing is the detailed investigation of internal logic and structure of
the code.
• White box testing is also called glass testing or open box testing.
• In order to perform white box testing on an application, the tester needs to
possess knowledge of the internal working of the code.
• The tester needs to have a look inside the source code and find out which
unit/chunk of the code is behaving inappropriately.
White box testing involves the testing of the software code for the following:
The testing can be done at system, integration and unit levels of software
development.
One of the basic goals of white box testing is to verify a working flow for an
application.
It involves testing a series of predefined inputs against expected or desired
outputs
so that when a specific input does not result in the expected output, you have
encountered a bug.
Steps to perform White Box Testing
Unit testing
Functional testing
Non-functional testing
Regression testing
Tools used for Black box testing largely depends on the type of black box testing
you are doing.
QTP,
Selenium
Loadrunner,
Jmeter
– Large numbers of moderately skilled testers can test the application with no
knowledge of implementation, programming language or operating systems.
– Limited Coverage since only a selected number of test scenarios are actually
performed.
– Inefficient testing, due to the fact that the tester only has limited knowledge
about an application.
– Blind Coverage, since the tester cannot target specific code segments or error
prone areas.
– The test cases are difficult to design.