SlideShare uma empresa Scribd logo
1 de 35
Author – Unknown
Edited / Published – Rajesh
      www.scmGalaxy.com




         scmgalaxy.com
   Making sure the application does the RIGHT
   things RIGHT (Uncle Bob's definition)
   The activity of finding bugs
   What is a bug?
   Are QA and testing the same thing?
   What is 'quality'? “Value to some person."
    Jerry
   Weinberg
   No “throwing code over the wall” to QA


                               scmgalaxy.com
   2 words: rapid feedback
   Short feedback loop between testers and
   developers
   Find critical bugs early rather than late
   Testers are service providers, not last line of
    defense
   Involve customers early in writing tests
   Focus on automation



                                  scmgalaxy.com
   Testing can be dull when repetitive
   Enter scripting and automation
   Automated vs. automationaided
   testing (agile vs.
   contextdriven)
   Developers running unit tests before checkin
   Tests running unattended in continuous
   integration tool
   Testers using their investigative talents in
   performing exploratory testing


                                scmgalaxy.com
   Smoke tests
   Regression tests
   Longrunning
   tests (can expose memory leaks)
   Test data generation




                               scmgalaxy.com
   Agile processes require discipline
   Very easy not to write tests
   Very easy to see test writing as a waste of
    development
   time
   Need somebody in charge of CI/automated
    testing
   processes
   Do not let test results go red
   Broken windows theory
   Bitrot (Pybots example)


                                  scmgalaxy.com
   Test one function/method at a time
   “Doing things RIGHT”
   Written by developers; need to be fast
   Use unit test frameworks
   setup/teardown methods
   automatic test discovery
   Best bang for your automated testing buck
   Safety net for merciless refactoring
   Great way to learn 3rd party libraries


                               scmgalaxy.com
   Simulate application interaction with external
   resources not under your control
   Eliminate data randomness
   Simulate exceptions and hardtoreproduce
   errors
   Examples: databases, web services, weather
    data
   Mocks vs. stubs (expectations vs. canned
    data)
   Great article by Martin Fowler


                                 scmgalaxy.com
   More coarsegrained than unit tests
   Test at the requirement/story level
   Test various paths through the application
   Written by testers and/or developers
   Still “doing things RIGHT”
   GUI or commandline




                                scmgalaxy.com
   Similar to functional testing... but
   Businessfacing
   (vs. codefacing)
   “Doing the RIGHT things”
   Ideally brings together customers/business
   analysts, developers and testers
   Agile aspects
   Executable requirements
   Executable documentation


                               scmgalaxy.com
   Endtoend
   testing
   Tracer bullet development and testing
   Candle making
   Tied closely to Continuous Integration
    processes
   and tools
   Single platform vs. multiplatform/
   OS/environment
   (buildbot)


                                scmgalaxy.com
   Performance testing – not about finding bugs
   Eliminate bottlenecks, establish baselines
   Careful analysis and measurement (“white box”)
   Needs well defined expectations
   Load testing – test system behavior under
   constant load (volume, endurance)
   Throughput, large data sets (“black box”)
   Stress testing – test system behavior under very
   high load
   Does the system fail and recover gracefully?


                                   scmgalaxy.com
   We live in a Web 2.0 world
   Users want instant gratification
   Some Web apps have multiple deployments per
   day; cloud computing make it easy
   Sysadmins need to be testers too
   Most stop at step #1 (automation)
   Need to go to step #2 (testing the deployment)
   Chuck Rossi, Release Engineer, Facebook: “As an engineer, you
   will probably never work in an environment that's quite like
    Facebook. I can
   pretty confidently say that there is no other place where changes
    you make in
   the code will be in front of your mom and 175 million other
    people in less than 60
   minutes.”



                                            scmgalaxy.com
   James Bach and Michael Bolton: CRUSPIC 'ilities'
    testing
   Capability
   Reliability
   Usability
   Scalability
   Performance
   Installability (critical; if your app doesn't install,
    nothing else
   matters...)
   Compatibility
   Security – a field in itself


                                       scmgalaxy.com
   Fuzz testing: a method for discovering bugs or faults
    in
   programs by providing them with random or
    malicious data as
   input, and monitoring them for exceptions, segfaults
    or other
   errors.
   Wide range of fuzzing tools
   Throw random data at target application
   Modify valid samples of input data in various ways
   Modify data packets for specific protocols
   Mutate code and run unit test (Jester)
   Easy to run, can find unexpected bugs


                                     scmgalaxy.com
   Black box vs. white box
   GUI vs. business logic
   Codefacing
   vs. business facing (Brian Marick)
   Smoke testing




                                 scmgalaxy.com
   Whitebox
   testing: knowledge of application internals
   Show me the code
   Unit, functional, integration tests
   Knowledge of critical areas to probe
   Knowledge of bug clusters
   Blackbox
   testing: probe external interfaces of application
   Apply inputs, observe outputs and behavior
   Mirrors the user experience
   Can be at GUI level or commandline
   level
   Graybox
   testing: some knowledge of app. Internals
   Finetune
   inputs, use testing hooks




                                                  scmgalaxy.com
   Testing at the GUI level
   Mirrors user experience
   Gives warm and fuzzy feeling to customers
   Tests are brittle, need to be changed frequently
   Still need to test underneath
   Testing at the businesslogic
   level
   Exercise the logic of your application
   Did the widget really get added to the order in the DB?
   “Buildoperatecheck”
   pattern
   Build test data, operate against it, check expectations
   FitNesse: another thin GUI into the business logic



                                         scmgalaxy.com
   For businesslogic
   level tests to be effective, developers need
   to provide clear ways to access the internal
    application logic
   Clean separation between GUI layer and businesslogic
   layer
   MVC pattern
   Testing hooks into internal application functionality
    can evolve
   into API (web services)
   Both GUI and businesslogic
   tests are important and
   necessary (Selenium vs. FitNesse)


                                     scmgalaxy.com
   Scriptable interfaces into the application can
   evolve into
   API
   Hidden options for rich debugging output
    (pizza)
   Logging
   Clear error and exception messages




                                 scmgalaxy.com
   Codefacing
   tests
   Use the language of programmers
   Low level
   Unit and functional tests
   Business or customerfacing
   tests
   Expressed in the business domain language of the
   application
   Higherlevel
   acceptance tests
   Foster collaboration between customers and developers
   facilitated by testers



                                       scmgalaxy.com
   Plug the board in, see if smoke comes out
   “Kick the tires” testing
   Tests if the application works AT ALL
   Tests most common paths through the
    application
   can users log in?
   can users add items to the shopping cart?
   Tests paths most visible by customers
   A build is deemed as failed if it doesn't pass the
   smoke tests


                                    scmgalaxy.com
   Where do you start? Where you feel the most
    pain
   TDD vs. TED
   Titus Brown: “I do stupiditydriven
   testing. When I
   do something stupid, I write a test to make
    sure I
   don't do it again."
   Add an automated tests when fixing a bug
   Michael Feathers: legacy code has no unit
    tests

                               scmgalaxy.com
   2nd law of automated testing: “If you ship versioned
   software, you need automated tests”
   Regression testing
   Smoke testing
   Safety net for refactoring
   No automated tests == nauseating feeling in pit of
   stomach upon every launch
   Web 2.0 world: launches can happen daily
   Continuous deployments: “fear is the mind killer”
    post by Eric
   Ries:
    http://startuplessonslearned.blogspot.com/2009/05
    /fearismindkiller.
   html

                                    scmgalaxy.com
   Some exceptions
   Throwaway
   Web sites (eventbased,
   temporary)
   Most notable: Linux kernel
   But ESR's law applies: “Given enough eyeballs,
    all bugs
   are shallow”



                                scmgalaxy.com
   Titus Brown: what happens to projects that lack
   both automated tests and an exponentially
   increasing team of testers?
   1. They manually test the new features and bug
    fixes that
   they've just added.
   2. They release their software.
   3. Their software breaks in unexpected locations,
    bug reports
   are filed, and (optimistically) those bugs are
    fixed. Go to
   #1.


                                  scmgalaxy.com
   Automated test suites need to be maintained
    just
   like production code
   Bitrot happens quickly
   Don't underestimate effort to maintain test
    suites
   GUIlevel
   test suites are especially brittle and will need
    to
   be changed often

                                  scmgalaxy.com
   Critical piece of development and testing
   infrastructure
   Automated builds and automated test runs
   Start small, iterate (candle making again)
   Run fast tests upon each checkin
   Run slower tests periodically (at least
    once/day)




                                scmgalaxy.com
   Invaluable for finding
    OS/platform/environmentspecific
   issues
   Unit tests might work in individual developer
   environments, but could break in a clean env.
   Serverbased
   vs. clientbased
   applications
   Single OS vs. multiple OS
   Web application vs. Python interpreter
   Pybots – set of build slaves running tests upon
   checkins
   to the main Python interpreter


                                     scmgalaxy.com
   Essential for testing in different types of
   environments
   Development, staging, production
   Single OS vs. multiple OS
   Cloud computing makes things easier, as long as
   you automate
   Development and staging environments may
   involve mock testing techniques (random data)
   NOTHING is like production (application melting
   under production traffic); use 'dark launching


                                 scmgalaxy.com
   Shows lines of code executed during tests
   Code coverage tests your tests! (Ned Batchelder
   http://us.pycon.org/2009/conference/schedule/
    event/26/)
   Necessary but not sufficient for your testing
   100% code coverage is hard to achieve
   80/20 rule applies: the last 20% of code coverage
    will
   require 80% of your effort
   Look at trends, not absolute numbers
   Current tools can handle line coverage
   Branch and path coverage are more elusive goals


                                  scmgalaxy.com
   Documentation is not fun: ”No man but a
    blockhead
   ever wrote except for money” Samuel
   Johnson
   Documentation is necessary; Open Source
   projects live or die by their docs
   Tests as documentation – storytests (Kerievsky)
   “Executable documentation”, “executable
   requirements”
   FitNesse, Robot framework
   Python: doctests


                                  scmgalaxy.com
   In an agile world, you're done when the tests for
   all stories in the current iteration pass
   For the nagging feeling in the pit of the stomach
    to
   go away, you need ideally all types of tests:
   Unit
   Functional
   Acceptance
   Integration
   Installability/multiplatform
   Performance, stress, security, etc. etc. etc.


                                   scmgalaxy.com
   Agile testing
   Elisabeth Hendrickson: http://www.qualitytree.com/
   Brian Marick: http://www.exampler.com/
   Lisa Crispin: http://lisacrispin.com
   Unit and mock testing
   Michael Feathers book “Working Effectively with Legacy Code”:
   http://www.amazon.com/WorkingEffectivelyLegacyRobertMartin/
   dp/0131177052
   Roy Osherove book “The Art of Unit Testing”:
   http://www.manning.com/osherove/
   Gerard Mesarosz: http://xunitpatterns.com/
   Martin Fowler:
    http://www.martinfowler.com/articles/mocksArentStubs.html




                                          scmgalaxy.com
THANKS



     scmgalaxy.com

Mais conteúdo relacionado

Mais procurados

Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Common Challenges & Best Practices for TDD on iOS
Common Challenges & Best Practices for TDD on iOSCommon Challenges & Best Practices for TDD on iOS
Common Challenges & Best Practices for TDD on iOSDerek Lee Boire
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in seliniumTutorial of web application load testing in selinium
Tutorial of web application load testing in seliniumKevalkumar Shah
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksŁukasz Morawski
 
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelModel-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelBob Binder
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testingdidev
 
General technical interview questions
General technical interview questionsGeneral technical interview questions
General technical interview questionsKevalkumar Shah
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Babul Mirdha
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In ActionJon Kruger
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)David Ehringer
 
