SlideShare una empresa de Scribd logo
1 de 54
going for speed
T E S T I N G A G A I N S T
P E R F O R M A N C E E X P E C TAT I O N S
why does
performance
matter?
poor performance = ?
stuck in traffic
in detroit
60hours
per
year
tinyurl.com/3c3df9g
flight is delayed
with american airlines
26%tinyurl.com/3j9hmje
auto fuel efficiency
power to the wheels
20%www.fueleconomy.gov/feg/atv.shtml
an annual loss of
$1285.66% www.fueleconomy.gov/feg/atv.shtml
poor performance = wasted time & money
why does
performance
matter to developers?
?
throw at it?
what can we
more hardware!
let’s throw
more resources!
let’s throw
your overtime!
let’s throw
poor performance = a miserable life
suffer
does my app
?
75%
sustain under
r:% advanced
metrics
but all that really matters...
perception
goals
establishing
what is the
target?
avoid buzzwords99.999% of the time
target
threshold
vs.
↼
↼
constraints
and
budgets
assumptions
validate
plan.execute( )
unit analysis
//MSTest Example
[TestMethod]
public void ShouldDoThis()
{
// Test Functionality
}
unit analysis
//MSTest Example
[TestMethod]
public void ShouldDoThisInUnder100ms()
{
// Test Functionality
// TODO: Write code to test for speed
}
unit analysis
//MSTest Example
[TestMethod]
public void ShouldDoThisInUnder100ms()
{
var stopwatch = Stopwatch.StartNew();
// Test Functionality
stopwatch.Stop();
int elapsedMs = stopwatch
.ElapsedMilliseconds;
Assert.True(elapsedMs <= 100);
}
unit analysis
//NUnit Example
[TestFixture]
public void ShouldDoThisInUnder100ms()
{
// Test Functionality
// TODO: Write code to test for speed
}
unit analysis
//NUnit Example
[TestFixture, MaxTime(100)]
public void ShouldDoThisInUnder100ms()
{
// Test Functionality
// Done. Keep being Awesome.
}
memory usage
Process.GetCurrentProcess().WorkingSet64
using System.Diagnostics;
GC.GetTotalMemory(false)
using System;
visual studio performance explorer
demo
profiling
studio
with
web
analysis
demo
visual studio web test
traffic flow
patterns
ORANVIRIYINCY | FLICKR.COM/PEOPLE/VIRIYINCY
demo
visual studio performance test
everything
simultaneously
run
!
rule#10
isolate data
at all times
!
rule#9
real user
test like a
!
rule#8
production
test on a
!
rule#7
clone of
production
test on
!
rule#6
turned off
tests can be
!
rule#5
!assumptions
validate your
rule#4
!budget
stick to your
rule#3
!design
performancestarts at
rule#2
want more
information?
Microsoft Debug Diagnostics Tool
tinyurl.com/DebugDiag
tinyurl.com/DebugDiagWP (Whitepaper)
Web Capacity Analysis Tool (WCAT)
bit.ly/ffq6dD
JetBrains dotTrace
jetbrains.com
Red Gate ANTS Performance and Memory Profilers
red-gate.com
HP LoadRunner
tinyurl.com/LoadRunner
Performance Testing Guidelines
for Web Applications
Microsoft Patterns & Practices
perftestingguide.codeplex.com
J.D Meier, Carlos Farre, Prashant Bansode,
Scott Barber, Dennis Rea
rule #1:
quality is
everyone’s job!
go for speed
# g o i n g F o r S p e e d
jay@aranasoft.com

Más contenido relacionado

Destacado

Primer tarda a la biblioteca
Primer tarda a la bibliotecaPrimer tarda a la biblioteca
Primer tarda a la biblioteca
lluís nater
 
07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...
07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...
07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...
The Business Council of Mongolia
 

Destacado (11)

Fitz and The Tantrums - The Walker
Fitz and The Tantrums - The WalkerFitz and The Tantrums - The Walker
Fitz and The Tantrums - The Walker
 
iCN Presentation 2016
iCN Presentation 2016iCN Presentation 2016
iCN Presentation 2016
 
Introducció a contaminació lumínica
Introducció a contaminació lumínicaIntroducció a contaminació lumínica
Introducció a contaminació lumínica
 
