"Performance and Security Testing in Agile Development" - - PDF document

quot performance and security testing in agile
SMART_READER_LITE
LIVE PREVIEW

"Performance and Security Testing in Agile Development" - - PDF document

AW4 Class 6/9/2010 12:45:00 PM "Performance and Security Testing in Agile Development" Presented by: Tracy DeDore Hew lett-Packard Brought to you by: 330 Corporate Way, Suite 300, Orange Park, FL 32073 888 268 8770 904


slide-1
SLIDE 1

AW4

Class 6/9/2010 12:45:00 PM

"Performance and Security Testing in Agile Development"

Presented by: Tracy DeDore Hew lett-Packard

Brought to you by:

330 Corporate Way, Suite 300, Orange Park, FL 32073 888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com

slide-2
SLIDE 2

Tracy DeDore

Hewlett-Packard Tracy DeDore is the Agile Solution Marketing Manager for HP’s BTO Software Application organization. She is a twenty-four year veteran of HP and has held a variety

  • f software-related roles including software programming, 2nd level software support

and software product marketing, as well as ten years managing network and mobility solution development and marketing.

slide-3
SLIDE 3

June 9, 2010 Tracy DeDore

Incorporating Performance and Security Testing in Agile Development

Agenda

  • The promise of Agile
  • Agile delivery challenges
  • Why QA is critical to the success of Agile
  • Agile testing challenges
  • Manual and automated testing
  • Change-friendly component testing framework
  • Performance testing in every sprint
  • Service virtualization to remove dependencies

and constraints

  • Security testing in every sprint
  • Summary
slide-4
SLIDE 4
  • Accelerate time-to-market
  • Reduce costs
  • Increase project success rates

without sacrificing quality

The promise of Agile

To realize the promise of Agile, it must move from a development practice to a delivery practice

– Developers – Project Managers – Business Analysts – QA – Performance Engineers – Security Specialists/Penetration Testers

Agile delivery

slide-5
SLIDE 5
  • Manage agile projects across all

stakeholders

  • Remove latency from Dev and QA

processes

  • Maximize collaboration across the Agile team
  • Enable discovery, sharing, and re-use of key

assets and artifacts to accelerate work

  • Provide real-time visibility into tasks and progress to

speed issue resolution and improve decisions

Key Agile management challenges

QA Dir. VP Apps

Rqmts. Lead

QA Dir.

  • Dev. Dir.
  • Perf. test

lead “Will the business benefit from Agile?” “Why is Agile not working for us?” “Developers go one way, QA another. How do we better collaborate?” “No more point solutions. I need a unified vision.” “We’ll go Agile, even if no

  • ne else does.”

“Just get rid of the process overhead and let us work!” “Requirements, QA – these guys don’t get it.” “It’s not clear what Agile means for us.” “Some think Agile means ‘No more QA’!” “We’re building in sprints, but still testing at the end.” “Where do we fit?” “We need a simpler way to capture reqts.” “I know change is part

  • f Agile, but how do I

know the right features made it in?” “We’re building so fast we have no time to performance test.” “I don’t know if performance is improving or getting worse with each sprint.” “How can we test earlier, when the environment isn’t even in place?”

The challenges of Agile delivery

slide-6
SLIDE 6

Bottom line: Moving to Agile is a big change

  • Radically changes Planning, Dev, and

QA practices

  • Roles blur and responsibilities change
  • Collaboration and concurrency are

paramount

  • Requires more than process change
  • Functional, performance and security testing baked into

every iteration

  • Automation is critical to success

“You can never be agile without automated testing solutions.”

Gartner AADI Conference, Dec. 09, Matt Hotle, VP Distinguished Analyst

“You can never be agile without automated testing solutions.”

Gartner AADI Conference, Dec. 09, Matt Hotle, VP Distinguished Analyst

“As companies move to Agile, and as portfolios shift from version 1 into maintenance, the coding costs may drop, but the cost to test the application continues to rise. Thus, it is key to find ways to reduce the costs to test software and drive automation.”

SOA Testing: Confronting the Nightmare of Testing Shared Services”, Application Architecture, Development and Integration Conference, December 7‐9, 2009 Thomas Murphy, Gartner Research Director

“As companies move to Agile, and as portfolios shift from version 1 into maintenance, the coding costs may drop, but the cost to test the application continues to rise. Thus, it is key to find ways to reduce the costs to test software and drive automation.”

