SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Testing




Elena Punskaya, op205@cam.ac.uk

                                  1
It is All About Trust
    Defects destroy the trust required for effective software
    development. The customers need to be able to trust
    the software. The managers need to be able to trust
    reports of progress. The programmers need to be able
    to trust each other. Defects destroy this trust.
         Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change




Main Questions:
•   What is Testing?
•   What to Test?
•   How to Test?
•   When to Test?
•   Who should Test?
•   What are the Tools for the Job?

                                                                              © 2012 Elena Punskaya
                                                                                                     2
                                                         Cambridge University Engineering Department

                                                                                                         2
What is Testing?
•   Testing is double checking
    - If you add a column of numbers one way, there are many errors that could cause your
      sum to be wrong. Add the numbers two different ways, say from top and then from the
      bottom and the same answer is likely to be the right answer.

    Finding bugs is somewhat like fishing with a net. We
    use fine, small nets (unit tests) to catch the minnows,
    and big, coarse nets (integration tests) to catch the
    killer sharks.
                              Andrew Hunt and David Thomas, The Pragmatic Programmer

•   Many types of tests exist, what follows is just a starting point!
•   Many ways to categorise the tests, depending on one’s
    perspective
    -




                                                                              © 2012 Elena Punskaya
                                                                                                     3
                                                         Cambridge University Engineering Department

                                                                                                         3
What to Test?
    Let us follow the process:
•   Unit test
    - is code that exercises a small unit (module) of software separate from other units of
      the application
    - is the foundation of all other types of testing (if parts don’t work by themselves they
      won’t work together)

•   Integration (component) testing
    - ok, all parts seem to be working but how do they interact with each other, does the
      entire subsystem work?
    - with good OO design in place should be straightforward to detect the issues
    - potentially can be the largest source of bugs in a system

•   Validation and verification
    - ok, I put something together, this seems to be working as my users wanted but is this
      what they needed? are functional requirements met?




                                                                                  © 2012 Elena Punskaya
                                                                                                         4
                                                             Cambridge University Engineering Department

                                                                                                             4
Validation and Verification?




                                          © 2012 Elena Punskaya
                                                                 5
                     Cambridge University Engineering Department

                                                                     5
What to Test?
•   Resource exhaustion, errors, recovery
    - ok, now the system behaves correctly under ideal condition, what about real-world?
    - could it run out of
        ‣ memory?
        ‣ disk space?
        ‣ CPU bandwidth?
        ‣ video resolution?
        ‣ network bandwidth?
        ‣ etc.
    - if it has to fail, will it fail gracefully?

•   Performance testing, stress testing or testing under load
    - ok, it can work under real world conditions but what if the number of users/
      transactions/connections increases? is it scalable?
    - you might need to simulate the load realistically

•   Usability testing
    - ok, seems to work in real world but would it with real users under real conditions? this
      new tool “fits our hands” but does it “fit other users’ hands”
    - human factor plays important role, is it intuitively clear how to use?
    - failure to meet usability requirement is the same as dividing by zero

•   Test are also software - don’t forget to test them! :-)
                                                                                   © 2012 Elena Punskaya
                                                                                                          6
                                                              Cambridge University Engineering Department

                                                                                                              6
Profiling Tools
•   Profiling tools allow to analyse software performance
•   In particular, tracking Memory Allocation throughout runtime
    allows to spot memory leaks and inefficient memory use
    (requiring too much memory space without a real need)
•   Tracking time required execution of program methods helps
    to identify “bottlenecks” of performance that could be caused
    either by ineffective programming techniques or could benefit
    from optimisation




     XCode profiling tools, https://developer.apple.com/library/ios/#documentation/Performance/Conceptual/PerformanceOverview/
     InitialEvaluation/InitialEvaluation.html#//apple_ref/doc/uid/TP40001410-CH206-SW8                                         © 2012 Elena Punskaya
                                                                                                                                                      7
                                                                                                          Cambridge University Engineering Department

                                                                                                                                                          7
Usability Testing
•   Usability Testing is should be one of the most critical parts of
    software development: designing experiences!
•   Consider web search – a user wants most relevant results in
    the fastest way, relevance could be measured by analysing
    user clicks on the result link, but what about speed? Is 1s fast
    or 0.3s or 0.03s? Is it about the actual speed or about speed’s
    perception by the user?
•   Usability studies help to answer those questions by using two
    types of user research: quantitative (data points) and
    qualitative (perception)
•   Quantitative results allow to draw conclusions approximating
    them on to the whole target user set, i.e. “launching a new
    banking website will cause no more than 0.1% of online
    banking users to call the support line”
•   Qualitative results allow to capture how users feel about their
    experience with the product/ service
•   Good usability studies will use both approaches
                                                                  © 2012 Elena Punskaya
                                                                                         8
                                             Cambridge University Engineering Department

                                                                                             8
