0% found this document useful (0 votes)
83 views101 pages

MT S5 Levels

The document discusses different levels of software testing including unit testing, integration testing, system testing, and user acceptance testing. It provides details on unit testing, describing it as testing individual program units or modules, and integration testing, which involves combining units together and testing their interactions. The key aspects, approaches, benefits, and procedures for unit and integration testing are outlined.

Uploaded by

Sinduja Baskaran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views101 pages

MT S5 Levels

The document discusses different levels of software testing including unit testing, integration testing, system testing, and user acceptance testing. It provides details on unit testing, describing it as testing individual program units or modules, and integration testing, which involves combining units together and testing their interactions. The key aspects, approaches, benefits, and procedures for unit and integration testing are outlined.

Uploaded by

Sinduja Baskaran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 101

Agenda:

• Levels of Testing

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Levels of Testing:

• Unit Testing

• Integration Testing

• System Testing

• UAT

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Levels of Testing:

1. Unit Testing - Done by the developer at unit level

2. Integration Testing - Conducted by the project team


integrating the modules

3. System Testing - Conducted by project team or by


separate testing team if any

4. Acceptance Testing- Conducted by client either in


developer's site and at his site

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Unit Testing:

• A smallest separate portion such as programs, functions,


procedures and methods etc in the source code of the
application are called units.

• Testing conducted on these units to check does the code


behind these units are working as expected or not is
called unit testing.

• Unit testing is also called as Module testing/ Component


testing.

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Unit Testing:

• Approaches:

 Black Box

 White Box

• Benefits:

1. Ensures code meets the requirements

2. Simplifies integration

• Note: Debugging process is nothing but unit testing.

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Why Unit Testing:

1. Test early for each component and prevent the defect from being
carried forward to next stage.

2. To ensure that the design specifications have been correctly


implemented.

3. It is inefficient and ineffective to test the system solely as a ‘Big Black


Box’.

4. The viable approach is to perform a hierarchy of tests.

5. Ensure Reasonable and Consistent behavior at the Lowest level of the


Product.

6. Experience has shown that Unit Testing is cost effective.

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Unit testing to uncover errors like:

1. Comparison of different data types.


2. Incorrect logical operators or precedence.
3. Incorrect comparison of variables.
4. Improper or nonexistent loop termination.
5. Failure to exit when divergent iteration is encountered.
6. Improperly modified loop variables, etc.
7. Expectation of equality when precision errors makes
equality unlikely.

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Unit Testing Procedure:

1. Unit testing is normally considered as an adjunct to the


coding step.

2. Unit test case design begins ,once the component level


design has been developed, reviewed and verified.

3. A review of design information provides guidance for


establishing test cases that are likely to uncover errors.

4. Each test case should be coupled with a set of expected


results.

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Unit Test Steps:

1. The Unit test criteria, the Unit test plan, and the test
case specifications are defined.

2. A code walkthrough for all new or changed programs


or modules is conducted.

3. Unit Test data is created, program or module testing is


performed, and a Unit test report is written.

4. Sign-offs to integration testing must be obtained,


Sign-off can be provided by the lead programmer,
project coordinator, or project administrator.
DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL
Unit Testing Activities - 1

Field Level Checks:


• Null / Not Null Checks

• Uniqueness Checks

• Length Checks

• Date field Checks

• Numeric Checks

• Alphanumeric Checks

• Negative Checks

• Default Display
DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL
Unit Testing Activities - 2

Field Level Validation:


• To Test all Validations for an input field

• Date Range Checks

• Date Check validation with the system date

Functionality Checks:

• Screen Functionality

• Referential Integrity Checks

• Field Dependencies

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Unit Testing Activities - 3

User Interface Checks:


• Readability of the controls

• Tool Tips Validations

• Ease of usage of interface across

• Consistency with the user interface across the product

• User Interface dialogs

• Tab related checks for screen controls

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Integration Testing:

• Once unit testing is completed, programmer will combine


units together and check the interactions among all these
units, which are called integration testing.

• Starts at module level when various modules are


integrated with each other to form a sub-system or
system.