SOA Testing: Confronting the Nightmare of Testing Shared Services”, Application Architecture, Development and Integration Conference, December 7‐9, 2009 Thomas Murphy, Gartner Research Director

Why the QA Director (and team) are key to Agile success

slide-7
SLIDE 7

Jan Feb Mar Apr May Jun

RQMT RQMT DESGN DESGN TEST TEST CODE / UT CODE / UT

Jan Feb Mar Apr May Jun

Agile delivery – as it should be

Time-boxed for focus Surfaces issues sooner Hands-on w ith stakeholders Designed for change Rigorous, cumulative testing True measure

  • f progress

Jan Feb Mar Apr May Jun

RQMT RQMT RQMT RQMT DESIGN DESIGN CODE/UT CODE/UT RQMT RQMT DESIGN DESIGN CODE/UT CODE/UT DESIGN DESIGN CODE/UT CODE/UT

  • SYS. TEST
  • SYS. TEST

CODE/UT CODE/UT

  • SYS. TEST
  • SYS. TEST
  • SYS. TEST
  • SYS. TEST

Agile delivery – as it too often is

Time-boxed for focus Surfaces issues sooner Hands-on w ith stakeholders Designed for change Rigorous, cumulative testing True measure

  • f progress
slide-8
SLIDE 8

Jan Feb Mar Apr May Jun

RQMT RQMT RQMT RQMT DESGN DESGN CODE/UT CODE/UT RQMT RQMT DESGN DESGN CODE/UT CODE/UT DESGN DESGN CODE/UT CODE/UT

  • SYS. TEST
  • SYS. TEST

CODE/UT CODE/UT

  • SYS. TEST
  • SYS. TEST
  • SYS. TEST
  • SYS. TEST

Agile delivery – as it too often is

Time-boxed for focus Surfaces issues sooner Hands-on w ith stakeholders Designed for change Rigorous, cumulative testing True measure

  • f progress
  • Scrummerfall. n. The practice of combining

Scrum and Waterfall together in a single project so as to ensure failure at a faster rate than with Waterfall alone.

  • Scrummerfall. n. The practice of combining

Scrum and Waterfall together in a single project so as to ensure failure at a faster rate than with Waterfall alone.

  • Unit testing mistaken for system test
  • System test deferred, as in Waterfall
  • Performance and security testing deferred, as in

Waterfall

  • Regression testing not seen as viable in

“sprint-time”

  • Difficult to coordinate geographically distributed

project teams

  • Organizational impacts under-estimated

Some reasons the Agile vision goes unrealized

Why?

slide-9
SLIDE 9

– Unit testing is mistaken for system test – Regular regression testing not seen as viable in “sprint‐time” – Change impact analysis is haphazard – “Scrummerfall” – The organizational impacts are underestimated

Reasons the Agile vision goes unrealized

Why?

“Agile is still a relatively new topic in the realm of software testing… the role of the traditional software test and QA

  • rganization hasn't been well-defined.”

Don't Let Short‐Term Agile Create Long‐Term Pain, Gartner Apr. 09

“Agile is still a relatively new topic in the realm of software testing… the role of the traditional software test and QA

  • rganization hasn't been well-defined.”

Don't Let Short‐Term Agile Create Long‐Term Pain, Gartner Apr. 09

40% of unplanned downtime is

caused by application failures, costing an average of $100k per hour for mission-critical apps

Gartner, 2008

Gartner, From Concept to Production, Software Changes and Configuration Management, April 2008

Gartner, From Concept to Production, Software Changes and Configuration Management, April 2008

slide-10
SLIDE 10

30% 30%

Typical cost of testing in a development project

56% 56%

Number of defects introduced at the requirements phase

82% 82%

Amount of effort required to fix poor requirements

1 1

The no1 leading cause of IT w aste is poor defect mngt and rew ork

100x 100x

Cost to repair a defect in production vs. requirements

The cost of poor quality

Req Dev Test Prod Where Defects Are Detected Req Dev Test Prod Where Defects Are Introduced Req Dev Test Prod Relative Cost to Fix Req Dev Test Prod Actual Cost Cost

  • f

Defects Ideal Cost

Source: NIST 2002 RTI Project 7007.011

X X

Potential Value of Earlier Compliance and Testing

=

The value of effective quality management

slide-11
SLIDE 11
  • Early defect discovery
  • Test the highest value / highest risk user stories
  • Regression testing is critical; impossible without

automation

  • Support unit, service, integration, GUI, system, and

business process testing in one platform

  • Remove pervasive system dependencies/constraints