Usability Study Design
•   Method
    - define user interactions that are going to be tested, how the user is instructed and how
      the system is implemented (real product/ prototype / simulator)
    - define how the user feedback is captured: interviews, scoring cards
    - define how user interactions are observed and analysed: video and screen capture, eye
      tracking

•   User group (Know Your Customer!)
    - choose the user group to provide a representative set of product/ service users
       ‣ an app for remote access to computers (e.g. SSH client) is likely to be used by experienced computer
         users
       ‣ a web conferencing app (e.g.WebEx) need to be easier to setup by business (non-technical) users
       ‣ a call/chat client (e.g. Skype) should be easy to use by any computer user
    - segment target users by their characteristics: demographics: age, gender; level of
      experience...

•   Results presentation – a report should include
    - conclusions based on observations of users by the specialists to identifying e.g. a
      common source of confusion
    - qualitative user feedback
    - quantitative results: rankings/scoring by user groups (charts/tables)



                                                                                            © 2012 Elena Punskaya
                                                                                                                   9
                                                                       Cambridge University Engineering Department

                                                                                                                       9
Number of Test Users
•   Jacob Nielsen advocated that most effective approach is
    multiple usability studies with 5 users at a time




                          http://www.useit.com/alertbox/20000319.html


•   The chart above applies to the number of users of the same
    kind, in reality, if the target user set is diverse, so it’d be
    better to have 5 users for each user segment
                                                                                             © 2012 Elena Punskaya
                                                                                                                    10
                                                                        Cambridge University Engineering Department

                                                                                                                         10
Number of Test Users
•   Laura Faulkner in “Beyond the five-user assumption: Benefits
    of increased sample sizes in usability testing” showed that 5
    users do not necessarily deliver 85% problem discovery but a
    set of 20 was certainly very reliable
•   In practice, the optimum number can depend on the diversity
    of target usersFAULKNER complexity of the product
                382
                     and




                    Figure 1. The effect of adding users on reducing variance in the percentage of known usability problems found. Each point
                  represents a single set of randomly sampled users. The horizontal lines show the mean for each group of 100.
                                                                                                                                       © 2012 Elena Punskaya
                                                                                                                                                              11
                                                                                                                  Cambridge University Engineering Department
               use those formulas, such as probabilities, make them im-          practitioner to approach increasing levels of certainty
               practical and misleading for ordinary usability practition-       that high percentages of existing usability problems have
               ers. Although practitioners like simple directive answers         been found in testing. In a mission-critical system, large                        11
Tests from Different Perspective
•   “Testing Quadrant” categorises the tests according to whether
    they are Business-Facing or Technology-Facing and whether
    they support development process or used to critique (review
    and analyse the project)




•   Brian Marick introduced Testing Quadrant, it was further discussed by Lisa Crispin and Janet Gregory in “Agile Testing: A
    Practical Guide for Testers and Agile Teams” and in “Continuous Delivery” by Jez Humble and David Farley
                                                                                                      © 2012 Elena Punskaya
                                                                                                                             12
                                                                                 Cambridge University Engineering Department

                                                                                                                                  12
Business-Facing tests Supporting Development
•   Acceptance testing
    - testing conducted by a customer to
      verify that the system meets the
      acceptance criteria of the requested
      application
    - ideally should be written and
      automated before the development
      starts
    - ideally should be written by the
      customers or users
    - for developers they answer the
      question: How do I know when I                 http://www.d80.co.uk/post/2011/03/08/Non-Functional-
                                                     Requirements-the-forgotten-overlooked-and-underestimated.aspx
      am done?
    - for users they answer a question:      Acceptance tests that concern the
      Did I get what I wanted?               functionality of the system are
    - typically should run when the          known as Functional acceptance
      system is in a production-like mode    tests – the distinction between
                                             Functional and Non-Functional is
                                             a bit blurry and often misunderstood

                                                                            © 2012 Elena Punskaya
                                                                                                   13
                                                       Cambridge University Engineering Department

                                                                                                                     13
Technology-facing tests Supporting Development
•   Technology-facing tests are written and maintained
    exclusively by developers
•   Usually these are unit tests, component tests (integration
    tests) and deployment tests
•   Deployment tests are performed whenever one deploys the
    application and check that it is installed correctly, configured
    correctly, able to contact any services required and is
    responding




                                                                  © 2012 Elena Punskaya
                                                                                         14
                                             Cambridge University Engineering Department

                                                                                              14
Business-Facing tests that Critique the Project
•   The tests are not just about verifying that the application
    meets the specification but also about checking that the
    specification is correct
•   Applications are never specified perfectly in advance so there
    is always room for improvement, users try things they are not
    supposed to try and break them, complain about usability of
    most commonly performed tasks, identify new features
•   Showcases are particularly important - show new
    functionality to the customers and users as soon as possible
    to catch any misunderstandings early (can be a blessing and a
    curse - you might have a lot of suggestions!)
•   Exploratory testing - “the tester actively controls the design
    of the tests as those tests are performed and uses
    information gained while testing to design new and better
    tests” [James Bach]