• More stress is given on interfaces between the modules.

• Focuses on design and construction of the software


architecture.
DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL
Integration Testing:

• Four Basic Approaches To Testing While Integrating


Modules

– Top Down

– Bottom Up

– Critical Part First

– Big Bang

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Why Integration Testing?

1. Data can be lost across an interface.

2. One module can have an inadvertent, adverse effect on


another.

3. Sub-functions, when combined, may not produce the


desired major function.

4. Individually acceptable imprecision may be magnified to


unacceptable levels.

5. Global data structures can create problems, and so on…

DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL


Integration Testing:

Top-Down Testing Strategy:

• Test the top layer or the controlling subsystem first.

• Then combine all the subsystems that are called by the tested
subsystems and test the resulting collection of subsystems.

• Do this until all subsystems are incorporated into the test.

• Special program is needed to do the testing, test stub.

• A program or a method that simulates the activity of a missing


subsystem by answering to the calling sequence of the calling subsystem
and returning back fake data.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 16


Integration Testing:

Top-Down Testing Strategy:

• Design, implement and test the top modules using stubs (or dummy
modules).

• Stubs do not perform any real computations or manipulate any real


data.

• Tests are conducted as each component is integrated.

• Stubs are removed and integration moves downward in the program


structure.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 17


Integration Testing:

Top-Down Testing Strategy:


A
Layer I

B C D
Layer II

E F G
Layer III

Test
Test A Test A, B, C, D A, B, C, D,
E, F, G

Layer I

Layer I + II

All Layers

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 18


Integration Testing:

Top-Down Testing Strategy:

Stub: A simulated program that replaces a called program is called stub.


Problem: A component being tested may call another that is not yet tested!

Solution: Write a special-purpose program to simulate the activity of the


missing component.

The special-purpose program is called a stub.

– If the lowest level of components performs the input and output


operations, stubs for them may be almost identical to the actual
components they replace.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 19


Integration Testing:

Top-Down Testing Pros:

• Any design faults or major questions about functional feasibility


can be addressed at the beginning of testing instead of the end.

• Early skeletal program allows demonstrations and boosts morale.

• Integrated Testing is done in an environment that closely


resembles that of the reality, so the tested product is more
reliable.

• Stubs are functionally simpler than drivers, and therefore they


can be written with less time.

• Interface errors are discovered early.


www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 20
Integration Testing:

Top-Down Testing Cons:

• Writing stubs can be difficult, because they must allow all


possible conditions to be tested.

• Stub may itself needed to be tested to insure it is correct.

• Very large number of stubs may be required.

• Unit Testing of lower modules can be complicated by the


complexity of upper modules.

• In the initial phase of Testing, it is difficult to do coding and


testing simultaneously.

• Errors in critical modules at low levels are found late.


www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 21
Integration Testing:

Bottom-up Testing Strategy:

• The subsystem in the lowest layer of the call hierarchy are


tested individually. Then the next subsystems are tested that
call the previously tested subsystems.

• This is done repeatedly until all subsystems are included in


the testing.

• Special program needed to do the testing, Test Driver.

• A routine that calls a subsystem and passes a test case to it.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 22


Integration Testing:

Bottom-up Testing Strategy:


• The program is combined and tested from the bottom of the tree
to the top.

• Requires a module driver for each module. Put together sub trees
and test until whole tree.

• Very common and effective approach, especially when combined


with the Object Oriented Design.

• Each component at the lowest level of the system hierarchy is


tested individually first, then next components to be tested.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 23


Integration Testing:

Bottom-up Testing Strategy:

A
Layer I

Test E
B C D
Layer II

Test B, E, F E F G
Layer III

Test F

Test C Test
A, B, C, D,
E, F, G

Test D,G

Test G

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 24


Integration Testing:

Bottom-up Testing :

Component Driver:
• A simulated program that replaces a calling program is called Driver.

• A special code to aid the integration.

• A routine that calls a particular component and passes a test case to it.

• Take care of driver’s interface with the test component.

• Driver is a calling module for low level components and is developed for
temporary use.

