Software Testing
* It is the process used to identify the correctness,
completeness and quality of developed computer
software.
* It is the process of executing a
program/application under positive and negative
conditions by manual or automated means. It
checks for the.
Specification
 Functionality
 Performance
Software Verification
• Verification: The software should
confirm to its specification (Are we
building the product right?)
Software Validation
• Validation: The software should do what
the user really requires (Are we building
the right product?)
This is a Test
Spot the Difference
Find 4 Differences
Charaaaaaaaah!
Testing Methods
• Static
• Dynamic
• Black Box
• White Box
• Visual (GUI)
Testing Methods (continued)
• Static Testing
* Verification only.
* No execution of code.
* Find defects.
* Reviews, inspection.
Testing Methods (continued)
• Dynamic Testing
* Primarily verifications.
* Execution of code.
* Find failures.
Testing Methods (continued)
• Black Box Testing
* No knowledge of internal program
design or code required.
* Tests are based on requirements and
functionality.
Testing Methods (continued)
• White Box Testing
* Knowledge of the internal program
design and code required.
* Tests are based on coverage of code
statements, branches, paths,
conditions.
Testing Methods (continued)
• Visual (GUI) Testing
* GUI testing is the process of testing a
product’s graphical user interface to
ensure in meets its written specifications
like testing images and buttons alignment
on any webpage.
Testing Levels
• Unit Testing
• Integration Testing
• System Testing
Testing Levels (continued)
• Unit Testing
* Unit testing is a method by which individual
units of source code together with associated
control data 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.
Testing Levels (continued)
• Integration Testing
* Integration testing is the phase in which
individual software modules are combined and
tested as a group to make verify integrated system
is ready for system testing.
Types:
Big Bang Integration testing.
Top Down Integration testing.
Bottom Up Integration testing.
Mixed/Hybrid Integration testing.
Testing Levels (continued)
• Big Bang Integration Testing
* In this approach all individual modules are not
integrated until and unless all the modules are ready.
Testing Levels (continued)
• Top Down Integration Testing
* In this approach testing is conducted from main module
to sub module. if the sub module is not developed a
temporary program called STUB is used for simulate the
sub module.
Testing Levels (continued)
• Bottom Up Integration Testing
* In this approach testing is conducted from sub
module to main module, if the main module is not
developed a temporary program called DRIVERS is
used to simulate the main module.
Testing Levels (continued)
• Mixed/Hybrid Integration Testing
* Testing is mainly focused for the middle level
target layer and is selected on the basis of system
characteristics and the structure of the code.
Testing Levels (continued)
• System Testing
* The system as a whole is tested to uncover requirement
errors.
* Verifies that all system elements work properly and that
overall system function and performance has been achieved.
Types:
Alpha Testing
Beta Testing
Acceptance Testing
Performance Testing
Testing Levels (continued)
• Alpha Testing
* It is carried out by the test team within
the developing organization .
• Beta Testing
* It is performed by a selected group of
friendly customers.
Testing Levels (continued)
• Acceptance Testing
* It is performed by the customer to
determine whether to accept or reject the
delivery of the system.
• Performance Testing
* It is carried out to check whether the system
meets the nonfunctional requirements
identified in the SRS document.
Testing Types
• Functional Testing
* Functional tests tends to answer the question of
“can the user do this?” or “does this particular
feature work?”.
• Non Functional Testing
* Non-functional testing refers to aspects of the
software that may not be related to a specific
function or user action, such as scalability or other
performance, behavior under certain constraints,
or security.
Testing Types (continued)
Functional Testing
Types:
– Installation
– Development
– Usability
– Sanity
– Smoke
– Regression
– Destructive
– Recovery
– Automated
– User Acceptance
Non Functional Testing
Types:
– Compatibility
– Performance
– Security
– Accessibility
– Internationalization/Localization
Testing Types (continued)
• Installation Testing
* Installation testing focuses on what customers
will need to do to install and set up the new
software successfully.
• Development Testing
* Is a software development process that involves
synchronized applications of a broad spectrum of
defect prevention and detection strategies in order
to reduce software development risks, time, and
cost.
Functional Testing
Testing Types (continued)
• Usability Testing
* Is a technique used in user-centered
interaction design to evaluate a product by
testing it on user.
• Sanity Testing
* The sanity test which offers quick, broad,
and shallow testing determines whether it is
possible and reasonable to proceed with
further testing.
Functional Testing(continued)
Testing Types (continued)
• Smoke Testing
* Smoke testing is preliminary testing to reveal
simple failures severe enough to reject a
prospective software release.
• Regression Testing
* Software testing that seeks to uncover new
software bugs, or regressions, in existing areas of
a system after changes(such as enhancement,
patches or configuration changes) have been
made to them.
Functional Testing(continued)
Testing Types (continued)
• Destructive Testing
* Software testing which attempts to cause a
piece of software to fail in an uncontrolled
manner, in order to test its robustness.
• Recovery Testing
* Is the activity of testing how well an
application is able to recover from crashes,
hardware failures and other similar problems.
Functional Testing(continued)
Testing Types (continued)
• Automated Testing
* Test automation is the use of special
software (separate from the software being
tested) to control the execution of tests and
the comparison of actual outcomes to
predicted outcomes.
• User Acceptance Testing
* User acceptance testing (UAT) consist of a
process of verifying that a solution work for a
user.
Functional Testing(continued)
Testing Types (continued)
• Compatibility Testing
* Testing conducted on the application to evaluate the
application’s compatibility with the computing environment.
• Performance Testing
* Performance testing is generally executed to determine how
a system or sub-systems performs in terms of responsiveness
and stability under a particular work load.
Types:
– Load Testing
– Volume Testing
– Stress Testing
Non Functional Testing
Testing Types (continued)
• Security Testing
* Is a process to determine that an
information system protects data and
maintains functionality as intended.
• Accessibility Testing
* Accessibility is the degree to which a
product, device, services, or environment is
available to as many people as possible.
Non Functional Testing (continued)
Testing Types (continued)
• Internationalization and Localization
Testing
* Internationalization and Localization are
means of adopting computer applications
to different languages, regional differences
and technical requirements of a target
market.
Non Functional Testing (continued)
DOPE!

