Testing
Testing
Testing
Objectives
• Finding defects which may get created by the programmer while
developing the software.
• Gaining confidence in and providing information about the level of
quality.
• To prevent defects.
• To make sure that the end result meets the business and user
requirements.
• To ensure the implemented software application satisfies the SR.
• To gain the confidence of the customers by providing them a quality
product.
Testing
• A test strategy is a document that describes the software testing approach to achieve testing objectives. This
document includes information about team structure and resource needs along with what should be prioritized
during testing. A test strategy is usually static as the strategy is defined for the entire development scope.
• A test plan usually consists of one or two pages and describes what should be tested at a given moment. This
document should contain:
• The list of features to be tested
• Testing methods
• Timeframes
• Roles and responsibilities (e.g. unit tests may be performed either by the QA team or by engineers)
• A test case specifications document is a set of detailed actions to verify each feature or functionality of a product.
Usually, a QA team writes a separate specifications document for each product unit. Test case specifications are
based on the approach outlined in the test plan. A good practice is to simplify specifications description and avoid
test case repetitions.
• Test checklist is a list of tests that should be run at a particular time. It represents what tests are completed and
how many have failed. All points in the test checklists should be defined correctly. Try to group test points in the
checklists. This approach will help you keep track of them during your work and not lose any. If it helps testers to
check the app correctly, you can add comments to your points on the list.
Test Plan Document
• Introduction • Environmental Needs
• Test Items • Responsibilities
• Features Not To Be Tested • Staffing And Training Needs
• Features To Be Tested
• Approach
• Schedule
• Item Pass/Fail Criteria • Risks And Contingencies
• Suspension Criteria And • Approvals
Resumption Requirements
• Test Deliverables
Testing Methods - Functional
• alpha testing
• beta/acceptance testing
• regression testing
• Unit Testing
• integration Testing
• system Testing
• Interface Testing
Alpha Testing
• It is the most common type of testing used in the Software industry.
The objective of this testing is to identify all possible issues or defects
before releasing it into the market or to the user.
• Alpha Testing is carried out at the end of the software development
phase but before the Beta Testing. Still, minor design changes may be
made as a result of such testing.
• Alpha Testing is conducted at the developer’s site. In-house virtual
user environment can be created for this type of testing.
Beta/Acceptance Testing
• Beta Testing is a formal type of Software Testing which is carried out by the
customer. It is performed in the Real Environment before releasing the product
to the market for the actual end-users.
• Beta Testing is carried out to ensure that there are no major failures in the
software or product and it satisfies the business requirements from an end-
user perspective. Beta Testing is successful when the customer accepts the
software.
• Usually, this testing is typically done by end-users or others. It is the final
testing done before releasing an application for commercial purpose. Usually,
the Beta version of the software or product released is limited to a certain
number of users in a specific area.
• So end-users actually use the software and share the feedback to the company.
Regression Testing
Testing an application as a whole for the modification in any module or
functionality is termed as Regression Testing. It is difficult to cover all
the system in Regression Testing, so typically Automation Testing
Tools are used for these types of testing.
Unit Testing
Testing of an individual software component or module is termed
as Unit Testing. It is typically done by the programmer and not by
testers, as it requires detailed knowledge of the internal program
design and code. It may also require developing test driver modules or
test harnesses.
Integration Testing
• Testing of all integrated modules to verify the combined functionality
after integration is termed as Integration Testing.
• Modules are typically code modules, individual applications, client
and server applications on a network, etc. This type of testing is
especially relevant to client/server and distributed systems.
• Incremental Integration Testing is a Bottom-up approach for testing i.e
continuous testing of an application when new functionality is added.
Application functionality and modules should be independent enough
to test separately. This is done by programmers or by testers.
System Testing
Under System Testing technique, the entire system is tested as per the
requirements. It is a Black-box type Testing that is based on overall
requirement specifications and covers all the combined parts of a
system.
Interface Testing
• The objective of this Interface Testing is to validate the interface as
per the business requirement. The expected interface of the
application is mentioned in the interface mockup screens.
• The Interface Testing includes the size of the buttons and input field
present on the screen, alignment of all text, tables, and content in the
tables.
• It also validates the menu of the application, after selecting different
menu and menu items, it validates that the page does not fluctuate
and the alignment remains same after hovering the mouse on the
menu or sub-menu.
Testing Methods – Non functional
• Performance Testing
• Load Testing
• Stress Testing
• Security Testing
• Usability Testing
Performance Testing
Performance Testing is done to check whether the system meets the
performance requirements. Different performance and load tools are
used to do this testing.
Load Testing
• Load Testing is a type of performance test where the application is
tested for its performance on normal and peak usage. The
performance of an application is checked with respect to its response
to the user request and its ability to respond consistently within an
accepted tolerance on different user loads.
• The key considerations are:
• What is the maximum load the application is able to hold before the
application starts behaving unexpectedly?
• How much data the Database able to handle before the system slows or the
crash is observed?
• Are there any network related issues to be addressed?
Stress Testing
• Stress Testing is used to find ways to break the system. The test also provides the
range of maximum load the system can hold.
• Generally, Stress Testing has an incremental approach where the load is increased
gradually. The test is started with a load for which the application has already been
tested. Then, more load is added slowly to stress the system. The point at which we
start seeing servers not responding to the requests is considered the breaking point.
• The following questions are to be addressed:
• What is the maximum load a system can sustain before it breaks down?
• How is the system break down?
• Is the system able to recover once it’s crashed?
• In how many ways a system can break and which are the weak node while handling the
unexpected load?
Security Testing
• It is a type of testing performed by a special team of testers. A system
can be penetrated by any hacking way.
• Security Testing is done to check how the software or application or
website is secure from internal and external threats. This testing
includes how much software is secure from the malicious program,
viruses and how secure and strong the authorization and
authentication processes are.
• It also checks how software behaves for any hackers attack and
malicious programs and how software is maintained for data security
after such a hacker attack.
Usability Testing
Under Usability Testing, User-friendliness check is done. The application
flow is tested to know if a new user can understand the application
easily or not, Proper help documented if a user gets stuck at any point.
Basically, system navigation is checked in this testing.