SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Software testing




©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 23   Slide 1
Objectives
           To discuss the distinctions between
           validation testing and defect testing
           To describe the principles of system and
           component testing
           To describe strategies for generating system
           test cases
           To understand the essential characteristics
           of tool used for test automation


©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 2
Topics covered
           System testing
           Component testing
           Test case design
           Test automation




©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 23   Slide 3
The testing process
            Component testing
             •     Testing of individual program components;
             •     Usually the responsibility of the component developer
                   (except sometimes for critical systems);
             •     Tests are derived from the developer’s experience.
            System testing
             •     Testing of groups of components integrated to create a
                   system or sub-system;
             •     The responsibility of an independent testing team;
             •     Tests are based on a system specification.




©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 23   Slide 4
ComSs
            y
         testi
            tes
                        Testing phases




         Softw
           Ind
©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 23   Slide 5
Defect testing
           The goal of defect testing is to discover
           defects in programs
           A successful defect test is a test which
           causes a program to behave in an
           anomalous way
           Tests show the presence not the absence of
           defects




©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 23   Slide 6
Testing process goals
            Validation testing
             •     To demonstrate to the developer and the system
                   customer that the software meets its requirements;
             •     A successful test shows that the system operates as
                   intended.
            Defect testing
             •     To discover faults or defects in the software where its
                   behaviour is incorrect or not in conformance with its
                   specification;
             •     A successful test is a test that makes the system perform
                   incorrectly and so exposes a defect in the system.



©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 23   Slide 7
The software testing process



    Ttawithr
    ePrRrmTp
     stuTsus
      Tonepr
      etestrts
        stCo
         etote
           st
    cases es
      da
      tata
   Design
     epar
     eg
   cases
     da r
        a   e
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 8
Testing policies
           Only exhaustive testing can show a program is free
           from defects. However, exhaustive testing is
           impossible,
           Testing policies define the approach to be used in
           selecting system tests:
             •     All functions accessed through menus should be tested;
             •     Combinations of functions accessed through the same
                   menu should be tested;
             •     Where user input is required, all functions must be tested
                   with correct and incorrect input.




©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 23   Slide 9
System testing
            Involves integrating components to create a
            system or sub-system.
            May involve testing an increment to be
            delivered to the customer.
            Two phases:
             •     Integration testing - the test team have access
                   to the system source code. The system is
                   tested as components are integrated.
             •     Release testing - the test team test the
                   complete system to be delivered as a black-box.


©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 10
Integration testing
            Involves building a system from its
            components and testing it for problems that
            arise from component interactions.
            Top-down integration
             •     Develop the skeleton of the system and
                   populate it with components.
            Bottom-up integration
             •     Integrate infrastructure components then add
                   functional components.
            To simplify error localisation, systems should
            be incrementally integrated.
©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 11
T1
           AB
          T1 CA T
                T
      Incremental integration testing



         AB T
            T2
          T2 T
            T3
         BC D
          T3seq
            T4s
           ee   T
         Tst st st
         e TT
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 12
Testing approaches
            Architectural validation
             •     Top-down integration testing is better at discovering
                   errors in the system architecture.
            System demonstration
             •     Top-down integration testing allows a limited
                   demonstration at an early stage in the development.
            Test implementation
             •     Often easier with bottom-up integration testing.
            Test observation
             •     Problems with both approaches. Extra code may be
                   required to observe tests.




©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 23   Slide 13
Release testing
            The process of testing a release of a system
            that will be distributed to customers.
            Primary goal is to increase the supplier’s
            confidence that the system meets its
            requirements.
            Release testing is usually black-box or
            functional testing
             •     Based on the system specification only;
             •     Testers do not have knowledge of the system
                   implementation.


©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 14
Inp
                            ano
                        Input t
                         ta beh
                          I vio
                          e
                        Black-box testing




                         Sstem
                         y Out
                             hic
                              ea
                              v
                            the
                             ese
                        Output
                         esults
                          Odef
                          e
©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 15
Testing guidelines
            Testing guidelines are hints for the testing
            team to help them choose tests that will
            reveal defects in the system
             •     Choose inputs that force the system to generate
                   all error messages;
             •     Design inputs that cause buffers to overflow;
             •     Repeat the same input or input series several
                   times;
             •     Force invalid outputs to be generated;
             •     Force computation results to be too large or too
                   small.

©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 23   Slide 16
Testing scenario