Test Driven Development (C#)
Test Driven Development (C#)Test Driven Development (C#)
Test Driven Development (C#)Alan Dean
 
Test driven development
Test driven developmentTest driven development
Test driven developmentNascenia IT
 
Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven DevelopmentFerdous Mahmud Shaon
 

Mais procurados (20)

Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
Common Challenges & Best Practices for TDD on iOS
Common Challenges & Best Practices for TDD on iOSCommon Challenges & Best Practices for TDD on iOS
Common Challenges & Best Practices for TDD on iOS
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Tutorial of web application load testing in selinium
Tutorial of web application load testing in seliniumTutorial of web application load testing in selinium
Tutorial of web application load testing in selinium
 
Unit tests benefits
Unit tests benefitsUnit tests benefits
Unit tests benefits
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
 
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelModel-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next Level
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
General technical interview questions
General technical interview questionsGeneral technical interview questions
General technical interview questions
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
 
TestDrivenDeveloment
TestDrivenDevelomentTestDrivenDeveloment
TestDrivenDeveloment
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Test Driven Development (C#)
Test Driven Development (C#)Test Driven Development (C#)
Test Driven Development (C#)
 
Manual Vs Automation Testing
Manual Vs Automation TestingManual Vs Automation Testing
Manual Vs Automation Testing
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven Development
 
Automated Testing
Automated TestingAutomated Testing
Automated Testing
 
Tdd dev session
Tdd dev sessionTdd dev session
Tdd dev session
 

Destaque

Fundamentals of software testing
Fundamentals of software testingFundamentals of software testing
Fundamentals of software testingNoha Gamal
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsKMS Technology
 
Different type of_software_testing - copy
Different type of_software_testing - copyDifferent type of_software_testing - copy
Different type of_software_testing - copyYogita patil
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTsuhasreddy1
 
Types of Software Testing
Types of Software TestingTypes of Software Testing
Types of Software TestingNishant Worah
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing BasicsBelal Raslan
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 
Software testing life cycle
Software testing life cycleSoftware testing life cycle
Software testing life cycleGaruda Trainings
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 

Destaque (11)

Fundamentals of software testing
Fundamentals of software testingFundamentals of software testing
Fundamentals of software testing
 
Why Scm
Why ScmWhy Scm
Why Scm
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
 
Different type of_software_testing - copy
Different type of_software_testing - copyDifferent type of_software_testing - copy
Different type of_software_testing - copy
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPT
 
Types of Software Testing
Types of Software TestingTypes of Software Testing
Types of Software Testing
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Software testing life cycle
Software testing life cycleSoftware testing life cycle
Software testing life cycle
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 

Semelhante a Testing in a glance

Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself ) Globant
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choicetoddbr
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
 
Testing Interview Questions.pdf
Testing Interview Questions.pdfTesting Interview Questions.pdf
Testing Interview Questions.pdfPradeepaKannan6
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual TestingDirecti Group
 
Automated+Testing+Vs+Manual+Testing
Automated+Testing+Vs+Manual+TestingAutomated+Testing+Vs+Manual+Testing
Automated+Testing+Vs+Manual+Testinggueste1e4db
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniquesersanbilik
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2Rosie Sherry
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsBhavin Javia
 
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Applitools
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of TestingPalash Ghosh
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Cωνσtantίnoς Giannoulis
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to considerLloydMoore
 
Top 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOpsTop 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOpsscmGalaxy Inc
 

Semelhante a Testing in a glance (20)

Testing concepts
Testing conceptsTesting concepts
Testing concepts
 
Software testing methods
Software testing methodsSoftware testing methods
Software testing methods
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Testing Interview Questions.pdf
Testing Interview Questions.pdfTesting Interview Questions.pdf
Testing Interview Questions.pdf
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
Automated+Testing+Vs+Manual+Testing
Automated+Testing+Vs+Manual+TestingAutomated+Testing+Vs+Manual+Testing
Automated+Testing+Vs+Manual+Testing
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
 
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of Testing
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
 
Unit testing - An introduction
Unit testing - An introductionUnit testing - An introduction
Unit testing - An introduction
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to consider
 
Top 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOpsTop 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOps
 

Mais de Rajesh Kumar

Fundamental of apache maven
Fundamental of apache mavenFundamental of apache maven
Fundamental of apache mavenRajesh Kumar
 
Git and github fundamental
Git and github fundamentalGit and github fundamental
Git and github fundamentalRajesh Kumar
 
Tools for quality matrix and kloc
Tools for quality matrix and klocTools for quality matrix and kloc
Tools for quality matrix and klocRajesh Kumar
 
Code coverage & tools
Code coverage & toolsCode coverage & tools
Code coverage & toolsRajesh Kumar
 
Scm process assessment guide
Scm process assessment guideScm process assessment guide
Scm process assessment guideRajesh Kumar
 
Branching and Merging Practices
Branching and Merging Practices Branching and Merging Practices
Branching and Merging Practices Rajesh Kumar
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuildRajesh Kumar
 
Version Control With CVS
Version Control With CVSVersion Control With CVS
Version Control With CVSRajesh Kumar
 
Using Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee ApplicationsUsing Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee ApplicationsRajesh Kumar
 
Software Configuration Management And CVS
Software Configuration Management And CVSSoftware Configuration Management And CVS
Software Configuration Management And CVSRajesh Kumar
 
Scm With Mks Integrity
Scm With Mks IntegrityScm With Mks Integrity
Scm With Mks IntegrityRajesh Kumar
 
Introduction To Software Configuration Management
Introduction To Software Configuration ManagementIntroduction To Software Configuration Management
Introduction To Software Configuration ManagementRajesh Kumar
 
Introduction To Ant
Introduction To AntIntroduction To Ant
Introduction To AntRajesh Kumar
 
Introduction To Ant1
Introduction To  Ant1Introduction To  Ant1
Introduction To Ant1Rajesh Kumar
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration ManagementRajesh Kumar
 

Mais de Rajesh Kumar (20)

Fundamental of apache maven
Fundamental of apache mavenFundamental of apache maven
Fundamental of apache maven
 
Git and github fundamental
Git and github fundamentalGit and github fundamental
Git and github fundamental
 
Tools for quality matrix and kloc
Tools for quality matrix and klocTools for quality matrix and kloc
Tools for quality matrix and kloc
 
Cast vs sonar
Cast vs sonarCast vs sonar
Cast vs sonar
 
Cast vs sonar
Cast vs sonarCast vs sonar
Cast vs sonar
 
Rpm cheatbook
Rpm cheatbookRpm cheatbook
Rpm cheatbook
 
Code coverage & tools
Code coverage & toolsCode coverage & tools
Code coverage & tools
 
Scm process assessment guide
Scm process assessment guideScm process assessment guide
Scm process assessment guide
 
Cruise control
Cruise controlCruise control
Cruise control
 
Cloud computer
Cloud computerCloud computer
Cloud computer
 
Branching and Merging Practices
Branching and Merging Practices Branching and Merging Practices
Branching and Merging Practices
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuild
 
Version Control With CVS
Version Control With CVSVersion Control With CVS
Version Control With CVS
 
Using Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee ApplicationsUsing Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee Applications
 
Software Configuration Management And CVS
Software Configuration Management And CVSSoftware Configuration Management And CVS
Software Configuration Management And CVS
 
Scm With Mks Integrity
Scm With Mks IntegrityScm With Mks Integrity
Scm With Mks Integrity
 
Introduction To Software Configuration Management
Introduction To Software Configuration ManagementIntroduction To Software Configuration Management
Introduction To Software Configuration Management
 
Introduction To Ant
Introduction To AntIntroduction To Ant
Introduction To Ant
 
Introduction To Ant1
Introduction To  Ant1Introduction To  Ant1
Introduction To Ant1
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Management
 

Último

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
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
 
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 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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
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
 

Último (20)

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
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
 
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 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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
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
 

Testing in a glance

  • 1. Author – Unknown Edited / Published – Rajesh www.scmGalaxy.com scmgalaxy.com
  • 2. Making sure the application does the RIGHT  things RIGHT (Uncle Bob's definition)  The activity of finding bugs  What is a bug?  Are QA and testing the same thing?  What is 'quality'? “Value to some person." Jerry  Weinberg  No “throwing code over the wall” to QA scmgalaxy.com
  • 3. 2 words: rapid feedback  Short feedback loop between testers and  developers  Find critical bugs early rather than late  Testers are service providers, not last line of defense  Involve customers early in writing tests  Focus on automation scmgalaxy.com
  • 4. Testing can be dull when repetitive  Enter scripting and automation  Automated vs. automationaided  testing (agile vs.  contextdriven)  Developers running unit tests before checkin  Tests running unattended in continuous  integration tool  Testers using their investigative talents in  performing exploratory testing scmgalaxy.com
  • 5. Smoke tests  Regression tests  Longrunning  tests (can expose memory leaks)  Test data generation scmgalaxy.com
  • 6. Agile processes require discipline  Very easy not to write tests  Very easy to see test writing as a waste of development  time  Need somebody in charge of CI/automated testing  processes  Do not let test results go red  Broken windows theory  Bitrot (Pybots example) scmgalaxy.com
  • 7. Test one function/method at a time  “Doing things RIGHT”  Written by developers; need to be fast  Use unit test frameworks  setup/teardown methods  automatic test discovery  Best bang for your automated testing buck  Safety net for merciless refactoring  Great way to learn 3rd party libraries scmgalaxy.com
  • 8. Simulate application interaction with external  resources not under your control  Eliminate data randomness  Simulate exceptions and hardtoreproduce  errors  Examples: databases, web services, weather data  Mocks vs. stubs (expectations vs. canned data)  Great article by Martin Fowler scmgalaxy.com
  • 9. More coarsegrained than unit tests  Test at the requirement/story level  Test various paths through the application  Written by testers and/or developers  Still “doing things RIGHT”  GUI or commandline scmgalaxy.com
  • 10. Similar to functional testing... but  Businessfacing  (vs. codefacing)  “Doing the RIGHT things”  Ideally brings together customers/business  analysts, developers and testers  Agile aspects  Executable requirements  Executable documentation scmgalaxy.com
  • 11. Endtoend  testing  Tracer bullet development and testing  Candle making  Tied closely to Continuous Integration processes  and tools  Single platform vs. multiplatform/  OS/environment  (buildbot) scmgalaxy.com
  • 12. Performance testing – not about finding bugs  Eliminate bottlenecks, establish baselines  Careful analysis and measurement (“white box”)  Needs well defined expectations  Load testing – test system behavior under  constant load (volume, endurance)  Throughput, large data sets (“black box”)  Stress testing – test system behavior under very  high load  Does the system fail and recover gracefully? scmgalaxy.com
  • 13. We live in a Web 2.0 world  Users want instant gratification  Some Web apps have multiple deployments per  day; cloud computing make it easy  Sysadmins need to be testers too  Most stop at step #1 (automation)  Need to go to step #2 (testing the deployment)  Chuck Rossi, Release Engineer, Facebook: “As an engineer, you  will probably never work in an environment that's quite like Facebook. I can  pretty confidently say that there is no other place where changes you make in  the code will be in front of your mom and 175 million other people in less than 60  minutes.” scmgalaxy.com
  • 14. James Bach and Michael Bolton: CRUSPIC 'ilities' testing  Capability  Reliability  Usability  Scalability  Performance  Installability (critical; if your app doesn't install, nothing else  matters...)  Compatibility  Security – a field in itself scmgalaxy.com
  • 15. Fuzz testing: a method for discovering bugs or faults in  programs by providing them with random or malicious data as  input, and monitoring them for exceptions, segfaults or other  errors.  Wide range of fuzzing tools  Throw random data at target application  Modify valid samples of input data in various ways  Modify data packets for specific protocols  Mutate code and run unit test (Jester)  Easy to run, can find unexpected bugs scmgalaxy.com
  • 16. Black box vs. white box  GUI vs. business logic  Codefacing  vs. business facing (Brian Marick)  Smoke testing scmgalaxy.com
  • 17. Whitebox  testing: knowledge of application internals  Show me the code  Unit, functional, integration tests  Knowledge of critical areas to probe  Knowledge of bug clusters  Blackbox  testing: probe external interfaces of application  Apply inputs, observe outputs and behavior  Mirrors the user experience  Can be at GUI level or commandline  level  Graybox  testing: some knowledge of app. Internals  Finetune  inputs, use testing hooks scmgalaxy.com
  • 18. Testing at the GUI level  Mirrors user experience  Gives warm and fuzzy feeling to customers  Tests are brittle, need to be changed frequently  Still need to test underneath  Testing at the businesslogic  level  Exercise the logic of your application  Did the widget really get added to the order in the DB?  “Buildoperatecheck”  pattern  Build test data, operate against it, check expectations  FitNesse: another thin GUI into the business logic scmgalaxy.com
  • 19. For businesslogic  level tests to be effective, developers need  to provide clear ways to access the internal application logic  Clean separation between GUI layer and businesslogic  layer  MVC pattern  Testing hooks into internal application functionality can evolve  into API (web services)  Both GUI and businesslogic  tests are important and  necessary (Selenium vs. FitNesse) scmgalaxy.com
  • 20. Scriptable interfaces into the application can  evolve into  API  Hidden options for rich debugging output (pizza)  Logging  Clear error and exception messages scmgalaxy.com
  • 21. Codefacing  tests  Use the language of programmers  Low level  Unit and functional tests  Business or customerfacing  tests  Expressed in the business domain language of the  application  Higherlevel  acceptance tests  Foster collaboration between customers and developers  facilitated by testers scmgalaxy.com
  • 22. Plug the board in, see if smoke comes out  “Kick the tires” testing  Tests if the application works AT ALL  Tests most common paths through the application  can users log in?  can users add items to the shopping cart?  Tests paths most visible by customers  A build is deemed as failed if it doesn't pass the  smoke tests scmgalaxy.com
  • 23. Where do you start? Where you feel the most pain  TDD vs. TED  Titus Brown: “I do stupiditydriven  testing. When I  do something stupid, I write a test to make sure I  don't do it again."  Add an automated tests when fixing a bug  Michael Feathers: legacy code has no unit tests scmgalaxy.com
  • 24. 2nd law of automated testing: “If you ship versioned  software, you need automated tests”  Regression testing  Smoke testing  Safety net for refactoring  No automated tests == nauseating feeling in pit of  stomach upon every launch  Web 2.0 world: launches can happen daily  Continuous deployments: “fear is the mind killer” post by Eric  Ries: http://startuplessonslearned.blogspot.com/2009/05 /fearismindkiller.  html scmgalaxy.com
  • 25. Some exceptions  Throwaway  Web sites (eventbased,  temporary)  Most notable: Linux kernel  But ESR's law applies: “Given enough eyeballs, all bugs  are shallow” scmgalaxy.com
  • 26. Titus Brown: what happens to projects that lack  both automated tests and an exponentially  increasing team of testers?  1. They manually test the new features and bug fixes that  they've just added.  2. They release their software.  3. Their software breaks in unexpected locations, bug reports  are filed, and (optimistically) those bugs are fixed. Go to  #1. scmgalaxy.com
  • 27. Automated test suites need to be maintained just  like production code  Bitrot happens quickly  Don't underestimate effort to maintain test suites  GUIlevel  test suites are especially brittle and will need to  be changed often scmgalaxy.com
  • 28. Critical piece of development and testing  infrastructure  Automated builds and automated test runs  Start small, iterate (candle making again)  Run fast tests upon each checkin  Run slower tests periodically (at least once/day) scmgalaxy.com
  • 29. Invaluable for finding OS/platform/environmentspecific  issues  Unit tests might work in individual developer  environments, but could break in a clean env.  Serverbased  vs. clientbased  applications  Single OS vs. multiple OS  Web application vs. Python interpreter  Pybots – set of build slaves running tests upon  checkins  to the main Python interpreter scmgalaxy.com
  • 30. Essential for testing in different types of  environments  Development, staging, production  Single OS vs. multiple OS  Cloud computing makes things easier, as long as  you automate  Development and staging environments may  involve mock testing techniques (random data)  NOTHING is like production (application melting  under production traffic); use 'dark launching scmgalaxy.com
  • 31. Shows lines of code executed during tests  Code coverage tests your tests! (Ned Batchelder  http://us.pycon.org/2009/conference/schedule/ event/26/)  Necessary but not sufficient for your testing  100% code coverage is hard to achieve  80/20 rule applies: the last 20% of code coverage will  require 80% of your effort  Look at trends, not absolute numbers  Current tools can handle line coverage  Branch and path coverage are more elusive goals scmgalaxy.com
  • 32. Documentation is not fun: ”No man but a blockhead  ever wrote except for money” Samuel  Johnson  Documentation is necessary; Open Source  projects live or die by their docs  Tests as documentation – storytests (Kerievsky)  “Executable documentation”, “executable  requirements”  FitNesse, Robot framework  Python: doctests scmgalaxy.com
  • 33. In an agile world, you're done when the tests for  all stories in the current iteration pass  For the nagging feeling in the pit of the stomach to  go away, you need ideally all types of tests:  Unit  Functional  Acceptance  Integration  Installability/multiplatform  Performance, stress, security, etc. etc. etc. scmgalaxy.com
  • 34. Agile testing  Elisabeth Hendrickson: http://www.qualitytree.com/  Brian Marick: http://www.exampler.com/  Lisa Crispin: http://lisacrispin.com  Unit and mock testing  Michael Feathers book “Working Effectively with Legacy Code”:  http://www.amazon.com/WorkingEffectivelyLegacyRobertMartin/  dp/0131177052  Roy Osherove book “The Art of Unit Testing”:  http://www.manning.com/osherove/  Gerard Mesarosz: http://xunitpatterns.com/  Martin Fowler: http://www.martinfowler.com/articles/mocksArentStubs.html scmgalaxy.com
  • 35. THANKS scmgalaxy.com