Software Testing Ni Boni

  • 2.
    Software Testing * Itis the process used to identify the correctness, completeness and quality of developed computer software. * It is the process of executing a program/application under positive and negative conditions by manual or automated means. It checks for the. Specification  Functionality  Performance
  • 3.
    Software Verification • Verification:The software should confirm to its specification (Are we building the product right?)
  • 4.
    Software Validation • Validation:The software should do what the user really requires (Are we building the right product?)
  • 5.
    This is aTest Spot the Difference Find 4 Differences
  • 6.
  • 7.
    Testing Methods • Static •Dynamic • Black Box • White Box • Visual (GUI)
  • 8.
    Testing Methods (continued) •Static Testing * Verification only. * No execution of code. * Find defects. * Reviews, inspection.
  • 9.
    Testing Methods (continued) •Dynamic Testing * Primarily verifications. * Execution of code. * Find failures.
  • 10.
    Testing Methods (continued) •Black Box Testing * No knowledge of internal program design or code required. * Tests are based on requirements and functionality.
  • 11.
    Testing Methods (continued) •White Box Testing * Knowledge of the internal program design and code required. * Tests are based on coverage of code statements, branches, paths, conditions.
  • 12.
    Testing Methods (continued) •Visual (GUI) Testing * GUI testing is the process of testing a product’s graphical user interface to ensure in meets its written specifications like testing images and buttons alignment on any webpage.
  • 13.
    Testing Levels • UnitTesting • Integration Testing • System Testing
  • 14.
    Testing Levels (continued) •Unit Testing * Unit testing is a method by which individual units of source code together with associated control data 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.
  • 15.
    Testing Levels (continued) •Integration Testing * Integration testing is the phase in which individual software modules are combined and tested as a group to make verify integrated system is ready for system testing. Types: Big Bang Integration testing. Top Down Integration testing. Bottom Up Integration testing. Mixed/Hybrid Integration testing.
  • 16.
    Testing Levels (continued) •Big Bang Integration Testing * In this approach all individual modules are not integrated until and unless all the modules are ready.
  • 17.
    Testing Levels (continued) •Top Down Integration Testing * In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary program called STUB is used for simulate the sub module.
  • 18.
    Testing Levels (continued) •Bottom Up Integration Testing * In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module.
  • 19.
    Testing Levels (continued) •Mixed/Hybrid Integration Testing * Testing is mainly focused for the middle level target layer and is selected on the basis of system characteristics and the structure of the code.
  • 20.
    Testing Levels (continued) •System Testing * The system as a whole is tested to uncover requirement errors. * Verifies that all system elements work properly and that overall system function and performance has been achieved. Types: Alpha Testing Beta Testing Acceptance Testing Performance Testing
  • 21.
    Testing Levels (continued) •Alpha Testing * It is carried out by the test team within the developing organization . • Beta Testing * It is performed by a selected group of friendly customers.
  • 22.
    Testing Levels (continued) •Acceptance Testing * It is performed by the customer to determine whether to accept or reject the delivery of the system. • Performance Testing * It is carried out to check whether the system meets the nonfunctional requirements identified in the SRS document.
  • 23.
    Testing Types • FunctionalTesting * Functional tests tends to answer the question of “can the user do this?” or “does this particular feature work?”. • Non Functional Testing * Non-functional testing refers to aspects of the software that may not be related to a specific function or user action, such as scalability or other performance, behavior under certain constraints, or security.
  • 24.
    Testing Types (continued) FunctionalTesting Types: – Installation – Development – Usability – Sanity – Smoke – Regression – Destructive – Recovery – Automated – User Acceptance Non Functional Testing Types: – Compatibility – Performance – Security – Accessibility – Internationalization/Localization
  • 25.
    Testing Types (continued) •Installation Testing * Installation testing focuses on what customers will need to do to install and set up the new software successfully. • Development Testing * Is a software development process that involves synchronized applications of a broad spectrum of defect prevention and detection strategies in order to reduce software development risks, time, and cost. Functional Testing
  • 26.
    Testing Types (continued) •Usability Testing * Is a technique used in user-centered interaction design to evaluate a product by testing it on user. • Sanity Testing * The sanity test which offers quick, broad, and shallow testing determines whether it is possible and reasonable to proceed with further testing. Functional Testing(continued)
  • 27.
    Testing Types (continued) •Smoke Testing * Smoke testing is preliminary testing to reveal simple failures severe enough to reject a prospective software release. • Regression Testing * Software testing that seeks to uncover new software bugs, or regressions, in existing areas of a system after changes(such as enhancement, patches or configuration changes) have been made to them. Functional Testing(continued)
  • 28.
    Testing Types (continued) •Destructive Testing * Software testing which attempts to cause a piece of software to fail in an uncontrolled manner, in order to test its robustness. • Recovery Testing * Is the activity of testing how well an application is able to recover from crashes, hardware failures and other similar problems. Functional Testing(continued)
  • 29.
    Testing Types (continued) •Automated Testing * Test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes to predicted outcomes. • User Acceptance Testing * User acceptance testing (UAT) consist of a process of verifying that a solution work for a user. Functional Testing(continued)
  • 30.
    Testing Types (continued) •Compatibility Testing * Testing conducted on the application to evaluate the application’s compatibility with the computing environment. • Performance Testing * Performance testing is generally executed to determine how a system or sub-systems performs in terms of responsiveness and stability under a particular work load. Types: – Load Testing – Volume Testing – Stress Testing Non Functional Testing
  • 31.
    Testing Types (continued) •Security Testing * Is a process to determine that an information system protects data and maintains functionality as intended. • Accessibility Testing * Accessibility is the degree to which a product, device, services, or environment is available to as many people as possible. Non Functional Testing (continued)
  • 32.
    Testing Types (continued) •Internationalization and Localization Testing * Internationalization and Localization are means of adopting computer applications to different languages, regional differences and technical requirements of a target market. Non Functional Testing (continued)
  • 33.