A student in Scotland is studying American History and has been asked to write a paper
on ‘Frontier mentality in the American West from 1840 to 1880’. To do this, she needs to
find sources from a range of libraries. She logs on to the LIBSYS system and uses the
search facility to discover if she can access original documents from that time. She
discovers sources in various US university libraries and downloads copies of some of
these. However, for one document, she needs to have confirmation from her university
that she is a genuine student and that use is for non-commercial purposes. The student
then uses the facility in LIBSYS that can request such permission and registers her
request. If granted, the document will be downloaded to the registered library’s server
and printed for her. She receives a message from LIBSYS telling her that she will receive
an e-mail message when the printed document is available for collection.




©Ian Sommerville 2004            Software Engineering, 7th edition. Chapter 23   Slide 17
System tests




©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 23   Slide 18
Use cases
            Use cases can be a basis for deriving the
            tests for a system. They help identify
            operations to be tested and help design the
            required test cases.
            From an associated sequence diagram, the
            inputs and outputs to be created for the tests
            can be identified.




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 19
:Comm
                    :W
                    eathe
                      :W
                      eat
                request
                 t)t sum
  Collect weather data sequence chart



                acknow
                  repor
                     ()
                  send(r
                    t) (
                reply
                 t)
                acknow
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 20
Performance testing
            Part of release testing may involve testing
            the emergent properties of a system, such
            as performance and reliability.
            Performance tests usually involve planning a
            series of tests where the load is steadily
            increased until the system performance
            becomes unacceptable.




©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 23   Slide 21
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. Stress
            testing checks for unacceptable loss of service or
            data.
            Stress testing is particularly relevant to distributed
            systems that can exhibit severe degradation as a
            network becomes overloaded.



©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 23   Slide 22
Component testing
            Component or unit testing is the process of
            testing individual components in isolation.
            It is a defect testing process.
            Components may be:
             •     Individual functions or methods within an object;
             •     Object classes with several attributes and
                   methods;
             •     Composite components with defined interfaces
                   used to access their functionality.


©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 23   Slide 23
Object class testing
            Complete test coverage of a class involves
             •     Testing all operations associated with an object;
             •     Setting and interrogating all object attributes;
             •     Exercising the object in all possible states.
            Inheritance makes it more difficult to design
            object class tests as the information to be
            tested is not localised.




©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 23   Slide 24
Weath
                        iden
                        repo
                         tW
                         eat
                        cali
                        test
                        star
                        tup
    Weather station object interface




©Ian Sommerville 2004
                        shu
                        Software Engineering, 7th edition. Chapter 23   Slide 25
Weather station testing
            Need to define test cases for reportWeather,
            calibrate, test, startup and shutdown.
            Using a state model, identify sequences of
            state transitions to be tested and the event
            sequences to cause these transitions
            For example:
             •     Waiting -> Calibrating -> Testing -> Transmitting
                   -> Waiting




©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 23   Slide 26
Interface testing
           Objectives are to detect faults due to
           interface errors or invalid assumptions about
           interfaces.
           Particularly important for object-oriented
           development as objects are defined by their
           interfaces.




©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 23   Slide 27
Tst
                          e
                          case
                        Interface testing




                          AB
                          C
©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 23   Slide 28
Interface types
           Parameter interfaces
             •     Data passed from one procedure to another.
           Shared memory interfaces
             •     Block of memory is shared between procedures or
                   functions.
           Procedural interfaces
             •     Sub-system encapsulates a set of procedures to be
                   called by other sub-systems.
           Message passing interfaces
             •     Sub-systems request services from other sub-system.s




©Ian Sommerville 2004         Software Engineering, 7th edition. Chapter 23   Slide 29
Interface errors
           Interface misuse
             •     A calling component calls another component and makes
                   an error in its use of its interface e.g. parameters in the
                   wrong order.
           Interface misunderstanding
             •     A calling component embeds assumptions about the
                   behaviour of the called component which are incorrect.
           Timing errors
             •     The called and the calling component operate at different
                   speeds and out-of-date information is accessed.




©Ian Sommerville 2004          Software Engineering, 7th edition. Chapter 23   Slide 30
Interface testing guidelines
           Design tests so that parameters to a called
           procedure are at the extreme ends of their ranges.
           Always test pointer parameters with null pointers.
           Design tests which cause the component to fail.
           Use stress testing in message passing systems.
           In shared memory systems, vary the order in which
           components are activated.




©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 23   Slide 31
Test case design
            Involves designing the test cases (inputs and
            outputs) used to test the system.
            The goal of test case design is to create a
            set of tests that are effective in validation
            and defect testing.
            Design approaches:
             •     Requirements-based testing;
             •     Partition testing;
             •     Structural testing.