•   Beta testing - give your application to real user, release new
    features to selected groups without them even noticing
                                                                 © 2012 Elena Punskaya
                                                                                        15
                                            Cambridge University Engineering Department

                                                                                             15
Technology-facing tests that Critique the Project
•   Acceptance tests may test functionality (functional
    acceptance tested) but may also test other qualities of the
    system such as capacity, usability, security, modifiability,
    availability, etc.
•   All these are qualities other than functionality go under
    umbrella of nonfunctional tests although the distinction is
    very blurry, however, what is important is to bother testing
    them!
•   It is also not necessarily fair to say that these tests are not
    business facing – often they are!




                                                                  © 2012 Elena Punskaya
                                                                                         16
                                             Cambridge University Engineering Department

                                                                                              16
How to Test?
•   Regression Tests
    - compares the output of the previous test with the previous or known values
    - make sure that bugs fixed today don’t break something else - no unpleasant surprises
    - can run regression tests to make sure the components function correctly, entire
      subsystem functions, performance, etc.

•   Test Data
    - real-world - “typical data” collected; “typical” might be a
      surprise and may reveal misunderstandings in
      requirements - watch out!
    - synthetic - artificially generated data (not enough real-
      data, need certain statistical properties, need to stress the
      boundary condition)
    - real-world and synthetic - expose different types of bugs

•   GUI testing
    - need special tools to exercise, can’t automate everything




                                                                                    © 2012 Elena Punskaya
                                                                                                           17
                                                               Cambridge University Engineering Department

                                                                                                                17
Why teams Choose to Live with Defects?

•   Is it possible to create BugFree software? Yes in theory but
    how one would prove this?
•   How much does it cost to create BugFree software? Are costs
    astronomical?


•   Dilemmas:
    - bugs are expensive (direct costs of fixing and indirect costs
    of damaged reputation and relationship, lost time) and
    eliminating bugs is expensive => economically viable option
    depends on the acceptable defects level in any particular area
    - there will always be bugs! (Unknown unknows, unexpected
    circumstances, new situation)




                                                                  © 2012 Elena Punskaya
                                                                                         18
                                             Cambridge University Engineering Department

                                                                                              18
Horses for Courses
•   Not all SOFTWARE is created equal, choose an engineering
    approach accordingly
Our tests suite takes nine minutes to run (distributed
across 30-40 machines). Our code pushes take another
six minutes. Since these two steps are pipelined that
means at peak we’re pushing a new revision of the
code to the website every nine minutes. That’s 6
deploys an hour. Even at that pace we’re often batching
multiple commits into a single test/push cycle. On
average we deploy new code fifty times a day. [1]

This software never crashes. It never needs to be re-
booted. This software is bug-free. It is perfect, as perfect
as human beings have achieved. Consider these stats :
the last three versions of the program – each 420,000
lines long-had just one error each. The last 11 versions
of this software had a total of 17 errors. [2]
                                                                       © 2012 Elena Punskaya
                                                                                              19
                                                  Cambridge University Engineering Department

                                                                                                   19
When to Test?
•   The sooner one finds the defect the cheaper it is to fix it (catch
    it the minute it was created and it costs nothing)
•   Late testing is expensive and leaves many defects

We want to start testing as soon
as we have code. Those tiny
minnows have a nasty habit of
becoming giant, man-eating
sharks pretty fast, and catching
a shark is quite a bit harder.
               Andrew Hunt and David Thomas,
                    The Pragmatic Programmer
                                                    Kent Beck and Cynthia Andres, Extreme
                                                  Programming Explained: Embrace Change
•   Frequent testing reduces costs and defects (fix sooner and
    cheaply)


               Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change



                                                                              © 2012 Elena Punskaya
                                                                                                     20
                                                         Cambridge University Engineering Department

                                                                                                          20
Who Should Test?
•   Frequent testing (difficult to have a dedicated tester) might
    mean programmers themselves write the tests, i.e. the same
    people who make mistakes write the tests - they need
    another prospective! Buddy programmer? Think like a users?
•   Consider two prospectives: programmers and users, involve
    the users at the very early stages
•   Most developers hate testing - they tend to be very gentle
    (subconsciously) with their creations and tend to avoid the
    weak spots intuitively.
•   Who likes testing???
    - testing could be very tedious – given a 100 pages long test script most humans turn on
      the “zombie mode” ;)

•   Solution? Automate whenever possible (so all the tedious bits
    are done by the machines)!
    - But someone still needs to define all test cases and implement them in the automated
      testing framework
    - Also, it is difficult to substitute manual testing for capturing unexpected user behaviour,
      the best testers have a six sense for breaking things :)

                                                                                   © 2012 Elena Punskaya
                                                                                                          21
                                                              Cambridge University Engineering Department

                                                                                                               21
Automated Testing
•   The goal is to reach “coverage” – cover the most practically
    possible number of test cases
•   It would typically include
•   All unit tests – developers implement and commit those to the
    source code repository during the development process
