• 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.

  • 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
    • Notes
    • Test Design
      • Targets View slide
      • 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!