©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 32
Requirements based testing
            A general principle of requirements
            engineering is that requirements should be
            testable.
            Requirements-based testing is a validation
            testing technique where you consider each
            requirement and derive a set of tests for that
            requirement.




©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 23   Slide 33
LIBSYS requirements




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 34
LIBSYS tests
        •    Initiate user search for searches for items that are known to
             be present and known not to be present, where the set of
             databases includes 1 database.
        •    Initiate user searches for items that are known to be present
             and known not to be present, where the set of databases
             includes 2 databases
        •    Initiate user searches for items that are known to be present
             and known not to be present where the set of databases
             includes more than 2 databases.
        •    Select one database from the set of databases and initiate
             user searches for items that are known to be present and
             known not to be present.
        •    Select more than one database from the set of databases
             and initiate searches for items that are known to be present
             and known not to be present.


©Ian Sommerville 2004            Software Engineering, 7th edition. Chapter 23   Slide 35
Partition testing
            Input data and output results often fall into
            different classes where all members of a
            class are related.
            Each of these classes is an equivalence
            partition or domain where the program
            behaves in an equivalent way for each class
            member.
            Test cases should be chosen from each
            partition.

©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 23   Slide 36
Equivalence partitioning


                        InV ini
                        vSstem
                        ay lid
                          lid
                           a
©Ian Sommerville 2004
                         Outpu
                        Software Engineering, 7th edition. Chapter 23   Slide 37
3700th
               1 t4
            4 0e
           Less00
             Betw
             een
               Mo
                  Equivalence partitions




          Numb
            alues
            input
            9999t1
               1 th
               0
            15999
            00000
              000
          Less v
           0000
            Betw
             een
             0000
          InputMo
           aluese
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 38
Search routine specification

      procedure Search (Key : ELEM ; T: SEQ of ELEM;
         Found : in out BOOLEAN; L: in out ELEM_INDEX) ;

      Pre-condition
             -- the sequence has at least one element
             T’FIRST <= T’LAST
      Post-condition
             -- the element is found and is referenced by L
             ( Found and T (L) = Key)
      or
             -- the element is not in the array
             ( not Found and
             not (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))




©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 39
Search routine - input partitions
           Inputs which conform to the pre-conditions.
           Inputs where a pre-condition does not hold.
           Inputs where the key element is a member of

           the array.
           Inputs where the key element is not a
           member of the array.




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 40
Testing guidelines (sequences)
           Test software with sequences which have
           only a single value.
           Use sequences of different sizes in different
           tests.
           Derive tests so that the first, middle and last
           elements of the sequence are accessed.
           Test with sequences of zero length.




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 41
Search routine - input partitions




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 42
Structural testing
           Sometime called white-box testing.
           Derivation of test cases according to
           program structure. Knowledge of the
           program is used to identify additional test
           cases.
           Objective is to exercise all program
           statements (not all path combinations).




©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 43
Tst d
           es
           ta
          TDeri
          eCom
           stsTs
           v ou
           ee
                        Structural testing




           code
©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 44
Binary search - equiv. partitions
           Pre-conditions satisfied, key element in array.
           Pre-conditions satisfied, key element not in
           array.
           Pre-conditions unsatisfied, key element in array.
           Pre-conditions unsatisfied, key element not in array.
           Input array has a single value.
           Input array has an even number of values.
           Input array has an odd number of values.




©Ian Sommerville 2004     Software Engineering, 7th edition. Chapter 23   Slide 45
Equi
                    vlen
                    a Ele
      Binary search equiv. partitions




                   Elem
                    Mid
©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 46
Binary search - test cases




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 47
Path testing
            The objective of path testing is to ensure that
            the set of test cases is such that each path
            through the program is executed at least
            once.
            The starting point for path testing is a
            program flow graph that shows nodes
            representing program decisions and arcs
            representing the flow of control.
            Statements with conditions are therefore
            nodes in the flow graph.


©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 23   Slide 48
1
              Binary search flow graph

                         2
                         3
                         4
                        bottom > t
                         5while bo
                         6elemAr
                          elemArr
                         7 1elem
                            1 =k
                        elemArra
                        [mid]
                         8 213
                         9
                        11
                        40
©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 23   Slide 49
Independent paths
           1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14
           1, 2, 3, 4, 5, 14
           1, 2, 3, 4, 5, 6, 7, 11, 12, 5, …
           1, 2, 3, 4, 6, 7, 2, 11, 13, 5, …
           Test cases should be derived so that all of
           these paths are executed
           A dynamic program analyser may be used to
           check that paths have been executed


