Tang, Tze Chin
Agile Coach
 10 Years Experience in Agile Methods.
 5 Years in Test Development Engineering.
 Scrum, Lean, Kanban, Scrumban, XP, Continuous Delivery,
DevOps, Lean Startup, Test Automation, Agile Management,
Theory of Constraints.
 Waterfall, WaterScrumFall, ScrumBut, RUP.
 Tech Lead, Manager, Product Owner, Scrum Master
 Community Organizer (Agile Malaysia), Conference Speaker.
 Lean Startup & StartUp Mentor.
Gather
Requirements
Design
ConstructTest
Deliver
Software testing is a process of executing a program or
application with the intent of finding the software bugs.
It can also be stated as the process of validating and
verifying that a software program or application or
product:
Meets the business and technical requirements that
guided it’s design and development
Works as expected
Can be implemented with the same characteristic.
International Software
Testing Qualifications
Board (ISTQB)
Source: http://istqbexamcertification.com/what-is-a-software-testing/
Cost of change gets more expensive the
more effort is put in to transformation
requirements in to working software.
Focus on finding bugs as far left of the
curve as possible.
 User Acceptance Testing / Beta
 With the end user.
 Acceptance Tests
 End to end testing / Within development.
 Integration Tests
 Testing between sub-systems.
 Unit Tests
 At the ‘unit’ level.
Credit: Suceeding wiith Agile, Mike CohnMoreAutomationRequired
Credit: Mike CohnCredit: Dan North
IncreasingAutomation
IncreasingCost
 Usability
 Maintainability
 Scalability
 Availability
 Extensibility
 Security
 Portability
Source: http://codesqueeze.com/the-7-software-ilities-you-need-to-know/ Source: https://en.wikipedia.org/wiki/Non-functional_requirement
“Ensuring built software that maximizes market returns, whilst
lowering cost of development and minimizing risk to the enterprise.”
Or
“Build working software quickly, make customers happy and cover your
rear.”
In computer programming, a characterization test
is a means to describe (characterize) the actual
behavior of an existing piece of software, and
therefore protect existing behavior of legacy code
against unintended changes via automated
testing.
Working with Legacy Code
– Michael Feathers
To find out how software fails.Tze Chin Tang
 To understand the systems behavior such as:
 Peak Usage
 Latency
 Longetivity
 Size (database / storage)
 To catch problems such as:
 Memory Leaks
 Network Constraints
 System Constraints
 Performance Limits
1. Identify parameters to monitor.
• E.g. load time, time to complete, # of
concurrent operations.
2. Identify how to stress the system w.r.t.
parameters to monitor.
• E.g. # concurrent users, transactions / time
period.
3. Identify test surface.
• E.g. UI, API, Unit/Integration test.
4. Determine load.
5. Run Test
6. Analyse Results
• Did it meet your expectations?
• Did you have expectation?
• Root Cause Analysis
7. Determine next course of action.
• Keep, fix, improve, reduce, etc…
Slowing down…
Failed!
Source: http://moodle.oakland.k12.mi.us/os/mod/book/tool/print/index.php?id=25499
• Proactive, continuous monitoring to ensure
performance within constraints.
• To understand characteristics over time
and different conditions (e.g. seasonality,
time of day).
• To identify and measure impact as the
system changes due to code changes,
infrastructure.
• To identify changes in how the user
interacts with the system over time.
• Monitor sets parameters, they frequently
go together – helps to identify constraints
within the system.
Software Characterization & Performance Testing - Beat Your Software with a Stick

Software Characterization & Performance Testing - Beat Your Software with a Stick

  • 1.
  • 2.
     10 YearsExperience in Agile Methods.  5 Years in Test Development Engineering.  Scrum, Lean, Kanban, Scrumban, XP, Continuous Delivery, DevOps, Lean Startup, Test Automation, Agile Management, Theory of Constraints.  Waterfall, WaterScrumFall, ScrumBut, RUP.  Tech Lead, Manager, Product Owner, Scrum Master  Community Organizer (Agile Malaysia), Conference Speaker.  Lean Startup & StartUp Mentor.
  • 3.
  • 4.
    Software testing isa process of executing a program or application with the intent of finding the software bugs. It can also be stated as the process of validating and verifying that a software program or application or product: Meets the business and technical requirements that guided it’s design and development Works as expected Can be implemented with the same characteristic. International Software Testing Qualifications Board (ISTQB) Source: http://istqbexamcertification.com/what-is-a-software-testing/
  • 5.
    Cost of changegets more expensive the more effort is put in to transformation requirements in to working software. Focus on finding bugs as far left of the curve as possible.
  • 8.
     User AcceptanceTesting / Beta  With the end user.  Acceptance Tests  End to end testing / Within development.  Integration Tests  Testing between sub-systems.  Unit Tests  At the ‘unit’ level. Credit: Suceeding wiith Agile, Mike CohnMoreAutomationRequired
  • 9.
    Credit: Mike CohnCredit:Dan North IncreasingAutomation IncreasingCost
  • 10.
     Usability  Maintainability Scalability  Availability  Extensibility  Security  Portability Source: http://codesqueeze.com/the-7-software-ilities-you-need-to-know/ Source: https://en.wikipedia.org/wiki/Non-functional_requirement
  • 11.
    “Ensuring built softwarethat maximizes market returns, whilst lowering cost of development and minimizing risk to the enterprise.” Or “Build working software quickly, make customers happy and cover your rear.”
  • 12.
    In computer programming,a characterization test is a means to describe (characterize) the actual behavior of an existing piece of software, and therefore protect existing behavior of legacy code against unintended changes via automated testing. Working with Legacy Code – Michael Feathers To find out how software fails.Tze Chin Tang
  • 13.
     To understandthe systems behavior such as:  Peak Usage  Latency  Longetivity  Size (database / storage)  To catch problems such as:  Memory Leaks  Network Constraints  System Constraints  Performance Limits
  • 14.
    1. Identify parametersto monitor. • E.g. load time, time to complete, # of concurrent operations. 2. Identify how to stress the system w.r.t. parameters to monitor. • E.g. # concurrent users, transactions / time period. 3. Identify test surface. • E.g. UI, API, Unit/Integration test. 4. Determine load. 5. Run Test 6. Analyse Results • Did it meet your expectations? • Did you have expectation? • Root Cause Analysis 7. Determine next course of action. • Keep, fix, improve, reduce, etc… Slowing down… Failed!
  • 15.
    Source: http://moodle.oakland.k12.mi.us/os/mod/book/tool/print/index.php?id=25499 • Proactive,continuous monitoring to ensure performance within constraints. • To understand characteristics over time and different conditions (e.g. seasonality, time of day). • To identify and measure impact as the system changes due to code changes, infrastructure. • To identify changes in how the user interacts with the system over time. • Monitor sets parameters, they frequently go together – helps to identify constraints within the system.