• It has to be replaced when the actual top level module is ready.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 25


Integration Testing:

Bottom-up Testing Pros:

• Advantageous if major flaws occur toward the bottom of the


program.

• Test conditions are easier to create.

• Many Programming and testing operations can be carried


out simultaneously, yielding apparent improvement in Software
Development effectiveness.

• Unit Testing of each module can be done very thoroughly.

• Errors in critical modules are found early.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 26


Integration Testing:

Bottom-up Testing Cons:

• Driver modules must be produced.

• The program as an entity does not exist until the last module is
added.

• Major control and decision problems will be identified later in the


testing process.

• We cannot test the program in the actual environment in which it


will be run.

• Many modules must be integrated before a working program is


available.
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 27
Integration Testing:

Sandwich Testing Strategy:

• Combines top-down strategy with bottom-up strategy.

• The system is view as having three layers

• A target layer in the middle

• A layer above the target

• A layer below the target

• Testing converges at the target layer

• How do you select the target layer if there are more than 3 layers?

• Heuristic: Try to minimize the number of stubs and drivers.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 28


Integration Testing:

Sandwich Testing Strategy: A


Layer I

C D
Test E B Layer II

E F G
Layer III
Bottom Test B, E, F
Layer Test F
Tests
Test
A, B, C, D,
Test D,G E, F, G
Test G

Test A,B,C, D

Top
Test A
Layer
Tests

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 29


Integration Testing:

Critical Part First:


• Design, implement and test the critical part of the system
first.

• Important for time critical systems, where the performance


of critical part makes up for performance of the whole
system.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 30


Integration Testing:

Big Bang Testing Strategy:

• A common approach in non-process oriented organizations.

• All modules are integrated at once.

• Many disadvantages and few advantages !!

• Hard to debug, hard to check interfaces

• Location of the defect is difficult to find

• No stubs and drivers are required

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 31


Integration Testing:

Big Bang Integration Testing

Module 1

Module 6 Module 2

System

Module 5 Module 3

Module 4

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 32


System Testing:

Pre-Condition:
• 100% unit & Integration test should be successful.

• All customer requirements should be base lined.

• All test cases & test data should be reviewed and


approved.

• Application should be successfully installed in the testing


environment.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 33


System Testing:

• System testing is testing conducted on a complete, integrated


system to evaluate the system's compliance with its specified
requirements.

• Validates that the system meets its functional and non-functional


requirements.

• It is also intended to test up to and beyond the bounds defined in


the software/hardware requirements specifications.

• Final phase of testing before delivery.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 34


System Testing:

• This system is broadly classified into

 Functionality system testing

 Non-functional system testing

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 35


System Testing:

Functionality System Testing:

• Checking the behavior of the system functionality with valid &


invalid inputs.

• Checking whether all the functionalities in the system working


fine or not as per the specifications.

Non-Functional System Testing:

• Checking whether all the Non functional specifications in the


system working fine or not as per the specifications.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 36


System Testing:

Special Test are grouped on the basis of applications under test and
the type of tests performed –

• Requirements Testing

• Smoke testing

• Sanity testing

• Formal testing

• In formal testing

• Risk based or Priority based testing

• Re-Testing
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 37
System Testing:

• Regression Testing

• Exploratory testing

• Monkey/gorilla/zigzag/rattle/uneven testing

• Error-handling testing

• Inter-systems testing

• Parallel testing

• GUI/UI testing

• Usability testing

• Security testing
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 38
System Testing:

• Configuration testing

• Load testing & Stress testing

• Performance testing

• Recovery testing

• Installation/Un-Installation testing

• Globalization /Localization testing

• Database Testing

• End to end testing

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 39


System Testing:

Specialized systems and applications:

1. Client-server systems

2. Web based systems

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 40


System Testing:

Requirements Testing:
• Every system is requirement tested.

• Process begins from requirement phase and continues until


operations and maintenance phase.

• Objectives include –

– User requirements are implemented

– Correctness is maintained

– Processing complies with organization’s policies and


procedures.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 41


System Testing:

Requirements Testing:
• Methods used include –