•   Regression tests – given the set of know inputs, does the
    system still produce the same set of outputs?
•   UI testing – cover various screen flows, difficult to automate
    but increasingly more and more coverage is possible
•   Probably enough for a “standard” app, but what about large
    distributed services in the “Cloud”? – Test Automation Cloud
    - Salesforce.com: average 600 change lists per day
    - “Test automation cloud provides accurate, complete and fast feedbacks to every change
      to the system, on a per change list basis”
    - Hardware: 2000 Linux Virtual Machines and 1000 Selenium Virtual Machines to run all
      required tests



                                                                               © 2012 Elena Punskaya
                                                                                                      22
                                                          Cambridge University Engineering Department

                                                                                                           22
Tools for the Job
•   The test tools are growing and maturing rapidly, many
    contributed to Open Source by big commercial vendors and
    many are created and evangelised by startups, some as
    examples are:
•   xUnit – a unit testing framework, ported to many languages,
    including JUnit (Java) and NUnit (C#)
•   KIF – “Keep it Functional” – a new iOS UI testing framework,
    allows to specify user interactions for test scenarios and
    check app’s resulting behaviour (which screen appeared etc.)
    - http://corner.squareup.com/2011/07/ios-integration-testing.html

•   Selenium – “Automates Browsers” – allows to simulate
    interactions and check results with websites
    - http://seleniumhq.org/

•   Robotium – “It’s like Selenium, but for Android”
    - http://code.google.com/p/robotium/

•   Static code analysers – checking for code inconsistency/
    inefficiency, security etc., e.g. FxCop (for .NET)
                                                                               © 2012 Elena Punskaya
                                                                                                      23
                                                          Cambridge University Engineering Department

                                                                                                           23

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (6)

Ajs 4 a
Ajs 4 aAjs 4 a
Ajs 4 a
 
Ajs 2 a
Ajs 2 aAjs 2 a
Ajs 2 a
 
Ajs 3 c
Ajs 3 cAjs 3 c
Ajs 3 c
 
Model driven code development using emf and jet
Model driven code development using emf and jetModel driven code development using emf and jet
Model driven code development using emf and jet
 
Ajs 4 b
Ajs 4 bAjs 4 b
Ajs 4 b
 
Unit 01 - Introduction
Unit 01 - IntroductionUnit 01 - Introduction
Unit 01 - Introduction
 

Andere mochten auch

Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programmingop205
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
3 f6 security
3 f6 security3 f6 security
3 f6 securityop205
 
23204961
2320496123204961
23204961radgirl
 
OltreWeb 2.0 -- Gaudio Fabrizio
OltreWeb 2.0 -- Gaudio FabrizioOltreWeb 2.0 -- Gaudio Fabrizio
OltreWeb 2.0 -- Gaudio Fabriziodarkgod90
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712weitzelm
 
Dibujos de movil
Dibujos de movilDibujos de movil
Dibujos de movilcpremolino
 
Profile Dynamics Info
Profile Dynamics InfoProfile Dynamics Info
Profile Dynamics Infomwilts
 
Challenges of AJAX Development for Smartphone Platforms
Challenges of AJAX Development for Smartphone PlatformsChallenges of AJAX Development for Smartphone Platforms
Challenges of AJAX Development for Smartphone PlatformsMaxMotovilov
 
GM Hand Book
GM Hand BookGM Hand Book
GM Hand BookSejal Parikh
 
Sandip Mukherjee CV
Sandip Mukherjee CVSandip Mukherjee CV
Sandip Mukherjee CVsandipm
 
Baie Des Cochons
Baie Des CochonsBaie Des Cochons
Baie Des Cochonsterissarafuse
 
Star 2013-pdfa-pdfa
Star 2013-pdfa-pdfaStar 2013-pdfa-pdfa
Star 2013-pdfa-pdfaDave McAllister
 
OpenSocial State of the Union 2010
OpenSocial State of the Union 2010OpenSocial State of the Union 2010
OpenSocial State of the Union 2010weitzelm
 
Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)Duane Blackburn
 

Andere mochten auch (20)

Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programming
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
3 f6 security
3 f6 security3 f6 security
3 f6 security
 
E Skills Week Teacher Guide
E Skills Week Teacher GuideE Skills Week Teacher Guide
E Skills Week Teacher Guide
 
23204961
2320496123204961
23204961
 
OltreWeb 2.0 -- Gaudio Fabrizio
OltreWeb 2.0 -- Gaudio FabrizioOltreWeb 2.0 -- Gaudio Fabrizio
OltreWeb 2.0 -- Gaudio Fabrizio
 
Old and/or young
Old and/or youngOld and/or young
Old and/or young
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712
 
Dibujos de movil
Dibujos de movilDibujos de movil
Dibujos de movil
 
Profile Dynamics Info
Profile Dynamics InfoProfile Dynamics Info
Profile Dynamics Info
 
Challenges of AJAX Development for Smartphone Platforms
Challenges of AJAX Development for Smartphone PlatformsChallenges of AJAX Development for Smartphone Platforms
Challenges of AJAX Development for Smartphone Platforms
 