©Ian Sommerville 2004       Software Engineering, 7th edition. Chapter 23   Slide 50
Test automation
            Testing is an expensive process phase. Testing
            workbenches provide a range of tools to reduce the
            time required and total testing costs.
            Systems such as Junit support the automatic
            execution of tests.
            Most testing workbenches are open systems
            because testing needs are organisation-specific.
            They are sometimes difficult to integrate with closed
            design and analysis workbenches.




©Ian Sommerville 2004      Software Engineering, 7th edition. Chapter 23   Slide 51
Tor da
                    est da
                    taacle
                    t Spe
                      tion
                    gener
                    ast
              Sourprr t
                        A testing workbench


               ce stst st
                 TmOr
                 eT T
                    T
                    e
                    ta
              codeedic
                 mana
                  gere
              Dynami
                 Presult
                 o eFile
                 gr
                  a
              analcom
               yser
                 being
              Ex gene
              ecution
              e Simpor
                 ulat Tst
                  tor e
              rt poraorpo
                     Rrt
                     e esu
©Ian Sommerville 2004        Software Engineering, 7th edition. Chapter 23   Slide 52
Testing workbench adaptation
            Scripts may be developed for user interface
            simulators and patterns for test data
            generators.
            Test outputs may have to be prepared
            manually for comparison.
            Special-purpose file comparators may be
            developed.




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 53
Key points
           Testing can show the presence of faults in a system;
           it cannot prove there are no remaining faults.
           Component developers are responsible for
           component testing; system testing is the
           responsibility of a separate team.
           Integration testing is testing increments of the
           system; release testing involves testing a system to
           be released to a customer.
           Use experience and guidelines to design test cases
           in defect testing.


©Ian Sommerville 2004    Software Engineering, 7th edition. Chapter 23   Slide 54
Key points
     Interface testing is designed to discover defects in
     the interfaces of composite components.
     Equivalence partitioning is a way of discovering test
     cases - all cases in a partition should behave in the
     same way.
     Structural analysis relies on analysing a program
     and deriving tests from this analysis.
     Test automation reduces testing costs by supporting
     the test process with a range of software tools.




©Ian Sommerville 2004   Software Engineering, 7th edition. Chapter 23   Slide 55

Weitere ähnliche Inhalte

Was ist angesagt?

Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingANKUR-BA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingFayis-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingSachin-QA
 
Software testing
Software testingSoftware testing
Software testingMohdVais1
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testingHaris Jamil
 
Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)tyas setyo
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 finalsietkcse
 
Introduction to Software Testing
Introduction to Software TestingIntroduction to Software Testing
Introduction to Software TestingHenry Muccini
 
Different Software Testing Types and CMM Standard
Different Software Testing Types and CMM StandardDifferent Software Testing Types and CMM Standard
Different Software Testing Types and CMM StandardDhrumil Panchal
 
System testing
System testingSystem testing
System testingSlideshare
 
12 sdd lesson testing and evaluating
12 sdd lesson testing and evaluating12 sdd lesson testing and evaluating
12 sdd lesson testing and evaluatingMike Cusack
 
Unit Testing vs Integration Testing
Unit Testing vs Integration TestingUnit Testing vs Integration Testing
Unit Testing vs Integration TestingRock Interview
 
100 most popular software testing terms
100 most popular software testing terms100 most popular software testing terms
100 most popular software testing termsapurvaorama
 

Was ist angesagt? (17)

Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Software testing
Software testingSoftware testing
Software testing
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testing
 
software engineering
software engineeringsoftware engineering
software engineering
 
Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)
 
T0 numtq0nje=
T0 numtq0nje=T0 numtq0nje=
T0 numtq0nje=
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 final
 
Higher Order Testing
Higher Order TestingHigher Order Testing
Higher Order Testing
 
Introduction to Software Testing
Introduction to Software TestingIntroduction to Software Testing
Introduction to Software Testing
 
Testing ppt
Testing pptTesting ppt
Testing ppt
 
Different Software Testing Types and CMM Standard
Different Software Testing Types and CMM StandardDifferent Software Testing Types and CMM Standard
Different Software Testing Types and CMM Standard
 
System testing
System testingSystem testing
System testing
 
12 sdd lesson testing and evaluating
12 sdd lesson testing and evaluating12 sdd lesson testing and evaluating
12 sdd lesson testing and evaluating
 
Unit Testing vs Integration Testing
Unit Testing vs Integration TestingUnit Testing vs Integration Testing
Unit Testing vs Integration Testing
 