– Creation of a matrix to determine whether all


requirements are implemented.

– Use of checklist to verify whether system meets


organizational policies and governmental regulations.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 42


System Testing:

Smoke Testing:

• Checking the testability of the software is termed as Smoke


testing.

• Also known as a build verification testing / Basic functional


testing / Link testing.

• The Smoke test scenarios emphasize breadth more than


depth.

• Smoke tests can either be performed manually or using an


automated tool.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 43


System Testing:

Sanity Testing:

• Checking behavior of the system is termed as Sanity testing.

• Also called as narrow regression testing.

• Considered as subset of regression testing.

• Sanity testing is a focused narrow and deep, but cursory.

• Sanity tests are useful both for initial environment


validation and future interactive increments.

• Note: The objective of smoke testing or sanity testing is to


decide whether the application is testable or not to finding the
defects.
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 44
System Testing:

Formal Testing:

• If we test an application by following all pre-defined procedures


and proper documents, then it is called formal testing.

In Formal Testing:

• If we test an application as we wish i.e. without following any


procedures and documentation, then it is called informal testing.
This informal testing also called ad-hoc testing.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 45


System Testing:

Risk based testing or priority based testing:


• It is a process of identifying all business scenarios to be
validated then, pre-other the test execution. i.e. deciding
what to test next and what to test last and executing the
test in the same order.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 46


System Testing:

Re-Testing:

• Testing functionality repetitively, i.e. again and again is called


re-testing. Re-testing comes in the two scenarios.

 Testing functionality in any build with multiple inputs to


confirm business validations.

 Testing functionality in a modified build to confirm bug


fixers. It is also called as confirmation testing.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 47


System Testing:

Regression Testing:

• Re-running or re-executing the selective test cases for inter


connected features in the modified build is called regression
testing.

• It is the re-execution of some or all the test cases to check

 Any addition to the software

 Any deletion to the software

 Any modification or fixing of defect has not introduce any


defect in unchanged part of the software

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 48


System Testing:

Regression Testing:

• Can be at –

 Unit level

 Module level

 System level

• Is performed when there is a high risk that changes may affect


unchanged components.

• Re-running previously conducted tests to ensure that


unchanged components function correctly.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 49


System Testing:

Purpose of Regression Testing:

 Locate errors

 Increase confidence in correctness

 Preserve quality

 Ensure continued operations

 Check correctness of new logic

 Ensure continuous working of unmodified portions

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 50


System Testing:

Regression Testing Methods:

• Regression testing can be done either manually or by


automated testing tools.

– Manual testing: Can be done for small systems, where


investing in automated tools might not be feasible enough.

– Automated testing: One class of these tools is called as


Capture-playback tool. This is very helpful in situations
where the system undergoes lots of version changes.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 51


System Testing:

Exploratory testing:

• Exploring the application, add/modify existing test cases for


better testing is called exploratory testing.

Monkey/gorilla/zigzag/rattle/uneven testing:

• If we test an application in a zigzag way i.e. unevenly with an


intension of finding tricky effects then it is called “monkey
testing”. It is a part of Adhoc testing (recommended to be done
by senior/experience person).

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 52


System Testing:

Error - Handling Testing:

1. To determine the ability of the system to properly process


erroneous transactions

– All reasonably expected errors are recognizable by the


application system

– Procedures provide high probability that the errors will be


corrected properly

– Reasonable control over errors during correction

2. Should happen throughout development life cycle

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 53


System Testing:

Inter - Systems Testing:

1. Testing of interface between two or more application systems.

2. To determine whether –

– Parameters and data are correctly passed between applications

– Documentation for the involved systems is accurate and complete

3. Should be conducted whenever there is a change in parameters


between applications.

4. Representative set of test transactions is prepared in one system and


passed to another system for processing and results are verified for
correctness.
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 54
System Testing:
Parallel Testing:
1. Comparison of results from two different systems (old v/s new or manual v/s
automated)

2. To determine whether –

– New version of application or new system performs correctly with reference to


existing system that is working correct

– There is consistency or inconsistency between two systems