that delay testing and increase environment costs

  • Test complex, heterogeneous enterprise environments

and modern technologies

Agile testing challenges

Eliminate rework and reduce cost across the enterprise

Customers need a Quality Management solution that enables their business objectives

Improve time to market Mitigate risk

slide-12
SLIDE 12

Agile Project Management

Agile project management

Release planning through the hardening sprint

Functional, performance, and security requirements

RELEASE BACKLOG

Product backlog SPRINT 1 SPRINT 2 SPRINT 3

…N

HARDENING SPRINT

SPRINT BACKLOG

Functional, performance, and security should be addressed starting with the release planning phase AND the hardening sprint Part of every iteration

RELEASE

PLANNING

SPRINT

PLANNING

2-4 weeks 2-4 weeks 2-4 weeks 2-4 weeks

slide-13
SLIDE 13

GUI LAYER GUI LAYER

GUI 1 (.Net) GUI 1 (.Net) GUI 2 (Ajax) GUI 2 (Ajax) GUI 3 (Java) GUI 3 (Java)

PROCESS LAYER PROCESS LAYER

Business Process1 Business Process1 Business Process 2 Business Process 2

BUSINESS LAYER (Services, Components, API) BUSINESS LAYER (Services, Components, API)

Component 1

(JAVA / .Net API)

Component 1

(JAVA / .Net API)

Component 2

(Web Service)

Component 2

(Web Service)

Component 3

(JMS Service)

Component 3

(JMS Service)

Multiple components, multiple sprints, multiple moving parts

Modern Applications + Agile = Challenge

SPRINT TESTING SPRINT TESTING HARDENING SPRINT HARDENING SPRINT C1 C1 C2 C1 C2 C3 G2 C1 C2 G1 G1 C3 C1 C2 G1 G3 G2 C3 C1 C2 G1

… …

BP1 BP2 G3 G2 C3 C1 C2 G1 C (GUI-less) component G2 GUI element BP Business Process Stable QA should be able to manually test faster within the iteration

Manual testing must be organized and immediate

slide-14
SLIDE 14

C1 C1 C2 C1 C2 C3 G2 C1 C2 G1 G1 C3 C1 C2 G1 G3 G2 C3 C1 C2 G1

… …

BP1 BP2 G3 G2 C3 C1 C2 G1

Regression testing at the end of each iteration (or part of continuous build)

QA should be able to automate on the available application layer as early as possible C (GUI-less) component G2 GUI element BP Business Process Stable

Automate as much and as earlier as possible

Functional testing today

Create order test

Create Order View Order Login Logout

Traditional serial testing

Update order test

Login Logout View Order Update Order Search Order

Delete order test

Login Logout View Order Search Order Delete Order

slide-15
SLIDE 15

25

Create once, reuse components in multiple tests

Build a change‐friendly component testing framework

Create Order View Order Login Logout

Delete order Update order Create order

Test Data Search Order Delete Order Update Order

  • Application architecture?
  • New technologies: degrade performance, introduce risk?
  • Upgrade the IT infrastructure?
  • User interface design: degrade performance, introduce risk?
  • Expected increase in usage: degrade performance?
  • Test data needed to accelerate testing?

Assess performance and security risks upfront

slide-16
SLIDE 16

Effective user stories facilitate performance and security testing

  • Involve performance and security engineers in user story

review to identify areas of high risk For example:

  • data privacy
  • high data throughput
  • new technologies (Flash, Ajax…)
  • high degree of customization to packaged apps
  • architectural changes
  • new components
  • non-standard toolkits
  • Prioritize performance and security requirements

based on risk

  • Replaces real users with thousands of “virtual” users
  • Generates accurate, measurable and repeatable load on

the system from a single point of control

  • Pinpoints bottlenecks in the system

Web server

  • App. server

Database Internet/ WAN Simulated users Controller

Automated load testing

slide-17
SLIDE 17

Performance Testing automation accelerates the testing cycle

Other solutions Automated Performance Testing

Project timeline

Triage and diagnose Script Development Fix Run Test Run Test Triage And Diagnose Script Dev.

Go live Go live

Repeat Repeat Fix

}

Less development time

}

Less time chasing problems + Resource efficiency =

Incorporate Performance Testing into every sprint

  • Assess performance requirements

during system architecture and release planning

  • Define acceptance criteria for each

