Professional Documents
Culture Documents
LEVELS OF TETSING
Need For Testing
•In this phase of unit testing planning the general approach to unit testing is outlined.
The test planner:
This phase requires information from the unit specification and detailed
design description.
The planner determines which features of each unit will be tested, for
example: functions, performance requirements, states, and state transitions,
control structures, messages, and data flow patterns.
If some features will not be covered by the tests, they should be
mentioned and the risks of not testing them be assessed.
Input/output characteristics associated with each unit should
also be
identified, such as variables with an allowed ranges of values
and
performance at a certain level.
Phase 3: Add Detail to the Plan
•In this phase the planner refines the plan from previous two phases.
•The planner adds new details to the approach, resource, and scheduling
portions of the unit test plan.
•Unit availability and integration scheduling information should be included in
the revised version of the test plan.
•The planner must be sure to include a description of how test results will be
recorded.
•Test-related documents that will be required for this task, for example, test logs,
and test incident reports, should be described, and references to standards for
these documents provided. Any special tools required for the tests are also
described.
Designing the unit tests:
•Unit test design is a part of preparation work for unit test. It is important to
specify:
Test cases
Test procedures
Test cases:
•It’s a tabularized form of test case data
•It is easy to use and reuse
•Test case components are arranged in the form of semantics network components
part are object id, test case- id, purpose.
•Test case design specification includes: list of relevant states, messages,
exceptions, interrupts.
•Test case design at unit level on 2 types: black box tests, white box tests
(i) the units becomes available from the developers (an estimation
of availability is part of the test plan),
(ii) the test cases have been designed and reviewed, and
(iii) the test harness, and any other supplemental supporting tools, are
available.
Integration test:
Module 6
Module 4 Module 5
Driver
program
Sub module
Hybrid integration testing :
•It is a combination/ construction of top- down and bottom- up testing approaches
Advantages:
• Easily combine modules(sub modules and main modules)
• It helps to developers effectively
Disadvantages: Main module
Stub
Sub program
2
Stub prog 3
Big bang integration approach:
All components or modules are integrated simultaneously, after which everything is
tested as a whole.
Advantages:
Everything is finished before integration testing starts
Disadvantages:
Time consuming
Difficult to trace the case of failures
Sub module
Main module 3
Sub module
5
Sub module
4
DESIGNING INTEGRATION TEST:
Integration tests for procedural software can be designed using a
• Black box approach
• white box approach
• both
Tests engineers must concentrate on
• Input / output parameter
• Calling relationships(function/ procedure)
• Test engineers must check the parameters whether they are incorrect order or
type
•The above example integrate 2 procedures(procedure X, procedure Y)
•Here procedure Y integrate with procedure X and procedure X integrate with
procedure Y with help of input parameter 3 and 4.
•Input parameter 3 and 4 used by procedure Y and returns a value for the output
parameters
•Lhs, rhs are variables
•Designing integration test for conventional system:
• In conventional input/output parameters and relationship are described in
structure chart.
•Here black box testing is provided to check all functionality, ability and
performance, etc
•Designing integration test for object oriented system:
•Integration testing of clusters of classes also involves building test harness which
in this case are special classes of objects built especially for testing.
•At the cluster level inter class method integration is tested
Integration Test Planning
• Functional testing
• Performance testing
• Security testing
Usability testing:
• In general a system level testing starts with usability.
• Its used in user- centered interaction design to evaluate a product by
testing it on users
• Here the testing teams follow 2 techniques,
UI testing (user interface testing)
Ease to use, look and feel, interface speed
Manual support testing
1. Functionality testing:
It is also called as “requirement testing”
It validates “correctness of every functionality of the system”
It covers following coverage,
Behavioral coverage, error handling coverage, input domain
coverage, service level coverage
2. Input domain testing:
• It is a part of functionality testing.
• Boundary value analysis
• Equivalence class partitions
3. Recovery testing:
• It is also called as “reliability testing”
• During this, test engineers validates whether our application build change from
abnormal state to normal state or not ?
4.Compatibility testing:
• It is also called as probability testing
• It is tested whether our application build run on customer expected platform or not?
5. Configuration testing:
• It is also called as “hardware compatibility testing”
• It tests whether our application build run on different technology hardware devices
or not?
6. Inter system testing:
• It is also called “end to end testing”
• It checks whether our application build coexistence with other existing
software to share common resources or not?
7. Sanitation testing:
• It is also called as garbage testing.
• During test, engineers find extra functionality in build
8. Installation testing:
• It also called as “Implementation testing”.
• It checks whether application is successfully installed and working .
9.Parallel testing:
• It is also called as “comparative testing”.
• It finds competitiveness of our application product through compare with
other competitive product in the market
Performance testing:
It is expensive testing division of black box testing
Teams concentrate on speed of processing in application build
It is classified into
Load testing : checks customer expected configuration and expected load to
estimate the performance.
Stress testing : un-interval load to estimate the performance
Storage testing : test under huge amount of resources to estimate storage
limit
Data volume testing : to estimate the volume of data in terms of no of
records
Security testing:
Concentrate on “privacy to user operations” in our application
It is classified into subtests:
• Authorization : whether the user is authorized or not?
• Access control: whether a valid user has permission to use specific service
or not?
• Encryption/ decryption : Information are to be received in the form of
encrypted/ decrypted format or not?
• It checks:
• Sender performs encryption or not?
• Receiver performs decryption or not?
Acceptance testing:
• It is performed to determine whether or not the software system has
met the requirement specifications.
• Purpose:
• To evaluate the systems compliance with business requirements and
verify if it has met required criteria for delivery
• Who ?
• It’s done by users or customer with the help of testing and
development people.
• Goals:
• To establish confidence of the system
• To focus on validation type testing
• Demonstration and proof of an accurate work than a software testing
Benefits:
• Functions and features to be tested are known
• Details of tests are known
• It permits regression testing
• Acceptability criteria are known
Acceptance criteria:
•Functional correctness and completeness
•Data integrity
•Data conversion
•Usability
•Performance
•Timeliness
•Scalability
•Documentation
Performance testing:
• It is the process of determining the speed or effectiveness of a
computer, network, software program or device.
• It measure the quality of the system, such as scalability, reliability,
resource usage.
• Factors :
– Throughput : measure the capability of system
– Latency : delay between application, OS performance
– Tuning : performance is known by giving many values to product
parameters
– Bench marking : compare with competitive products
– Capacity planning : to know about resources and configurations
– Performance testing techniques:
• Load testing
• Stress testing
• Soak testing
• Spike testing,etc
Performance testing process:
1. Requirement collection
6. Performance tuning
Challenges:
• Relevant skill is a major problem when doing a performance testing.
• It requires large amount of resources
• Test results must needs to reflect user expectation and real life environment
• Relevant tool selection process is a challenged one
• Lack of seriousness of performance tests.
Regression testing:
The re execution of tests on modified build to endure bug fix works
and possibilities of side effects occurrence.
Purpose:
The purpose of regression testing is to confirm that a recent program
or code change has not adversely affected existing features.
Needs:
• Change in requirements and code
• New features is added to the software
• Defect fixing
• Performance issue fix
Types:
1. Normal/regular regression tests : to verify if the build has not broken any
other parts of the application
2. Final regression tests : To validate that build has not changed for period of
time.
When?
• Whenever any code is changed
• When the bug/defect is reopens
• Particular amount of defect found and repeated
• Fixed defects create additional defects/ bugs
• One functionality depends on another functionality
Regression steps:
Purpose:
• It is used to check if the code can handle all international
support without breaking functionality that might cause data
loss or data integrity issues.
Enable the code
6. Localization testing
Release
(English
version) Release
(international
version)
1. Enabling testing:
• It’s a white box testing methodology
• It ensures that the source code used in the software allows I18N
• An activity of code review or code inspection mixed with some tests cases
for unit testing, which an objective to catch I18N defects is called
“enabling testing”
• It uses a check list.
• Check the code for API/function calls
• Check the code for hard coded data/currency format/ ASCII characters
constant
• Check the code to see that there are no computations done on date
variables
• Check the dialogue box and screen
• Ensure all the messages
• Ensure no string operation is performed in code
2. Locale testing:
• Changing the different location using the system setting or environment
variables and testing the software functionality, number, date, time and
currency format.
• It uses check list
• Hot keys, function keys and help screens are tested with many application
locales
• Date/ time format are in line with defined locale of language
• Time zone information and day light saving time calculations
• Currency is in line with the locale selected language
3. I18N testing and validation
It is different from testing
The objective of I18N are,
Software is tested for functionality with ASCII,DBCS and European characters
Software treats and works for string operation sorting, sequencing operations
Software display is convenient with characters, which are NON ASCII in GUI,
menus
Check list are
• Functionality in all language and locale are the same
• Sorting / sequencing the items to be as per the convention of language and
locale
• Input of software can be in non ASCII or special characters
• The display of non ASCII characters are displayed as entered
• Cut/copy and paste of non ASCII characters retain their style after pasting
4. Fake language testing
It helps to software translators to catch the translation and localization issues
It helps to identify the issues proactively before the product is localized
Checks list are
Ensure software functionality is tested for single byte or double bytes
Ensure all strings are displayed properly
Ensure the screen width, size, pop-ups and dialogue box
5. Language testing
• It also called as language compatibility testing
• It ensures that the functionality of software is not broken on other
language setting and its still compatible
• Check list are
• Check the functionality on English, one non English and double byte
language platform combination
• Check the performance of key functionality on different language
platforms
6. Localization testing
• It performed to verify the quality of a software's localization for a
particular target culture/locale and is executed only on localized version
of the product
• It helps to check resources attributes
• To find typographical errors
• To verify the system adherence to input and display environment
standards
AD-HOC TESTING
It is performed without planning and documenting
Tester tries to break the system by randomly trying the systems functionality
Planned test issues:
Lack of clarity
Lack of skills for doing tests
Lack of time for test design
Ad hoc testing vs planned testing
4. Code
5. Test
6. Refractor
7. Automate
Long execution cycle may be required Only few weeks of execution are
for Alpha testing. required for Beta testing.
Alpha testing is to ensure the quality of Beta testing ensures that the product is
the product before moving to Beta ready for real time users.
testing.
TESTING OBJECT ORIENTED SYSTEM:
Testing an object oriented system should tightly integrate data and
algorithm.
It covers following topics
1. Unit testing a class: Smallest testable unit is the encapsulated class
or object. Do not test operation from one another
2. Putting classes to work together : It focuses on groups of classes
that collaborate of communicate in some manner. Object oriented
approach has hierarchical control structure to conventional top-
down and bottom up integration
3. System testing: Different classes may be combined together and
this may load to new defects.
4. Regression testing: Changes to one components may have side
effects on another
5. Tools for testing object oriented systems: use cases, class
diagram, sequence diagram, activity diagram, state diagram
Use
• cases
Use cases represent various tasks that a user will
perform when interacting with the system.
Class
•
diagrams
It represents different entities and the relationships among then
entities.
• Few parts of class diagrams are,
Boxes
Association
Generalization
Sequence
•
diagrams
A Sequence diagram is an interaction diagram that shows
how processes operate with one another and in what order.
Activity
diagrams
• Activity diagrams are graphical representations of workflows of
stepwise activities and actions with support for choice, iteration
and concurrency.
State
diagrams
• A state diagram describes the behaviour of a single object in response
to a series of events in a system.
CONFIGURATION TESTING
• It is called as hardware compatibility testing
• Testers validates whether our application build run on different
technology hardware devices or not?
• Eg: printers, different technology LAN cards, different LAN
topologies, etc
• Different configuration possibilities are,
• PC, components, peripherals, interfaces, options and memory and
device drivers
Sizing up the job:
• There are huge no of display cards, bund cards, moderns available
in network. These combination are not possible to tests. Because
total no of combination testing may be billions
These sizing up problem is solved by,
1. Equivalence partitions
2. Boundary value analysis
APPROACHING THE TASK :
1. Decide the types of hardware you will need
2. Decide what hardware brands, models and device drivers are
available
3. Decide which hardware features, modes and options are possible
4. Page down the identified hardware configuration to a manageable
set.
5. Identify your software unique features that work with hardware
configuration
6. Design the test cases to run on each configuration
7. Execute the tests on each configuration
8. Return the tests until the results satisfy your team
Obtaining the hardware:
• Every tester on team to have different hardware set up
• Create and maintain good relationship with manufacture
• Collect all required hardware in your team and purchase remaining
for cheap
Configuration testing other hardware:
• It is done by 3 steps
• Create equivalence class partition of hardware based on inputs
from people who work with the equivalent, your project manager
on your sales people
• Develop test cases and collect the selected hardware and run the
tests
• Follow the configuration testing approaches
TESTING THE DOCUMENTATION
• It is a non functional testing
• It involves testing of documented artifacts that are usually developed
before or during the testing of software
• It helps to estimate the testing efforts required, test coverage, requirement
tracking/tracing, etc
Why?
• It provides step by step processing
• Documented software is easily tested
• Improved usability
• Improve reliability
• Lower support costs
Overview:
• Documentation is now a major part of software system
• It might exceed the amount of source code
• It must be integrated into software
• Tester has to cover the code and documentation.
Classes of software documentation:
1. Packing text and graphics
2. Marketing material, ads and other
3. Warranty/ registration
4. End user license agreement
5. Users manual
6. Online help
Loosely coupled to the code:
• Apply techniques on specification testing and software inspection
• Think of it as technical editing or proof reading
Eg: user manual
Tightly coupled to code:
Apply techniques such as black box and white box testing
Eg: documents are an integral part of the software such as training system
Documentation testing check list
1. General areas (audience, terminology & content)
2.Terminology
– It is suitable for the audience
– Terms used consistently
– Abbreviations for acronyms
3. Content and subject matter
– Appropriate subject covered?
– No subjects missing?
– Proper depth?
4.Just the facts
– All information technically correct?
– Correct table of contents, index, chapter references
– Correct websites URLs, phone numbers?
5. Step by step
– Any missing steps?
6. Figures and screen captures
– Accurate and precise
– Are they from the latest version of software?
7. Samples and examples
8. Spelling and grammar
WEBSITE TESTING
• Website testing, a software testing technique exclusively adopted to test the
applications that are hosted on web in which the application interfaces and
other functionalities are tested.
• Web sites testing done for 3 tier applications
Web server
Manipulates data
DB server
Stores data
Concerns:
• Browser compatibility
• Functional correctness
• Integration
• Usability
• Security
• Performance
• Verification of code
Web page fundamentals:
• Internet page contains
• Text of different sizes
• Fonts and colors
• Graphics and photos
• Hyperlinked test, images
• Rotating ads
• Text fields
Website creation is also complex, because
• Customizable layouts
• Customized contents
• Dynamic changes of text
• Dynamic layout
• Dynamic changes of drop down selection boxes.
Different testing types:
• Black box testing : it is used to test text, hyperlinks, forms, graphics, etc
• Gray box testing: it is mixture of white and black box. It helps to test
HTML code
• White box testing : test internal part of source code, need knowledge on
website system structure
• Configuration/ compatibility testing : must follow possible configuration
hardware and software
• Usability testing, it gives the better appearance, look and feel for websites
Website creation is also complex, because
• Customizable layouts
• Customized contents
• Dynamic changes of text
• Dynamic layout
• Dynamic changes of drop down selection boxes.
Different testing types:
• Black box testing : it is used to test text, hyperlinks, forms, graphics, etc
• Gray box testing: it is mixture of white and black box. It helps to test
HTML code
• White box testing : test internal part of source code, need knowledge on
website system structure
• Configuration/ compatibility testing : must follow possible configuration
hardware and software
• Usability testing, it gives the better appearance, look and feel for websites
COMPATIBILITY TESTING
• It is also called as portability testing. During this test, test engineers
validates that whether our application build run on customer expected
platforms or not?
• Software compatibility testing satisfy following requirements,
– OS, web browser, operating environment
– Compatibility standards and guidelines
– Type of data and share information with other platforms and software
Build OS
Forward : it will work with future versions of the software ex: oracle- win 98,
XP
Build OS
Notepad run on
MS Dos
Notepad run on
windows 10
Notepad run on
windows 2000
Mydata.txt
Notepad run on
windows 8
Notepad run on
windows XP
Notepad run on
windows 7
Impact of testing multiple versions:
• Programmers have made numerous bug fixes and performance
improvements and have added many new features to the code.
• There could be 10 or 100 of 1000 of existing programs for current
versions of the OS