3. Still used while accepting a new system

4. Same input data should be used in both systems

5. Input data may be modified as per requirement of new system

6. The new system is used in parallel with the existing system for certain period

7. Thorough cross-checking of the outputs and comparison with outputs from existing
system
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 55
System Testing:

Compliance Testing:
1. With Respect to Processes:-

2. Performed to check whether system was developed in accordance with standards,


procedures and guidelines

3. To determine whether –

1. Development and maintenance methodologies are followed

2. Completeness of system documentation

4. Depends upon the management’s desire to have the standards enforced

5. Use of checklists

6. Peer reviews

7. SQA reviews

8. Internal audits
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 56
System Testing:

GUI/UI testing:
• Validating/checking does the user interfaces are professionally designed
or not is called “GUI/UI testing”.
Checklist:
 A check does the basic elements are available or not.

 Check spelling of the element/controls/objects.

 Check alignments of objects.

 Check consistency in background colour, font type, font size etc.

 Check does the mandatory fields are highlighted or not.

 Check links and images are displaying alternative descriptions (tool


tip) when they are highlighted.
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 57
System Testing:

User Interface testing:


• Performed to check how user-friendly the application is

• To determine whether –

– Appropriate input help is displayed on screen

– Correct messages are displayed when an error is encountered

– Columns have meaningful names

– Navigation within the application is easy

• Should be performed without assistance of system personnel

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 58


System Testing:

Usability testing :
• Validating the user friendliness of the application i.e. checking
does the application is understandable and opera table by all
types of users or not is called “usability testing”.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 59


System Testing:

Usability testing :
1. Performed to check ease of use of an application

2. To determine –

– How simple it is to understand application usage

– How easy it is to execute an application process

3. Direct observation of people using the system

4. Usability surveys

5. Beta tests

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 60


System Testing:

Usability testing :
1. Checks for human factor problems :

– Are outputs meaningful?

– Are error diagnostics straightforward?

– Does GUI have conformity of Syntax, conventions, format,


style abbreviations?

– Is it easy to use?

– Is there an exit option in all choices?

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 61


System Testing:

Usability testing :
2. It should not

– Annoy intended user in function or speed

– Take control from the user without indicating when it will


be returned

3. It should

– Provide on-line help or user manual

– Consistent in its function and overall design

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 62


System Testing:

Compatibility testing:

• Testing does the application is compatible with different


hardware and software environments is called “compatibility
testing” or “cross-browser testing”.

• Software compatibility includes operating system


compatibility and browser compatibility.

• Cross-browser testing is one where we check application on


various browsers.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 63


System Testing:

Compatibility testing:

1. Similar to multi-platform testing.

2. Performed to ensure that application functions properly on


multiple system configurations.

3. More significant in case of web-based applications where any


browser can be used to access the application.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 64


System Testing:

Installation testing:

• Checking are we able to install the application successfully or


not as per the guidelines given in installation document i.e.
read me file is called “installation testing”.

Un-installation testing:

• It is a process of checking or we able to uninstall a product


successfully or not.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 65


System Testing:

Installation testing:

1. To identify the ways in which installation procedures lead to


incorrect results

2. Determines whether –

– Installation procedure is documented

– Personnel are trained in installation process

– Methodology for migration from old system to new system


is documented

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 66


System Testing:

Globalization testing:
• Checking does the system is having a provision of changing
languages, currency, date and time etc…if it is designed for
global users.
Localization testing:
• Checking the default languages, currency, date and time format
etc…when an application developed for local users is called as
“localization testing”.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 67


System Testing:

Recovery testing:
• Checking how does the system is handling the unexpected or
unpredictable situations like power failures, system crash etc
is called “recovery testing”

• It also validating does the system is having a provision of back-


up and restore options and checking these operations are
working as expected or not is also called “recovery testing”.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 68


System Testing:

Recovery testing:
1. To determine whether operations can be continued after a
disaster or after integrity of the system has been lost

2. Involves reverting to a point where the integrity of the system


was known and then re-processing transactions up to the
point of failure

3. Is used where continuity of operations is essential

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 69