100 most popular software testing terms
100 most popular software testing terms100 most popular software testing terms
100 most popular software testing terms
 

Andere mochten auch

MARK_OLIPHANT_DHL_Hubbub2007
MARK_OLIPHANT_DHL_Hubbub2007MARK_OLIPHANT_DHL_Hubbub2007
MARK_OLIPHANT_DHL_Hubbub2007Mark Oliphant
 
Sarah Fenty reference
Sarah Fenty referenceSarah Fenty reference
Sarah Fenty referenceSarah Fenty
 
Recommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit Design
Recommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit DesignRecommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit Design
Recommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit Designfatima-zahra sindibad
 
Shaikh e azam mahanama ghausul alam feb 2007 shaikh e azam
Shaikh e azam mahanama ghausul alam feb 2007 shaikh e azamShaikh e azam mahanama ghausul alam feb 2007 shaikh e azam
Shaikh e azam mahanama ghausul alam feb 2007 shaikh e azamAale Rasool Ahmad
 

Andere mochten auch (8)

Slideshare presentacion
Slideshare presentacion Slideshare presentacion
Slideshare presentacion
 
tremron_ebbin
tremron_ebbintremron_ebbin
tremron_ebbin
 
Letter of Recommendation
Letter of Recommendation Letter of Recommendation
Letter of Recommendation
 
MARK_OLIPHANT_DHL_Hubbub2007
MARK_OLIPHANT_DHL_Hubbub2007MARK_OLIPHANT_DHL_Hubbub2007
MARK_OLIPHANT_DHL_Hubbub2007
 
Sarah Fenty reference
Sarah Fenty referenceSarah Fenty reference
Sarah Fenty reference
 
Recommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit Design
Recommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit DesignRecommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit Design
Recommendation Letter Jihad Kiwan- CTO Dubai Silicon Oasis-Dubai Circuit Design
 
Shaikh e azam mahanama ghausul alam feb 2007 shaikh e azam
Shaikh e azam mahanama ghausul alam feb 2007 shaikh e azamShaikh e azam mahanama ghausul alam feb 2007 shaikh e azam
Shaikh e azam mahanama ghausul alam feb 2007 shaikh e azam
 
IT Case Study
IT Case StudyIT Case Study
IT Case Study
 

Ähnlich wie Software testing

Software-Testing.pdf
Software-Testing.pdfSoftware-Testing.pdf
Software-Testing.pdfSalim533277
 
Software engineering testing and types
Software engineering testing and typesSoftware engineering testing and types
Software engineering testing and typesDr. Anthony Vincent. B
 
Dr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.pptDr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.pptPhial
 
Verifcation and Validation
Verifcation and ValidationVerifcation and Validation
Verifcation and ValidationSaggitariusArrow
 
Ian Sommerville, Software Engineering, 9th EditionCh 8
Ian Sommerville,  Software Engineering, 9th EditionCh 8Ian Sommerville,  Software Engineering, 9th EditionCh 8
Ian Sommerville, Software Engineering, 9th EditionCh 8Mohammed Romi
 
types of testing in software engineering
types of testing in software engineering types of testing in software engineering
types of testing in software engineering preetikapri1
 
Software Testing
Software TestingSoftware Testing
Software TestingSKumar11384
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing TechniquesPramod Parajuli
 
Software testing
Software testingSoftware testing
Software testingEng Ibrahem
 
Different Software Testing Levels for Detecting Errors
Different Software Testing Levels for Detecting ErrorsDifferent Software Testing Levels for Detecting Errors
Different Software Testing Levels for Detecting ErrorsWaqas Tariq
 
SE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingAmr E. Mohamed
 

Ähnlich wie Software testing (20)

Software-Testing.pdf
Software-Testing.pdfSoftware-Testing.pdf
Software-Testing.pdf
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Software engineering testing and types
Software engineering testing and typesSoftware engineering testing and types
Software engineering testing and types
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Verification and validation
Verification and validationVerification and validation
Verification and validation
 
Dr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.pptDr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.ppt
 
Verifcation and Validation
Verifcation and ValidationVerifcation and Validation
Verifcation and Validation
 
Ian Sommerville, Software Engineering, 9th EditionCh 8
Ian Sommerville,  Software Engineering, 9th EditionCh 8Ian Sommerville,  Software Engineering, 9th EditionCh 8
Ian Sommerville, Software Engineering, 9th EditionCh 8
 
types of testing in software engineering
types of testing in software engineering types of testing in software engineering
types of testing in software engineering
 
