Software Testing - IT Telkom by hcj

VIEWS: 0 PAGES: 31

									Software
Testing
By: tim pengajar 2010/2011
Testing Definition

 To tell somebody that he is wrong is called
 criticism. To do so officially is called
 testing.

 (softwarefundamentals.com)
Signs That You're Dating A Tester

   Your love letters get returned to you marked up with red
    ink, highlighting your grammar and spelling mistakes.

   When you ask him how you look in a dress, he'll actually tell
    you.

   He won't help you change a broken light bulb because his
    job is simply to report and not to fix.

   He'll keep bringing up old problems that you've since
    resolved just to make sure that they're truly gone.

(http://ajoysingha.info/jokes.aspx)
Is this worthed ?
Experience Counts
   There was a software tester who had an exceptional gift for finding bugs.
    After serving his company for many years, he happily retired. Several
    years later, the company contacted him regarding a bug in a multi-
    million-dollar application which no one in the company was able to
    reproduce. They tried for many days to replicate the bug but without
    success.
    In desperation, they called on the retired software tester and after much
    persuasion he reluctantly took the challenge.
    He came to the company and started studying the application. Within an
    hour, he provided the exact steps to reproduce the problem and left. The
    bug was then fixed.
    Later, the company received a bill for $50,000 from the software tester for
    his service. The company was stunned with the exorbitant bill for such a
    short duration of service and demanded an itemized accounting of his
    charges.
    The software tester responded with the itemization:

        Bug Report: $1
        Knowing where to look: $49,999
Software Testing Definition

 To check the quality of software by
 performing experiments in controlled way
     Why are we testing ?
spec construction     deliver   accept       exploit & use        destroy

                     system     acceptance
                      test         test

                           quality?
                           test it !
    Testing as measurement for software quality
    Software quality as a measure to predict future operation:
      ◦ reliability, dependability
      ◦ expected value, expected costs, probability of failure
      ◦ Risk
          probability of failure  expected cost of failure
Who test the software ?
A Strategic Approach to SW
Testing

Verification and validation (V&V)
     Verifications: Are we building the product
      right?
     Validation: Are we building the right
      product?
More on V & V
Validation
 The process of checking whether the
 system being built is what the customer
 expects or needs

Verification
 The process of checking any deliverable
 of the software process meets defined
 needs or requirements
Organizing for SW Testing
A software testing strategy for
 conventional software architectures

    V model
    Spiral model
V-Model Testing
               Unit testing


Spiral Model
               •Code


               Integration Testing
               •Design



               Validation Testing
               •Requirement



               System Testing
               •System Engine
Testing Strategy

 Webegin by ‘testing-in-the-small’ and
 move toward ‘testing-in-the-large’

 For   conventional software
     The module (component) is our initial focus
     Integration of modules follows
Types of Testing
                                    Level of detail
                         system
                      integration

                          module
                             unit
                                                            Accessibility
                  security
              robustness            white box   black box
          performance
          usability
     reliability
functional
behaviour
        Characteristics
Unit Testing
Unit Testing
     Unit Testing Process

               Test                  Test                                     Test
                                                         Test
              Cases                  Data                                    Reports
                                                        Results




                      Prepare Test            Run            Compare Results
Design Test
                          Data              Program            to test cases
  Cases
                                            with Test
                                              Data

                                                                 From Textbook: Ian
                                                              Sommerville, Software
                                                             Engineering, 6th Edition
Goals of unit testing
 Verifycode against interface and
  functional specifications
 Check both “good” and “bad” inputs
  against design and code implementation
 Check all possible paths of execution
  through code
Example of unit testing
Integration Testing
Integration Testing
 Tests complete systems or subsystems
  composed of integrated components
 Integration testing should be black-box
  testing with tests derived from the
  specification
 Main difficulty is localising errors
 Incremental integration testing reduces this
  problem
Top Down Integration
Bottom-up Integration
Sandwich Testing
Validation Testing
 Validation   test criteria
    All functional,
    all nonfunctional

 Configuration    review (auditing)
    Ensures that all system elements have been
     properly documented

 Alpha/beta    testing
System Testing

 Recovery    testing
     Forces the software to crash and shows the
      adequacy of recovery
     E.g., use the back bottom after submitting
      the credit card information

 Security   testing
     Tests adequacy of system protection
      mechanisms
     E.g., how does the website authenticate
      users?
System Testing (2)
 Stress   testing/load testing
     Subjecting the system to varying and
      maximum loads to evaluate the resulting
      performance
     E.g., how can you overwhelm the system?

 Performance      testing
     Used to evaluate system performance
      under normal and heavy usage
     E.g., how long should a task take?
More on Stress testing
   Exercises the system beyond its maximum
    design load.
    ◦   Stressing the system often causes defects to
        come to light
   Stressing the system test failure behaviour.
    ◦   Systems should not fail catastrophically.
    ◦   checks for unacceptable loss of service or data
   Particularly relevant to distributed systems
    ◦   exhibit severe degradation as a
        network becomes overloaded
Who is who ?
   A Project Manager is the one who thinks 9 women can deliver a
    baby in 1 month.

   An Onsite Coordinator is the one who thinks 1 woman can deliver
    9 babies in 1 month.

   A Developer is the one who thinks it will take 18 months to deliver
    1 baby.

   A Marketing Manager is the one who thinks he can deliver a
    baby even if no man and woman are available.

   A Client is the one who doesn't know why he wants a baby.

   A Tester is the one who always tells his wife that this is not the right
    baby.
Thank You..

								
To top