• Save
Software Testing - Day One
Upcoming SlideShare
Loading in...5

Software Testing - Day One






Total Views
Views on SlideShare
Embed Views



1 Embed 6

http://www.slideshare.net 6



Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.


11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • hi govardhan reddy can you send me the pdf files of testing which you have placed here my mail id navindhanireddy@gmail.com
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Software Testing - Day One Software Testing - Day One Presentation Transcript

    • Software Testing – Day One _____________________________________ By Govardhan Reddy M
    • Agenda
      • Software Testing
        • Why?
        • Purpose?
        • Terminologies?
      • Notes
      • Test Design
        • Targets
        • Techniques
          • Black Box
          • White Box
          • Gray Box
    • Software Testing
      • Process of executing an application with the intent of finding bugs.
      • Process of demonstrating that errors are not present.
      • Process of establishing confidence that a program does what it is supposed to do.
    • Software Testing - Why...
      • Here are some important defects that bettter testing would have found.
        • In October 1999 the $125 million NASA Mars Climate Orbiter – an interplanetary weather satellite was lost in space due to a data conversion error. Investigators discovered that the software on the spacecraft performed certain calculations in English units (yards) when it should have used metric units (meters).
                      • (Cont...)
    • Software Testing - Why...
        • In June 1996 the first flight of the European Space Agency's Ariane 5 rocket failed shortly after launching, resulting in an uninsured loss of $500,000,000. The disaster was traced to the lack of exception handling for a floating-point error when a 64-bit integer was converted to a 16-bit signed integer.
    • Software Testing - Purpose...
      • Verification
      • Validation
      • Error Finding
    • Software Testing - Purpose...
      • Verification
        • Whether we built the project right?
        • Typically involves reviews and meetings to evaluate:
          • Documents, Plans, Code, Requirements & Specifications.
        • Can be done with:
          • Checklists, Issues lists, walkthrouhs and inspection meetings.
    • Software Testing - Purpose...
      • Validation
        • Whether we built the right project?
        • Typically involves actual testing.
        • Tasks are designed to ensure that
          • Internal design is valid.
          • Meets user expectations / business requirements.
        • Validation takes place after verifications.
    • Software Testing - Purpose...
      • Error Finding
        • Failure points of the application.
          • Failure: Variance between expected and actual result.
        • Defects introduced in the:
          • SRS: Software Requirement Specification.
          • PRD: Product Requirement Document.
          • FDD: Funtional/Feature Design Document.
    • Software Testing - Terminologies...
      • Error:
        • Discrepancy between expected and actual result.
        • Flaws that exists due to improper coding.
        • Undesirable output which negates the requirement.
        • Occurs in the syntax level (syntax error).
        • Error could be in:
          • Environment
          • Application
          • Resource associated with testbed setup.
    • Software Testing - Terminologies...
      • Bug:
        • Error found before the application goes into production.
      • Defect:
        • Error found after the application goes into production.
    • Software Testing - Terminologies...
      • Note:
        • Error can be at any stage:
          • Development
          • QA
          • After Release
        • Error can be a Bug or Defect.
    • Software Testing - Terminologies...
      • Test Strategy:
        • An elaborate and systematic plan of action.
        • High level system wide expression of major activities that collectively achieve the overall desired result.
        • Identifies Risks, Constraints and Exposures present.
        • Introduces significant added value to the plan.
    • Software Testing - Terminologies...
      • Test Strategy: Cont...
        • Statements are expressed in high level terms of
          • Physical components and activities.
          • Resources (People and Machines).
          • Types and Levels of Testing.
          • Schedules.
        • Plan will be specific to the system being developed.
    • Software Testing - Terminologies...
      • Test Plan:
        • Collection of test cases.
        • Test plans are normally written from the requirements documents and from the specifiation.
          • PRD: High Level Design Document (HLD)
          • FDD: Functional Design Document (LLD)
          • SRS: HLD and/or LLD
    • Software Testing - Terminologies...
      • Test Case:
        • Detailed procedure that fully tests a feature or an aspect of a feature.
        • Trigger event that starts the test.
        • One or more data values which are generated as a result of the input(s) being processed (output).
        • Tools and data required to allow the test to execute (the environment).
    • Software Testing - Terminologies...
      • Test Case: Cont...
        • Manner inwhich it is depicted varies between organizations.
        • Most test cases are in the form of a table.
        • eg.
      • Test Data:
        • Data included in the test case.
      Test Name Design Step Description Expected Result Actual Result Pass/Fail Criteria Estimated Time Platform Remarks
    • Software Testing - Terminologies...
      • Test Script:
        • Set of instructions that will be performed on the SUT (System Under Test) or DUT (Device Under Test) to test that the system/device functions as expected.
        • Manual Scripts = Test Cases
        • Automated Scripts:
          • Written in a programming language used to test part of the functionality of the system software.
    • Software Testing - Terminologies...
        • Automated Scripts: Cont...
          • Programs can be written using
            • Special automated functional GUI test tools
              • HP QTP, Borland Silk Test, Rational Robot
            • Well known programming languages
              • C++, C#, TCL, Perl, Expect, Java, PHP, Powershell, Python or Ruby.
      • Build:
        • Compiled version of code.
    • Test Design - Targets...
      • Understanding the sources of:
        • Test cases
        • Test coverage
        • How to develop and document test cases
        • How to build and maintain test data
    • Test Design Techniques – Black Box...
      • Black Box Testing:
        • No usage of internal structure knowledge.
        • Focus on testing functional requirements.
        • Tester would only know legal inputs and what expected outputs will be, But not know what program actually arrives to those outputs.
        • Testing against the specification and no other knowledge is required.
    • Test Design Techniques – Black Box...
      • Synonyms:
        • Behavioral
        • Funtional
        • Opaque (not clearly understand)
        • Closed Box
      Note: Behavioral is not Black Box, As usage of internal knowledge is not strictly forbidden.
    • Test Design Techniques – Black Box...
      • Black Box Testing – Techniques:
      According to Beizer:
      • Testing the system software in to its intended (planned) use by performing a standardized task.
      • General order to design tests are
        • Clean tests against requirements.
        • Additional
          • Structural tests for branch coverage as needed.
          • Tests for data flow coverage as needed.
    • Test Design Techniques – Black Box... According to Beizer: Cont...
        • Domain tests not covered by the above.
        • Special techniques as appropriate
          • Syntax, loop, state etc.,
        • Any dirty tests not covered above.
    • Test Design Techniques – Black Box...
      • Graph Based:
        • Test cases are designed based on nature of the relationships. i.e. Links and objects among the program.
          • Transaction Flow: Transaction validated or not?
          • Finite State Modeling: Particular state?
          • Data Flow Modeling: Object Object.
          • Timing Modeling: Execution times?
    • Test Design Techniques – Black Box...
      • Equivalence Class Partitioning:
        • Input domain is divided in to classes of data from which test cases are derived.
        • eg.
      1 - 20 1 - 9 10 - 20 Note: 1. Test for digit 1, If passed, Then no need to test for digits 2 – 9 2. Test for digit 10, If passed, Then no need to test for digits 11 - 20
    • Test Design Techniques – Black Box...
      • Boundary Value Analysis:
        • Range/Values/Boundaries.
        • eg.
          • On Boundary: min, max
          • In Boundary: min + 1, max - 1
          • Out Boundary: min – 1, max + 1
      1 - 20 1,20 2,19 0,21
    • Test Design Techniques – Black Box...
      • Error Guessing:
        • eg. mm/dd/yyyy – 02/29/2009
          • February 29 th in the year 2009 is not possible as it is not a leap year.
    • Test Design Techniques – Black Box...
      • Advantages:
        • More effective for major projects.
        • No internal is knowledge is required.
        • Tester and programmer are independent.
        • Tests are done from users point of view.
        • Test cases will be designed as soon as specifications are ready.
        • Will help to expose unclearness in the specification.
    • Test Design Techniques – Black Box...
      • Disadvantages:
        • Only small number of possible inputs can be tested.
        • Tests are hard to design without clear and concise specifications.
        • May leave many program paths untested.
        • May be unnecessary repetition of test cases – if the tester was not informed of the test cases for which the programmer has already tried.
        • Most testing research has been detected towards glass box testing.
    • Test Design Techniques – White Box...
      • White Box Testing:
        • Usage of internal structure knowledge.
        • Used to detect errors by means of execution-oriented test case.
        • Consideration:
          • Allocation of resources to perform
            • Class Analysis
            • Method Analysis
            • And to develop and review the same.
    • Test Design Techniques – White Box...
      • Synonyms:
        • Structural
        • Glass Box
        • Clear Box
        • Open Box
    • Test Design Techniques – White Box...
        White Box Testing – Techniques
      • Code Coverage Analysis: (By Mc. Cabe) will exercise basic set which will execute every statement at least once.
        • Basis Path Testing:
          • Flow Graph: Control flow notation representation.
          • Cyclomatic Complexity: Gives quantitative measure of logical complexity.
    • Test Design Techniques – White Box...
        • Control Structure Testing:
          • Conditional Testing
            • Relational Expressions
            • Simple Condition
            • Compound Condition
            • Boolean Expression
          • Data Flow Testing:
          • Loop Testing:
            • Simple
            • Concatenated
            • Nested
            • Unstructured
    • Test Design Techniques – White Box...
      • Design by Contract: DBC specifies requirements such as:
        • Conditions that
          • The client must meet before a method is involved.
          • The method must meet after it is executed.
        • Assertions that a method must satisfy at specific points of execution.
    • Test Design Techniques – White Box...
      • Profiling:
        • Provides a framework for analyzing java code performance for speed and heap (collection of objects) memory use.
        • Leads to improve CPU time performance.
    • Test Design Techniques – White Box...
      • Error Handling:
        • Proper error recovery notifications and logging are checked against references to validate program design.
        • Exception and error handling are checked thoroughly by operating an error causing test vectors.
    • Test Design Techniques – White Box...
      • Transactions:.
        • To ensure ACID properties.
          • Atomicity, Consistency, Isolation, Durability
        • Transactions are checked thoroughly for partial/complete commits besides rollbacks.
    • Test Design Techniques – White Box...
      • Advantages:
        • Forces test developer to reason carefully about implementation.
        • Approximate the partition done by equivalence.
        • Reveals errors in hidden code.
        • Beneficent side effects:
          • Helps in removing extra lines of code which can bring in hidden defects.
    • Test Design Techniques – White Box...
      • Disadvantages:
        • Expensive because a skilled tester is required.
        • Case omitted (leave undone) in the code could be missed out.
        • It is nearly impossible to look into every bit of code to find out hidden errors, Which may create problem, resulting in failure of the application.
    • Test Design Techniques – Gray Box...
      • Gray Box Testing:
        • Includes both
          • Black Box (50%) and
          • White Box (50%)
      • Synonyms:
        • Translucent.
    • Software Testing - Notes
      • Don't terminate an issue just because you are unable to reproduce,
      It could kill your company.
      • When you are unable to reproduce an issue, Think out of the box,
      • Think out of the black box.
      • Hate the product while testing and love the product after its release
      • - Emotional Testing.
    • Questions?
    • Thank You!