Ch. 20 software testing
Ch. 20 software testingCh. 20 software testing
Ch. 20 software testing
 
Different Types Of Testing
Different Types Of TestingDifferent Types Of Testing
Different Types Of Testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing Techniques
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Different Software Testing Levels for Detecting Errors
Different Software Testing Levels for Detecting ErrorsDifferent Software Testing Levels for Detecting Errors
Different Software Testing Levels for Detecting Errors
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
SE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software Testing
 
Software Processes
Software ProcessesSoftware Processes
Software Processes
 
Ch8
Ch8Ch8
Ch8
 

Mehr von Mahfuz1061

Mehr von Mahfuz1061 (10)

Test plan
Test planTest plan
Test plan
 
Test case
Test caseTest case
Test case
 
Sql presentation
Sql presentationSql presentation
Sql presentation
 
Sql
SqlSql
Sql
 
Sdlc
SdlcSdlc
Sdlc
 
Pl sql
Pl sqlPl sql
Pl sql
 
Net framework
Net frameworkNet framework
Net framework
 
Dot net
Dot netDot net
Dot net
 
Change management
Change managementChange management
Change management
 
Agile softwareengineering
Agile softwareengineeringAgile softwareengineering
Agile softwareengineering
 

Kürzlich hochgeladen

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 