Ahorros y finanzas personales
Ahorros y finanzas personalesAhorros y finanzas personales
Ahorros y finanzas personales
 
Program ares 7
Program ares 7Program ares 7
Program ares 7
 
Primer tarda a la biblioteca
Primer tarda a la bibliotecaPrimer tarda a la biblioteca
Primer tarda a la biblioteca
 
Asp.net Mvc 5 y Azure
Asp.net Mvc 5 y AzureAsp.net Mvc 5 y Azure
Asp.net Mvc 5 y Azure
 
Allusions and Intertextuality in Novels
Allusions and Intertextuality in NovelsAllusions and Intertextuality in Novels
Allusions and Intertextuality in Novels
 
Technical Writing Examples
Technical Writing ExamplesTechnical Writing Examples
Technical Writing Examples
 
Y6 华文 单元 3 习写作文
Y6 华文 单元 3 习写作文Y6 华文 单元 3 习写作文
Y6 华文 单元 3 习写作文
 
07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...
07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...
07.25.2013, REPORT, MACROECONOMIC RISKS OF MONGOLIA AND WAYS TO MITIGATE THEM...
 

Similar a Going for Speed: Testing for Performance

Select a publicly traded U.S. corporation for which you have a com.docx
Select a publicly traded U.S. corporation for which you have a com.docxSelect a publicly traded U.S. corporation for which you have a com.docx
Select a publicly traded U.S. corporation for which you have a com.docx
kenjordan97598
 
Aeromexico overview presentation_august_2014
Aeromexico overview presentation_august_2014Aeromexico overview presentation_august_2014
Aeromexico overview presentation_august_2014
Aeromexico_IR
 
Six sigma for beginner
Six sigma for beginnerSix sigma for beginner
Six sigma for beginner
Yusar Cahyadi
 
Control phase lean six sigma tollgate template
Control phase   lean six sigma tollgate templateControl phase   lean six sigma tollgate template
Control phase lean six sigma tollgate template
Steven Bonacorsi
 

Similar a Going for Speed: Testing for Performance (20)

PSG.ppt
PSG.pptPSG.ppt
PSG.ppt
 
Solutions Manual for Basic Business Statistics 13th Edition by Berenson
Solutions Manual for Basic Business Statistics 13th Edition by BerensonSolutions Manual for Basic Business Statistics 13th Edition by Berenson
Solutions Manual for Basic Business Statistics 13th Edition by Berenson
 
Technical Debt Must Die: Communicating Code to Business Stakeholders
Technical Debt Must Die: Communicating Code to Business StakeholdersTechnical Debt Must Die: Communicating Code to Business Stakeholders
Technical Debt Must Die: Communicating Code to Business Stakeholders
 
Nagios Conference 2014 - Nate Broderick - SLA - The Marriage of an Effective ...
Nagios Conference 2014 - Nate Broderick - SLA - The Marriage of an Effective ...Nagios Conference 2014 - Nate Broderick - SLA - The Marriage of an Effective ...
Nagios Conference 2014 - Nate Broderick - SLA - The Marriage of an Effective ...
 
Incorporating Gate Variability in Airline Block Planning
Incorporating Gate Variability in Airline Block PlanningIncorporating Gate Variability in Airline Block Planning
Incorporating Gate Variability in Airline Block Planning
 
#Interactive Session by Sujeet Kumar Maurya, "Performance engineering with AI...
#Interactive Session by Sujeet Kumar Maurya, "Performance engineering with AI...#Interactive Session by Sujeet Kumar Maurya, "Performance engineering with AI...
#Interactive Session by Sujeet Kumar Maurya, "Performance engineering with AI...
 
introtosixsigma.ppt
introtosixsigma.pptintrotosixsigma.ppt
introtosixsigma.ppt
 
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
An Empirical Study On Practicality Of Specification Mining Algorithms On A Re...
 
The Lean CFO
The Lean CFOThe Lean CFO
The Lean CFO
 
Phil Koopman's ISSRE 2016 Keynote
Phil Koopman's ISSRE 2016 KeynotePhil Koopman's ISSRE 2016 Keynote
Phil Koopman's ISSRE 2016 Keynote
 