performance user story

  • Develop test cases/data in parallel with coding
  • Virtualize dependent services and resources
  • Deliver user stories to performance testers as signed off
  • Ensure continuous feedback among all stakeholders
  • Share performance test assets across projects
  • Schedule performance tests to run off-hours
slide-18
SLIDE 18

Performance Testing in Agile – HOW?

  • Client-side performance

awareness

  • Monitor performance trends

per iteration

  • Monitor SLA performance per iteration
  • Component/”Headless” performance testing
  • Share/reuse test assets across iterations
  • Store/connect test results to components

Pervasive dependencies and constraints can kill agility

Swing UI Order Mgmt CORBA App App Server Inventory Payments 3rd Party Outsourced Database Web 2.0 UI Database Legacy Partner App Mainframe ESB

System availability constraints delay testing efforts and increase test environment costs

Cost per transaction Scarce production resources Time consuming to replicate data for test

slide-19
SLIDE 19

How to get agility in constrained environments?

Virtualize Data Virtualize Behavior Virtualize Performance

Before

Unavailable/ inaccessible Wrong Test Data Poor Performing

App Under Test App Under Test

Testing Solutions

App Under Test App Under Test

After

System Dependency Constraints Virtual Test Environments Testing Solutions

Combine functional and performance testing with service virtualization to simulate the realistic and dynamic behavior of dependent systems

Effective user stories facilitate performance and security testing

  • Involve performance and security engineers in user story

review to identify areas of high risk For example:

  • data privacy
  • high data throughput
  • new technologies (Flash, Ajax…)
  • high degree of customization to packaged apps
  • architectural changes
  • new components
  • non-standard toolkits
  • Prioritize performance and security requirements

based on risk

slide-20
SLIDE 20

Wide variety of regulations by industry and geography

Internal measures Variety of mitigation methods under development (including compliance) Regulations/compliance begin to come into force New ones under development Maturity Security Programs

Security risks have never been greater

Time

Attacks The approach

Individual fame Individual gain Loose collaboration among groups

Industrialized identity theft, and illicit information markets

The costs of a security attack are huge

$202 $202

Total average cost of a data breach per compromised record*

* Ponemon Institute, 2008 Annual Study: $U.S. Cost of a Data Breach

30,000 30,000

Average # of compromised records per breach^

X

$6.65 M

Average Total Cost per breach*

=

^Source: The Open Security Foundation

Company: Records Affected*: Cost: Organization Cost: $2.53 Billion $19 Billion $5.05 Billion Financial Services 12,500,000 $202 X = Major Retailer 94,000,000 $202 X = Government 25,000,000 $202 X =

No industry is exempt

slide-21
SLIDE 21

Applications are the target

Network: Secured by firewall Servers: Protected by intrusion prevention air Applications: Unprotected and ignored

  • From scans of 31,373

sites, over 85% showed a vulnerability that could give hackers the ability to read, modify and transmit sensitive data.

‐‐ Web Application Security Consortium

Web security risks are complex

Organizations must learn to bridge the gap

Security professionals are

  • verwhelmed by

applications Developers/QA are overwhelmed by security

slide-22
SLIDE 22

Application Security is everyone's responsibility

  • Business, Development,

QA & Security Teams

  • Educate and empower

Build security in

  • Repeatable & predictable
  • Best practices
  • Enterprise policies and standards

Enterprise Security Platform

  • Automated solutions
  • Built in security knowledge
  • Communication

People Process Technology

Ingredients for application security success Security Testing in Agile‐ HOW?

  • Static source code analysis
  • Step or path-specific business

process testing

  • Black box/dynamic Web Application Scanners
  • Standard, repeatable security testing into standard

QA practices

  • Leverage automation tools
slide-23
SLIDE 23

Incorporating Performance and Security Testing in Agile Development

  • Change Agile from a development practice to a

delivery practice

  • Build a change-friendly component framework
  • Bake functional, performance and security

testing into every iteration

  • Automate as soon as possible
  • Virtualize dependent systems/resources

Q&A

slide-24
SLIDE 24

For more information…

http://www.hp.com/go/agile HP Agile Development Blog: http://www.communities.hp.com/online/blogs/agile‐development/default.aspx Future of Testing Blog: http://www.communities.hp.com/online/blogs/functionaltesting/default.aspx Requirements Management: Blog http://www.communities.hp.com/online/blogs/requirementsmanagement/defa ult.aspx LoadRunner/Performance Center Blog: http://www.communities.hp.com/online/blogs/loadrunner/default.aspx Application Security Blog: http://www.communities.hp.com/securitysoftware/blogs/