Kürzlich hochgeladen (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 

Software testing

  • 1. Software testing ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 1
  • 2. Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating system test cases To understand the essential characteristics of tool used for test automation ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 2
  • 3. Topics covered System testing Component testing Test case design Test automation ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 3
  • 4. The testing process Component testing • Testing of individual program components; • Usually the responsibility of the component developer (except sometimes for critical systems); • Tests are derived from the developer’s experience. System testing • Testing of groups of components integrated to create a system or sub-system; • The responsibility of an independent testing team; • Tests are based on a system specification. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 4
  • 5. ComSs y testi tes Testing phases Softw Ind ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 5
  • 6. Defect testing The goal of defect testing is to discover defects in programs A successful defect test is a test which causes a program to behave in an anomalous way Tests show the presence not the absence of defects ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 6
  • 7. Testing process goals Validation testing • To demonstrate to the developer and the system customer that the software meets its requirements; • A successful test shows that the system operates as intended. Defect testing • To discover faults or defects in the software where its behaviour is incorrect or not in conformance with its specification; • A successful test is a test that makes the system perform incorrectly and so exposes a defect in the system. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 7
  • 8. The software testing process Ttawithr ePrRrmTp stuTsus Tonepr etestrts stCo etote st cases es da tata Design epar eg cases da r a e ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 8
  • 9. Testing policies Only exhaustive testing can show a program is free from defects. However, exhaustive testing is impossible, Testing policies define the approach to be used in selecting system tests: • All functions accessed through menus should be tested; • Combinations of functions accessed through the same menu should be tested; • Where user input is required, all functions must be tested with correct and incorrect input. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 9
  • 10. System testing Involves integrating components to create a system or sub-system. May involve testing an increment to be delivered to the customer. Two phases: • Integration testing - the test team have access to the system source code. The system is tested as components are integrated. • Release testing - the test team test the complete system to be delivered as a black-box. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 10
  • 11. Integration testing Involves building a system from its components and testing it for problems that arise from component interactions. Top-down integration • Develop the skeleton of the system and populate it with components. Bottom-up integration • Integrate infrastructure components then add functional components. To simplify error localisation, systems should be incrementally integrated. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 11
  • 12. T1 AB T1 CA T T Incremental integration testing AB T T2 T2 T T3 BC D T3seq T4s ee T Tst st st e TT ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 12
  • 13. Testing approaches Architectural validation • Top-down integration testing is better at discovering errors in the system architecture. System demonstration • Top-down integration testing allows a limited demonstration at an early stage in the development. Test implementation • Often easier with bottom-up integration testing. Test observation • Problems with both approaches. Extra code may be required to observe tests. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 13
  • 14. Release testing The process of testing a release of a system that will be distributed to customers. Primary goal is to increase the supplier’s confidence that the system meets its requirements. Release testing is usually black-box or functional testing • Based on the system specification only; • Testers do not have knowledge of the system implementation. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 14
  • 15. Inp ano Input t ta beh I vio e Black-box testing Sstem y Out hic ea v the ese Output esults Odef e ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 15
  • 16. Testing guidelines Testing guidelines are hints for the testing team to help them choose tests that will reveal defects in the system • Choose inputs that force the system to generate all error messages; • Design inputs that cause buffers to overflow; • Repeat the same input or input series several times; • Force invalid outputs to be generated; • Force computation results to be too large or too small. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 16
  • 17. Testing scenario A student in Scotland is studying American History and has been asked to write a paper on ‘Frontier mentality in the American West from 1840 to 1880’. To do this, she needs to find sources from a range of libraries. She logs on to the LIBSYS system and uses the search facility to discover if she can access original documents from that time. She discovers sources in various US university libraries and downloads copies of some of these. However, for one document, she needs to have confirmation from her university that she is a genuine student and that use is for non-commercial purposes. The student then uses the facility in LIBSYS that can request such permission and registers her request. If granted, the document will be downloaded to the registered library’s server and printed for her. She receives a message from LIBSYS telling her that she will receive an e-mail message when the printed document is available for collection. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 17
  • 18. System tests ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 18
  • 19. Use cases Use cases can be a basis for deriving the tests for a system. They help identify operations to be tested and help design the required test cases. From an associated sequence diagram, the inputs and outputs to be created for the tests can be identified. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 19
  • 20. :Comm :W eathe :W eat request t)t sum Collect weather data sequence chart acknow repor () send(r t) ( reply t) acknow ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 20
  • 21. Performance testing Part of release testing may involve testing the emergent properties of a system, such as performance and reliability. Performance tests usually involve planning a series of tests where the load is steadily increased until the system performance becomes unacceptable. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 21
  • 22. 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. Stress testing checks for unacceptable loss of service or data. Stress testing is particularly relevant to distributed systems that can exhibit severe degradation as a network becomes overloaded. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 22
  • 23. Component testing Component or unit testing is the process of testing individual components in isolation. It is a defect testing process. Components may be: • Individual functions or methods within an object; • Object classes with several attributes and methods; • Composite components with defined interfaces used to access their functionality. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 23
  • 24. Object class testing Complete test coverage of a class involves • Testing all operations associated with an object; • Setting and interrogating all object attributes; • Exercising the object in all possible states. Inheritance makes it more difficult to design object class tests as the information to be tested is not localised. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 24
  • 25. Weath iden repo tW eat cali test star tup Weather station object interface ©Ian Sommerville 2004 shu Software Engineering, 7th edition. Chapter 23 Slide 25
  • 26. Weather station testing Need to define test cases for reportWeather, calibrate, test, startup and shutdown. Using a state model, identify sequences of state transitions to be tested and the event sequences to cause these transitions For example: • Waiting -> Calibrating -> Testing -> Transmitting -> Waiting ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 26
  • 27. Interface testing Objectives are to detect faults due to interface errors or invalid assumptions about interfaces. Particularly important for object-oriented development as objects are defined by their interfaces. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 27
  • 28. Tst e case Interface testing AB C ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 28
  • 29. Interface types Parameter interfaces • Data passed from one procedure to another. Shared memory interfaces • Block of memory is shared between procedures or functions. Procedural interfaces • Sub-system encapsulates a set of procedures to be called by other sub-systems. Message passing interfaces • Sub-systems request services from other sub-system.s ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 29
  • 30. Interface errors Interface misuse • A calling component calls another component and makes an error in its use of its interface e.g. parameters in the wrong order. Interface misunderstanding • A calling component embeds assumptions about the behaviour of the called component which are incorrect. Timing errors • The called and the calling component operate at different speeds and out-of-date information is accessed. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 30
  • 31. Interface testing guidelines Design tests so that parameters to a called procedure are at the extreme ends of their ranges. Always test pointer parameters with null pointers. Design tests which cause the component to fail. Use stress testing in message passing systems. In shared memory systems, vary the order in which components are activated. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 31
  • 32. Test case design Involves designing the test cases (inputs and outputs) used to test the system. The goal of test case design is to create a set of tests that are effective in validation and defect testing. Design approaches: • Requirements-based testing; • Partition testing; • Structural testing. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 32
  • 33. Requirements based testing A general principle of requirements engineering is that requirements should be testable. Requirements-based testing is a validation testing technique where you consider each requirement and derive a set of tests for that requirement. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 33
  • 34. LIBSYS requirements ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 34
  • 35. LIBSYS tests • Initiate user search for searches for items that are known to be present and known not to be present, where the set of databases includes 1 database. • Initiate user searches for items that are known to be present and known not to be present, where the set of databases includes 2 databases • Initiate user searches for items that are known to be present and known not to be present where the set of databases includes more than 2 databases. • Select one database from the set of databases and initiate user searches for items that are known to be present and known not to be present. • Select more than one database from the set of databases and initiate searches for items that are known to be present and known not to be present. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 35
  • 36. Partition testing Input data and output results often fall into different classes where all members of a class are related. Each of these classes is an equivalence partition or domain where the program behaves in an equivalent way for each class member. Test cases should be chosen from each partition. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 36
  • 37. Equivalence partitioning InV ini vSstem ay lid lid a ©Ian Sommerville 2004 Outpu Software Engineering, 7th edition. Chapter 23 Slide 37
  • 38. 3700th 1 t4 4 0e Less00 Betw een Mo Equivalence partitions Numb alues input 9999t1 1 th 0 15999 00000 000 Less v 0000 Betw een 0000 InputMo aluese ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 38
  • 39. Search routine specification procedure Search (Key : ELEM ; T: SEQ of ELEM; Found : in out BOOLEAN; L: in out ELEM_INDEX) ; Pre-condition -- the sequence has at least one element T’FIRST <= T’LAST Post-condition -- the element is found and is referenced by L ( Found and T (L) = Key) or -- the element is not in the array ( not Found and not (exists i, T’FIRST >= i <= T’LAST, T (i) = Key )) ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 39
  • 40. Search routine - input partitions Inputs which conform to the pre-conditions. Inputs where a pre-condition does not hold. Inputs where the key element is a member of the array. Inputs where the key element is not a member of the array. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 40
  • 41. Testing guidelines (sequences) Test software with sequences which have only a single value. Use sequences of different sizes in different tests. Derive tests so that the first, middle and last elements of the sequence are accessed. Test with sequences of zero length. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 41
  • 42. Search routine - input partitions ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 42
  • 43. Structural testing Sometime called white-box testing. Derivation of test cases according to program structure. Knowledge of the program is used to identify additional test cases. Objective is to exercise all program statements (not all path combinations). ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 43
  • 44. Tst d es ta TDeri eCom stsTs v ou ee Structural testing code ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 44
  • 45. Binary search - equiv. partitions Pre-conditions satisfied, key element in array. Pre-conditions satisfied, key element not in array. Pre-conditions unsatisfied, key element in array. Pre-conditions unsatisfied, key element not in array. Input array has a single value. Input array has an even number of values. Input array has an odd number of values. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 45
  • 46. Equi vlen a Ele Binary search equiv. partitions Elem Mid ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 46
  • 47. Binary search - test cases ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 47
  • 48. Path testing The objective of path testing is to ensure that the set of test cases is such that each path through the program is executed at least once. The starting point for path testing is a program flow graph that shows nodes representing program decisions and arcs representing the flow of control. Statements with conditions are therefore nodes in the flow graph. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 48
  • 49. 1 Binary search flow graph 2 3 4 bottom > t 5while bo 6elemAr elemArr 7 1elem 1 =k elemArra [mid] 8 213 9 11 40 ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 49
  • 50. Independent paths 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 1, 2, 3, 4, 5, 14 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, … 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, … Test cases should be derived so that all of these paths are executed A dynamic program analyser may be used to check that paths have been executed ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 50
  • 51. Test automation Testing is an expensive process phase. Testing workbenches provide a range of tools to reduce the time required and total testing costs. Systems such as Junit support the automatic execution of tests. Most testing workbenches are open systems because testing needs are organisation-specific. They are sometimes difficult to integrate with closed design and analysis workbenches. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 51
  • 52. Tor da est da taacle t Spe tion gener ast Sourprr t A testing workbench ce stst st TmOr eT T T e ta codeedic mana gere Dynami Presult o eFile gr a analcom yser being Ex gene ecution e Simpor ulat Tst tor e rt poraorpo Rrt e esu ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 52
  • 53. Testing workbench adaptation Scripts may be developed for user interface simulators and patterns for test data generators. Test outputs may have to be prepared manually for comparison. Special-purpose file comparators may be developed. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 53
  • 54. Key points Testing can show the presence of faults in a system; it cannot prove there are no remaining faults. Component developers are responsible for component testing; system testing is the responsibility of a separate team. Integration testing is testing increments of the system; release testing involves testing a system to be released to a customer. Use experience and guidelines to design test cases in defect testing. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 54
  • 55. Key points Interface testing is designed to discover defects in the interfaces of composite components. Equivalence partitioning is a way of discovering test cases - all cases in a partition should behave in the same way. Structural analysis relies on analysing a program and deriving tests from this analysis. Test automation reduces testing costs by supporting the test process with a range of software tools. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 23 Slide 55