Tugas
TugasTugas
Tugas
 
GM Hand Book
GM Hand BookGM Hand Book
GM Hand Book
 
Sandip Mukherjee CV
Sandip Mukherjee CVSandip Mukherjee CV
Sandip Mukherjee CV
 
BCC 2009 - NSTC
BCC 2009 - NSTCBCC 2009 - NSTC
BCC 2009 - NSTC
 
Baie Des Cochons
Baie Des CochonsBaie Des Cochons
Baie Des Cochons
 
Collateral Advantage
Collateral AdvantageCollateral Advantage
Collateral Advantage
 
Star 2013-pdfa-pdfa
Star 2013-pdfa-pdfaStar 2013-pdfa-pdfa
Star 2013-pdfa-pdfa
 
OpenSocial State of the Union 2010
OpenSocial State of the Union 2010OpenSocial State of the Union 2010
OpenSocial State of the Union 2010
 
Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)
 

Ă„hnlich wie 3 f6 10_testing

Yamuna chari(experience 3years(automation & manual))
Yamuna chari(experience  3years(automation & manual))Yamuna chari(experience  3years(automation & manual))
Yamuna chari(experience 3years(automation & manual))Yamuna Chari
 
Yamuna Chari(Experience -3years(Automation & Manual))
Yamuna Chari(Experience -3years(Automation & Manual))Yamuna Chari(Experience -3years(Automation & Manual))
Yamuna Chari(Experience -3years(Automation & Manual))Yamuna Chari
 
WE-06-Testing.ppt
WE-06-Testing.pptWE-06-Testing.ppt
WE-06-Testing.pptjaved281701
 
Manual testing testing master.pdf
Manual testing testing master.pdfManual testing testing master.pdf
Manual testing testing master.pdfsynamedia
 
ManualTestingMaterial.pdf
ManualTestingMaterial.pdfManualTestingMaterial.pdf
ManualTestingMaterial.pdfSCMCpvt
 
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMA RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMijseajournal
 
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMA RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMijseajournal
 
A_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdf
A_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdfA_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdf
A_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdfAmishGupta15
 
A Project Report ON ONLINE EXAMS SYSTEM
A Project Report ON ONLINE EXAMS SYSTEMA Project Report ON ONLINE EXAMS SYSTEM
A Project Report ON ONLINE EXAMS SYSTEMDawn Cook
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfNitisak Mooltreesri
 
Online Examination system mini project -1.ppt
Online Examination system mini project -1.pptOnline Examination system mini project -1.ppt
Online Examination system mini project -1.pptParvatiRathod1
 
User Testing talk by Chris Rourke of User Vision
User Testing talk by Chris Rourke of User VisionUser Testing talk by Chris Rourke of User Vision
User Testing talk by Chris Rourke of User Visiontechmeetup
 
Preliminry report
 Preliminry report Preliminry report
Preliminry reportJiten Ahuja
 
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo EuteneuerStop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo EuteneuerJAXLondon_Conference
 
Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Carles Farré
 
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysis
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysisStc 2015 regional-round-ppt-exlopratory mobile testing with risk analysis
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysisArchana Krushnan
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Agile India
 

Ă„hnlich wie 3 f6 10_testing (20)

Yamuna chari(experience 3years(automation & manual))
Yamuna chari(experience  3years(automation & manual))Yamuna chari(experience  3years(automation & manual))
Yamuna chari(experience 3years(automation & manual))
 
Yamuna Chari(Experience -3years(Automation & Manual))
Yamuna Chari(Experience -3years(Automation & Manual))Yamuna Chari(Experience -3years(Automation & Manual))
Yamuna Chari(Experience -3years(Automation & Manual))
 
WE-06-Testing.ppt
WE-06-Testing.pptWE-06-Testing.ppt
WE-06-Testing.ppt
 
Manual testing testing master.pdf
Manual testing testing master.pdfManual testing testing master.pdf
Manual testing testing master.pdf
 
ManualTestingMaterial.pdf
ManualTestingMaterial.pdfManualTestingMaterial.pdf
ManualTestingMaterial.pdf
 
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMA RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
 
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMA RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
 
A_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdf
A_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdfA_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdf
A_Project_Report_ON_ONLINE_EXAMS_SYSTEM.pdf
 
A Project Report ON ONLINE EXAMS SYSTEM
A Project Report ON ONLINE EXAMS SYSTEMA Project Report ON ONLINE EXAMS SYSTEM
A Project Report ON ONLINE EXAMS SYSTEM
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perf
 
Online Exam
Online ExamOnline Exam
Online Exam
 
Functional testing patterns
Functional testing patternsFunctional testing patterns
Functional testing patterns
 
Online Examination system mini project -1.ppt
Online Examination system mini project -1.pptOnline Examination system mini project -1.ppt
Online Examination system mini project -1.ppt
 