System Testing:

Recovery testing:
Determines whether –

– Adequate backup data is preserved.

– Backup data is stored in secured location and is easily


retrievable.

– Recovery process is documented.

– Recovery personnel are trained.

– Recovery tools are available.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 70


System Testing:

Configuration Tests:

1. Determine the effect of adding or modifying resources

– Memory

– Disk drives

– CPU

– Network Card

2. Test for compatibility issues

3. Determine minimal and optimal hardware and software


configuration

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 71


System Testing:

Security testing :
• Validating does all security conditions are properly build in
the system or not is called “security testing”.

Checklist:

 Check for authorization:


– Authorization testing: checking does the system is having a
provision of creating login accounts, settings and changing
permissions or not is called “authorization testing”.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 72


System Testing:

Security testing :
 Check for authentication:
– Authentication testing: checking does the system is able to
recognize the register users and displaying the right info to the
right user or not is called as “authentication testing”.

 Check Firewall Leakage


– Firewall Leakage testing: It is a type of testing where users will
enter into the application as one level of user and try to access
the application beyond the limits. Hence checking when the user
is trying to do the activities beyond the limits whether the
firewall is blocking or not is called Firewall Leakage Testing.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 73


System Testing:

Security testing :
 Check for Encryption.

 Check for Decryption.

 Verify whether the URLS are secured or not.

 Check for session expiry.

 Check for direct url access for secured pages.

 Check browser navigations, i.e. back and forward options for


secured pages.

 Verify the cookies.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 74


System Testing:

Performance Testing:
• Analysing various efficiency characteristics of the system
such as response time, through put, load, volume, stress,
resources, consumption, tps/tpm (transaction per
second/minute) and transaction mix is collectively called as
“performance testing”.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 75


System Testing:

1. Is to determine whether the system meets its performance


requirements.

2. e.g. x transactions should be processed in y seconds or data should


be retrieved in z seconds with say 100 concurrent users.

3. Can also be called as compliance testing with respect to


performance.

4. Design should address performance issues.

5. Design verification can help in determining whether required


measures have been taken to meet performance requirements.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 76


System Testing:

Performance Testing Process:

Step 1 Step 2 Step 3


Planning Execution Reporting
Understand Setup the Generate custom reports
requirements environment based on:
· Simulated Load
Test Planning Generate Scripts
· Round Time
Tool Identification Conduct the Test · Response time
· CPU Utilization
Problem
· Memory utilization
Investigation
· Disk utilization Etc

Load, Stress and Scalability Testing

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 77


System Testing:

Load Testing:

1. Load testing is subjecting a system to a statistically


representative load.

2. It is done to determine if the system performance is


acceptable at pre-determined load level.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 78


System Testing:
Stress Testing:

1. Whether system continues to function when subjected to large volumes (larger

than expected)

2. Areas that may be subjected to test include –

– Input transactions

– Internal tables

– Disk space

– Communication channels etc.

3. System should run as it would in production environment

4. Should be performed when there is uncertainty about volume of expected work

that the system can handle


www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 79
System Testing:

Database Testing:
• Checking the impact of the front end operations with back end and vice
versa is called DB Testing.

Why Database Testing?

• Software applications are more complex these days with technologies


like android and also with lots of smart phone apps.

• The more complex the front ends, the back ends are even more
intricate.

• So, it is all the more important to learn about DB testing and be able to
validate the databases effectively to ensure secure and quality
databases.
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 80
System Testing:

Database Testing Process:


• Prepare the environment

• Run a test

• Check test result

• Validate according to the expected results

• Report the findings to the respective stakeholders

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 81


System Testing:

What to Test in Database :


• Data Mapping

• Atomicity

• Consistency

• Isolation

• Durability

• Data Integrity

• Business rules conformity

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 82


System Testing:

Database Testing Approaches:

• Manually

• Automation Tools- ETL Tool

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 83


System Testing:

End to end testing:


• It is a process of identifying all core/important business
scenarios in the system testing and testing these scenarios
right from one to the other end including the data integration
(recommended to be done by domain expert).

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 84