Select a publicly traded U.S. corporation for which you have a com.docx
Select a publicly traded U.S. corporation for which you have a com.docxSelect a publicly traded U.S. corporation for which you have a com.docx
Select a publicly traded U.S. corporation for which you have a com.docx
 
Шаблон KPI от YouExec
Шаблон KPI от YouExecШаблон KPI от YouExec
Шаблон KPI от YouExec
 
Project KPI presentation sample by YouExec
Project KPI presentation sample by YouExecProject KPI presentation sample by YouExec
Project KPI presentation sample by YouExec
 
Aeromexico overview presentation_august_2014
Aeromexico overview presentation_august_2014Aeromexico overview presentation_august_2014
Aeromexico overview presentation_august_2014
 
Airline flights delay prediction- 2014 Spring Data Mining Project
Airline flights delay prediction- 2014 Spring Data Mining ProjectAirline flights delay prediction- 2014 Spring Data Mining Project
Airline flights delay prediction- 2014 Spring Data Mining Project
 
The Internet of Flying Things - Overview
The Internet of Flying Things - OverviewThe Internet of Flying Things - Overview
The Internet of Flying Things - Overview
 
Aeromexico Overview Presentation - September 2014
Aeromexico Overview Presentation - September 2014Aeromexico Overview Presentation - September 2014
Aeromexico Overview Presentation - September 2014
 
A-CDM
A-CDMA-CDM
A-CDM
 
Six sigma for beginner
Six sigma for beginnerSix sigma for beginner
Six sigma for beginner
 
Control phase lean six sigma tollgate template
Control phase   lean six sigma tollgate templateControl phase   lean six sigma tollgate template
Control phase lean six sigma tollgate template
 

Más de Jay Harris

Más de Jay Harris (7)

Bullets Kill People: Building Effective Presentations
Bullets Kill People: Building Effective PresentationsBullets Kill People: Building Effective Presentations
Bullets Kill People: Building Effective Presentations
 
Dethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsDethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.js
 
OrchardCMS module development
OrchardCMS module developmentOrchardCMS module development
OrchardCMS module development
 
Test driven node.js
Test driven node.jsTest driven node.js
Test driven node.js
 
node.js Module Development
node.js Module Developmentnode.js Module Development
node.js Module Development
 
The Geek's Guide to SEO
The Geek's Guide to SEOThe Geek's Guide to SEO
The Geek's Guide to SEO
 
Dev Basics: The ASP.NET Page Life Cycle
Dev Basics: The ASP.NET Page Life CycleDev Basics: The ASP.NET Page Life Cycle
Dev Basics: The ASP.NET Page Life Cycle
 

Último

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Going for Speed: Testing for Performance

Notas del editor

  1. Unit Testing has settled into the mainstream. As developers, we write code that checks code, ensuring that the outcome matches some expected result. But, are we really? As end-users (which includes each one of us from time to time), when we ask a question, we don&apos;t just expect our answer to be right, we expect it to be right now. So as developers, why are we only validating for accuracy? Why aren&apos;t we going for speed? During this session we&apos;ll discuss meeting the performance needs of an application, including developing a performance specification, measuring application performance from stand-alone testing through unit testing, using tools ranging from Team Foundation Server to the command line, and asserting on these measurements to ensure that all expectations are met. Your application does &amp;quot;right.&amp;quot; Let&apos;s focus on &amp;quot;right now.&amp;quot;
  2. Jay Harris is a .NET developer in Southeast Michigan and an independent software consultant at Arana Software ( http://www.aranasoft.com ). He has been developing on the web for 15 years, since he abandoned VB3 for JavaScript because he didn&apos;t have to wait for a compile. With a career focus on end-user experience, he is a strong advocate of practices and processes that improve quality through code, ranging from automated testing, continuous integration, and performance analysis, to designing applications from the perspective of the user instead of the database. Jay is also active in the developer community beyond speaking, including serving as President of Ann Arbor .Net Developers ( http://www.aadnd.org ) an d as an organizer fo r Lansing Give Camp. When not coding, he is usually blogging to http://www.cptloadtest.com or playing games on his Xbox 360.
  3. Presentation agenda: Justifying Performance Testing, Determining Performance Goals, Identifying Existing Issues, Testing a Unit of Code for Performance, andTesting an Application for Performance.