User Testing talk by Chris Rourke of User Vision
User Testing talk by Chris Rourke of User VisionUser Testing talk by Chris Rourke of User Vision
User Testing talk by Chris Rourke of User Vision
 
Preliminry report
 Preliminry report Preliminry report
Preliminry report
 
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo EuteneuerStop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
 
Unit 09: Web Application Testing
Unit 09: Web Application TestingUnit 09: Web Application Testing
Unit 09: Web Application Testing
 
Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Web Usability (Slideshare Version)
Web Usability (Slideshare Version)
 
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysis
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysisStc 2015 regional-round-ppt-exlopratory mobile testing with risk analysis
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysis
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 

Mehr von op205

3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design op205
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patternsop205
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...op205
 
More on DFT
More on DFTMore on DFT
More on DFTop205
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summaryop205
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filtersop205
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filtersop205
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filtersop205
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filtersop205
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filtersop205
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processingop205
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transformop205
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysisop205
 
3F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part13F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part1op205
 

Mehr von op205 (15)

3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patterns
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
 
More on DFT
More on DFTMore on DFT
More on DFT
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summary
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filters
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filters
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filters
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filters
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filters
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transform
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysis
 
3F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part13F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part1
 

KĂĽrzlich hochgeladen

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

KĂĽrzlich hochgeladen (20)

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