Client - Server Systems:

1. Key components of client-server technology

– Client installation

– Security

– Data

– Standards

2. Testing should be adjusted to address these four key components

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 85


Web - Based Systems:

Key factors:
– Security
– Performance

– Correctness

– Compatibility

– Reliability

– Data integrity

– Usability

– Recoverability

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 86


Web - Based Systems:

Security:
– External intrusions

– Secured transactions

– Viruses

– Access control

– Authorization
Performance (Load testing):
– Concurrency

– Stress

– Throughput

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 87


Web - Based Systems:

Correctness:

– Functionality

– Calculations

– Navigation

Compatibility:

– Operating system

– Browser

Reliability:

– Consistently correct results

– Server and system availability


www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 88
Web - Based Systems:

Data integrity:

– Correct data is accepted

– Data stays in correct state

Usability:

– Easy to use and understand

– Navigation is correct

Recoverability:

– Lost connections

– Client system crashes

– Server system crashes


www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 89
UAT- User Acceptance Testing:

• Testing conducted on the completed application by domain experts or


by end users to confirm whether the application is ready for live
production or not is called as “user acceptance testing”.

• Final stage of testing before the system is accepted for operational use.

• Done with data supplied by the client/ Domain Experts.

• Validates –

1. User Needs (Functional)

2. System Performance (Non-Functional)

• Is the process of comparing a program to its requirements.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 90


UAT- User Acceptance Testing:

• Testing the system with the intent of confirming readiness of the


product and customer acceptance.

• The performance and reliability of the system will be tested and


confirmed.

• Formal testing conducted to enable a user, customer or other authorized


entity to determine whether to accept a system or component.

• An acceptance test is a test that the user defines, to tell whether the
system as a whole works the way the user expects.

Purpose:

– The purpose of acceptance testing is to verify system from user


perspective.
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 91
UAT- User Acceptance Testing:

Assumptions/Pre-Conditions:
• Completed system and regression testing

• All the defects must be fixed successfully

• Configuration Manager access

• Test data (optional)

• Final versions of all documents ready

• Overview to the testing procedures

• Exit decision

• Specific procedures

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 92


UAT- User Acceptance Testing:

Assumptions/Pre-Conditions:
• Acceptance Criteria MUST be documented

– Acceptance Testing

– Project stakeholders

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 93


UAT- User Acceptance Testing:

Expectations:

• Verification from the user’s perspective

• Performance testing should be conducted again

• Extra time

• User manual to the testers

• Non-testable requirements

• Review with the Sponsor and User

• Plans for the Implementation

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 94


UAT- User Acceptance Testing:

Stages of UAT:

– Alpha Testing

– Beta Testing

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 95


UAT- User Acceptance Testing:

Alpha Testing:

• Tested at developer site by customer.

• Developer "looks over shoulder" and records


errors & usage problems.

• Tests conducted in a controlled environment.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 96


UAT- User Acceptance Testing:

Beta Testing:

• Beta testing conducted at one or more customer sites by


end user of software.

• Live application environment cannot be controlled by


developer.

• Customer records all problems encountered and reports


to developer at regular intervals.

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 97


Summary:

In this Session, we have learnt about:

1. Levels of testing

2. Integration techniques

3. Functional and Non-functional testing types

4. Classification of Software applications based on the


architecture

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 98


Review Questions:

1.You are supposed to integrate a new but extensive database module to


the existing Payroll module; which of the following integration
strategies will be the appropriate one?

a) Top-down integration strategy

b) Bottom-up integration strategy

c) Sandwich integration strategy

d) Bing bang integration strategy

2. Component drivers will have some functionality and where as the


Stubs are dummy.

a) TRUE

b) FALSE
www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 99
Review Questions:

3. Unit Testing both black-box and White-box testing in it.

a)TRUE

b) FALSE

4. During UAT the integration strategies are required and


Top-down approach is the most used method.

a) TRUE

b) FALSE

www.talentsprint.com DO NOT DISTRIBUTE – HIGHLY CONFIDENTIAL 100


Question and Answer

10

You might also like