3 f6 10_testing

  • 2. It is All About Trust Defects destroy the trust required for effective software development. The customers need to be able to trust the software. The managers need to be able to trust reports of progress. The programmers need to be able to trust each other. Defects destroy this trust. Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change Main Questions: • What is Testing? • What to Test? • How to Test? • When to Test? • Who should Test? • What are the Tools for the Job? © 2012 Elena Punskaya 2 Cambridge University Engineering Department 2
  • 3. What is Testing? • Testing is double checking - If you add a column of numbers one way, there are many errors that could cause your sum to be wrong. Add the numbers two different ways, say from top and then from the bottom and the same answer is likely to be the right answer. Finding bugs is somewhat like fishing with a net. We use fine, small nets (unit tests) to catch the minnows, and big, coarse nets (integration tests) to catch the killer sharks. Andrew Hunt and David Thomas, The Pragmatic Programmer • Many types of tests exist, what follows is just a starting point! • Many ways to categorise the tests, depending on one’s perspective - © 2012 Elena Punskaya 3 Cambridge University Engineering Department 3
  • 4. What to Test? Let us follow the process: • Unit test - is code that exercises a small unit (module) of software separate from other units of the application - is the foundation of all other types of testing (if parts don’t work by themselves they won’t work together) • Integration (component) testing - ok, all parts seem to be working but how do they interact with each other, does the entire subsystem work? - with good OO design in place should be straightforward to detect the issues - potentially can be the largest source of bugs in a system • Validation and verification - ok, I put something together, this seems to be working as my users wanted but is this what they needed? are functional requirements met? © 2012 Elena Punskaya 4 Cambridge University Engineering Department 4
  • 5. Validation and Verification? © 2012 Elena Punskaya 5 Cambridge University Engineering Department 5
  • 6. What to Test? • Resource exhaustion, errors, recovery - ok, now the system behaves correctly under ideal condition, what about real-world? - could it run out of ‣ memory? ‣ disk space? ‣ CPU bandwidth? ‣ video resolution? ‣ network bandwidth? ‣ etc. - if it has to fail, will it fail gracefully? • Performance testing, stress testing or testing under load - ok, it can work under real world conditions but what if the number of users/ transactions/connections increases? is it scalable? - you might need to simulate the load realistically • Usability testing - ok, seems to work in real world but would it with real users under real conditions? this new tool “fits our hands” but does it “fit other users’ hands” - human factor plays important role, is it intuitively clear how to use? - failure to meet usability requirement is the same as dividing by zero • Test are also software - don’t forget to test them! :-) © 2012 Elena Punskaya 6 Cambridge University Engineering Department 6
  • 7. Profiling Tools • Profiling tools allow to analyse software performance • In particular, tracking Memory Allocation throughout runtime allows to spot memory leaks and inefficient memory use (requiring too much memory space without a real need) • Tracking time required execution of program methods helps to identify “bottlenecks” of performance that could be caused either by ineffective programming techniques or could benefit from optimisation XCode profiling tools, https://developer.apple.com/library/ios/#documentation/Performance/Conceptual/PerformanceOverview/ InitialEvaluation/InitialEvaluation.html#//apple_ref/doc/uid/TP40001410-CH206-SW8 © 2012 Elena Punskaya 7 Cambridge University Engineering Department 7
  • 8. Usability Testing • Usability Testing is should be one of the most critical parts of software development: designing experiences! • Consider web search – a user wants most relevant results in the fastest way, relevance could be measured by analysing user clicks on the result link, but what about speed? Is 1s fast or 0.3s or 0.03s? Is it about the actual speed or about speed’s perception by the user? • Usability studies help to answer those questions by using two types of user research: quantitative (data points) and qualitative (perception) • Quantitative results allow to draw conclusions approximating them on to the whole target user set, i.e. “launching a new banking website will cause no more than 0.1% of online banking users to call the support line” • Qualitative results allow to capture how users feel about their experience with the product/ service • Good usability studies will use both approaches © 2012 Elena Punskaya 8 Cambridge University Engineering Department 8
  • 9. Usability Study Design • Method - define user interactions that are going to be tested, how the user is instructed and how the system is implemented (real product/ prototype / simulator) - define how the user feedback is captured: interviews, scoring cards - define how user interactions are observed and analysed: video and screen capture, eye tracking • User group (Know Your Customer!) - choose the user group to provide a representative set of product/ service users ‣ an app for remote access to computers (e.g. SSH client) is likely to be used by experienced computer users ‣ a web conferencing app (e.g.WebEx) need to be easier to setup by business (non-technical) users ‣ a call/chat client (e.g. Skype) should be easy to use by any computer user - segment target users by their characteristics: demographics: age, gender; level of experience... • Results presentation – a report should include - conclusions based on observations of users by the specialists to identifying e.g. a common source of confusion - qualitative user feedback - quantitative results: rankings/scoring by user groups (charts/tables) © 2012 Elena Punskaya 9 Cambridge University Engineering Department 9
  • 10. Number of Test Users • Jacob Nielsen advocated that most effective approach is multiple usability studies with 5 users at a time http://www.useit.com/alertbox/20000319.html • The chart above applies to the number of users of the same kind, in reality, if the target user set is diverse, so it’d be better to have 5 users for each user segment © 2012 Elena Punskaya 10 Cambridge University Engineering Department 10
  • 11. Number of Test Users • Laura Faulkner in “Beyond the five-user assumption: Benefits of increased sample sizes in usability testing” showed that 5 users do not necessarily deliver 85% problem discovery but a set of 20 was certainly very reliable • In practice, the optimum number can depend on the diversity of target usersFAULKNER complexity of the product 382 and Figure 1. The effect of adding users on reducing variance in the percentage of known usability problems found. Each point represents a single set of randomly sampled users. The horizontal lines show the mean for each group of 100. © 2012 Elena Punskaya 11 Cambridge University Engineering Department use those formulas, such as probabilities, make them im- practitioner to approach increasing levels of certainty practical and misleading for ordinary usability practition- that high percentages of existing usability problems have ers. Although practitioners like simple directive answers been found in testing. In a mission-critical system, large 11
  • 12. Tests from Different Perspective • “Testing Quadrant” categorises the tests according to whether they are Business-Facing or Technology-Facing and whether they support development process or used to critique (review and analyse the project) • Brian Marick introduced Testing Quadrant, it was further discussed by Lisa Crispin and Janet Gregory in “Agile Testing: A Practical Guide for Testers and Agile Teams” and in “Continuous Delivery” by Jez Humble and David Farley © 2012 Elena Punskaya 12 Cambridge University Engineering Department 12
  • 13. Business-Facing tests Supporting Development • Acceptance testing - testing conducted by a customer to verify that the system meets the acceptance criteria of the requested application - ideally should be written and automated before the development starts - ideally should be written by the customers or users - for developers they answer the question: How do I know when I http://www.d80.co.uk/post/2011/03/08/Non-Functional- Requirements-the-forgotten-overlooked-and-underestimated.aspx am done? - for users they answer a question: Acceptance tests that concern the Did I get what I wanted? functionality of the system are - typically should run when the known as Functional acceptance system is in a production-like mode tests – the distinction between Functional and Non-Functional is a bit blurry and often misunderstood © 2012 Elena Punskaya 13 Cambridge University Engineering Department 13
  • 14. Technology-facing tests Supporting Development • Technology-facing tests are written and maintained exclusively by developers • Usually these are unit tests, component tests (integration tests) and deployment tests • Deployment tests are performed whenever one deploys the application and check that it is installed correctly, configured correctly, able to contact any services required and is responding © 2012 Elena Punskaya 14 Cambridge University Engineering Department 14
  • 15. Business-Facing tests that Critique the Project • The tests are not just about verifying that the application meets the specification but also about checking that the specification is correct • Applications are never specified perfectly in advance so there is always room for improvement, users try things they are not supposed to try and break them, complain about usability of most commonly performed tasks, identify new features • Showcases are particularly important - show new functionality to the customers and users as soon as possible to catch any misunderstandings early (can be a blessing and a curse - you might have a lot of suggestions!) • Exploratory testing - “the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests” [James Bach] • Beta testing - give your application to real user, release new features to selected groups without them even noticing © 2012 Elena Punskaya 15 Cambridge University Engineering Department 15
  • 16. Technology-facing tests that Critique the Project • Acceptance tests may test functionality (functional acceptance tested) but may also test other qualities of the system such as capacity, usability, security, modifiability, availability, etc. • All these are qualities other than functionality go under umbrella of nonfunctional tests although the distinction is very blurry, however, what is important is to bother testing them! • It is also not necessarily fair to say that these tests are not business facing – often they are! © 2012 Elena Punskaya 16 Cambridge University Engineering Department 16
  • 17. How to Test? • Regression Tests - compares the output of the previous test with the previous or known values - make sure that bugs fixed today don’t break something else - no unpleasant surprises - can run regression tests to make sure the components function correctly, entire subsystem functions, performance, etc. • Test Data - real-world - “typical data” collected; “typical” might be a surprise and may reveal misunderstandings in requirements - watch out! - synthetic - artificially generated data (not enough real- data, need certain statistical properties, need to stress the boundary condition) - real-world and synthetic - expose different types of bugs • GUI testing - need special tools to exercise, can’t automate everything © 2012 Elena Punskaya 17 Cambridge University Engineering Department 17
  • 18. Why teams Choose to Live with Defects? • Is it possible to create BugFree software? Yes in theory but how one would prove this? • How much does it cost to create BugFree software? Are costs astronomical? • Dilemmas: - bugs are expensive (direct costs of fixing and indirect costs of damaged reputation and relationship, lost time) and eliminating bugs is expensive => economically viable option depends on the acceptable defects level in any particular area - there will always be bugs! (Unknown unknows, unexpected circumstances, new situation) © 2012 Elena Punskaya 18 Cambridge University Engineering Department 18
  • 19. Horses for Courses • Not all SOFTWARE is created equal, choose an engineering approach accordingly Our tests suite takes nine minutes to run (distributed across 30-40 machines). Our code pushes take another six minutes. Since these two steps are pipelined that means at peak we’re pushing a new revision of the code to the website every nine minutes. That’s 6 deploys an hour. Even at that pace we’re often batching multiple commits into a single test/push cycle. On average we deploy new code fifty times a day. [1] This software never crashes. It never needs to be re- booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program – each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. [2] © 2012 Elena Punskaya 19 Cambridge University Engineering Department 19
  • 20. When to Test? • The sooner one finds the defect the cheaper it is to fix it (catch it the minute it was created and it costs nothing) • Late testing is expensive and leaves many defects We want to start testing as soon as we have code. Those tiny minnows have a nasty habit of becoming giant, man-eating sharks pretty fast, and catching a shark is quite a bit harder. Andrew Hunt and David Thomas, The Pragmatic Programmer Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change • Frequent testing reduces costs and defects (fix sooner and cheaply) Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change © 2012 Elena Punskaya 20 Cambridge University Engineering Department 20
  • 21. Who Should Test? • Frequent testing (difficult to have a dedicated tester) might mean programmers themselves write the tests, i.e. the same people who make mistakes write the tests - they need another prospective! Buddy programmer? Think like a users? • Consider two prospectives: programmers and users, involve the users at the very early stages • Most developers hate testing - they tend to be very gentle (subconsciously) with their creations and tend to avoid the weak spots intuitively. • Who likes testing??? - testing could be very tedious – given a 100 pages long test script most humans turn on the “zombie mode” ;) • Solution? Automate whenever possible (so all the tedious bits are done by the machines)! - But someone still needs to define all test cases and implement them in the automated testing framework - Also, it is difficult to substitute manual testing for capturing unexpected user behaviour, the best testers have a six sense for breaking things :) © 2012 Elena Punskaya 21 Cambridge University Engineering Department 21
  • 22. Automated Testing • The goal is to reach “coverage” – cover the most practically possible number of test cases • It would typically include • All unit tests – developers implement and commit those to the source code repository during the development process • Regression tests – given the set of know inputs, does the system still produce the same set of outputs? • UI testing – cover various screen flows, difficult to automate but increasingly more and more coverage is possible • Probably enough for a “standard” app, but what about large distributed services in the “Cloud”? – Test Automation Cloud - Salesforce.com: average 600 change lists per day - “Test automation cloud provides accurate, complete and fast feedbacks to every change to the system, on a per change list basis” - Hardware: 2000 Linux Virtual Machines and 1000 Selenium Virtual Machines to run all required tests © 2012 Elena Punskaya 22 Cambridge University Engineering Department 22
  • 23. Tools for the Job • The test tools are growing and maturing rapidly, many contributed to Open Source by big commercial vendors and many are created and evangelised by startups, some as examples are: • xUnit – a unit testing framework, ported to many languages, including JUnit (Java) and NUnit (C#) • KIF – “Keep it Functional” – a new iOS UI testing framework, allows to specify user interactions for test scenarios and check app’s resulting behaviour (which screen appeared etc.) - http://corner.squareup.com/2011/07/ios-integration-testing.html • Selenium – “Automates Browsers” – allows to simulate interactions and check results with websites - http://seleniumhq.org/ • Robotium – “It’s like Selenium, but for Android” - http://code.google.com/p/robotium/ • Static code analysers – checking for code inconsistency/ inefficiency, security etc., e.g. FxCop (for .NET) © 2012 Elena Punskaya 23 Cambridge University Engineering Department 23