0% found this document useful (0 votes)
148 views21 pages

Performance Testing

The document discusses performance testing, which is a type of software testing used to determine the speed, response time, reliability, and other performance characteristics of a system under heavy workload. Performance testing aims to identify bottlenecks in the system. Some key points made include: - Performance testing checks aspects like speed, scalability, stability, and resource usage of applications. - It is important to identify and address bottlenecks before software is released to avoid poor reputation and lost sales. - Common performance issues relate to load time, response time, scalability, and bottlenecking. Performance metrics like CPU usage are monitored during testing. - The performance testing process involves planning and designing tests, configuring the test environment, running tests
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
148 views21 pages

Performance Testing

The document discusses performance testing, which is a type of software testing used to determine the speed, response time, reliability, and other performance characteristics of a system under heavy workload. Performance testing aims to identify bottlenecks in the system. Some key points made include: - Performance testing checks aspects like speed, scalability, stability, and resource usage of applications. - It is important to identify and address bottlenecks before software is released to avoid poor reputation and lost sales. - Common performance issues relate to load time, response time, scalability, and bottlenecking. Performance metrics like CPU usage are monitored during testing. - The performance testing process involves planning and designing tests, configuring the test environment, running tests
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

WELCOME TO

 
KNOWLEDGE SHARING 2020
 
PERFORMANCE TESTING
Performance Testing

THIS IS A SOFTWARE TESTING PROCESS USED FOR TESTING THE SPEED, RESPONSE TIME,
STABILITY, RELIABILITY, SCALABILITY AND RESOURCE USAGE OF A SOFTWARE
APPLICATION UNDER A PARTICULAR WORKLOAD.
Performance Testing

THE MAIN PURPOSE OF PERFORMANCE TESTING IS TO IDENTIFY AND ELIMINATE THE PERFORMANCE
BOTTLENECKS IN THE SOFTWARE APPLICATION.

IT IS A SUBSET OF PERFORMANCE ENGINEERING AND ALSO KNOWN AS “PERF TESTING”.

THE FOCUS OF PERFORMANCE TESTING IS CHECKING A SOFTWARE PROGRAM'S;

• SPEED - DETERMINES WHETHER THE APPLICATION RESPONDS QUICKLY


• SCALABILITY - DETERMINES MAXIMUM USER LOAD THE SOFTWARE APPLICATION CAN HANDLE.
• STABILITY - DETERMINES IF THE APPLICATION IS STABLE UNDER VARYING LOADS
Performance Testing

APPLICATIONS SENT TO THE MARKET WITH POOR PERFORMANCE METRICS DUE TO NON-
EXISTENT OR POOR PERFORMANCE TESTING ARE LIKELY TO GAIN A BAD REPUTATION AND
FAIL TO MEET EXPECTED SALES GOALS.
ALSO, MISSION-CRITICAL APPLICATIONS LIKE SPACE LAUNCH PROGRAMS OR LIFE-SAVING
MEDICAL EQUIPMENT SHOULD BE PERFORMANCE TESTED TO ENSURE THAT THEY RUN
FOR A LONG PERIOD WITHOUT DEVIATIONS.
Performance Testing

SAMPLES OF NEGATIVE EFFECT OF NO PERFORMANCE TESTING

• THE PICTURE DISPLAYED IS AN EXAMPLE OF FAILED/NON PERFORMANCE TEST


• ONLY A 5-MINUTE DOWNTIME OF GOOGLE.COM (19-AUG-13) IS ESTIMATED TO COST THE SEARCH GIANT AS MUCH AS
$545,000, THAT IS N86.8 MILLION AS AT 2013

• IT'S ESTIMATED THAT COMPANIES LOST SALES WORTH $1100 PER SECOND DUE TO A RECENT AMAZON WEB SERVICE
OUTAGE.

HENCE, PERFORMANCE TESTING IS IMPORTANT.


TYPES OF PERFORMANCE TESTING • SPIKE TESTING - TESTS THE SOFTWARE'S REACTION
TO SUDDEN LARGE SPIKES IN THE LOAD GENERATED
BY USERS.
• LOAD TESTING - CHECKS THE APPLICATION'S ABILITY
TO PERFORM UNDER ANTICIPATED USER LOADS. THE • VOLUME TESTING - UNDER VOLUME TESTING
OBJECTIVE IS TO IDENTIFY PERFORMANCE LARGE NUMBER OF DATA IS POPULATED IN A
BOTTLENECKS BEFORE THE SOFTWARE APPLICATION DATABASE AND THE OVERALL SOFTWARE SYSTEM'S
GOES LIVE. BEHAVIOR IS MONITORED. THE OBJECTIVE IS TO
CHECK SOFTWARE APPLICATION'S PERFORMANCE
• STRESS TESTING - INVOLVES TESTING AN
UNDER VARYING DATABASE VOLUMES.
APPLICATION UNDER EXTREME WORKLOADS TO SEE
HOW IT HANDLES HIGH TRAFFIC OR DATA • SCALABILITY TESTING - THE OBJECTIVE OF
PROCESSING. THE OBJECTIVE IS TO IDENTIFY THE SCALABILITY TESTING IS TO DETERMINE THE
BREAKING POINT OF AN APPLICATION. SOFTWARE APPLICATION'S EFFECTIVENESS IN
"SCALING UP" TO SUPPORT AN INCREASE IN USER
• ENDURANCE TESTING - IS DONE TO MAKE SURE THE
LOAD. IT HELPS PLAN CAPACITY ADDITION TO YOUR
SOFTWARE CAN HANDLE THE EXPECTED LOAD OVER A
SOFTWARE SYSTEM.
LONG PERIOD OF TIME.

NB: SPIKE: A SHARP INCREASE IN THE MAGNITUDE OR CONCENTRATION OF


SOMETHING.
COMMON PERFORMANCE PROBLEMS

• LONG LOAD TIME - LOAD TIME IS NORMALLY


MOST PERFORMANCE PROBLEMS REVOLVE AROUND THE INITIAL TIME IT TAKES AN APPLICATION TO
SPEED, RESPONSE TIME, LOAD TIME AND POOR START. THIS SHOULD GENERALLY BE KEPT TO A
SCALABILITY. SPEED IS OFTEN ONE OF THE MOST MINIMUM. WHILE SOME APPLICATIONS ARE
IMPORTANT ATTRIBUTES OF AN APPLICATION. A SLOW IMPOSSIBLE TO MAKE LOAD IN UNDER A MINUTE,
RUNNING APPLICATION WILL LOSE POTENTIAL USERS. LOAD TIME SHOULD BE KEPT UNDER A FEW
PERFORMANCE TESTING IS DONE TO MAKE SURE AN APP
SECONDS IF POSSIBLE.
RUNS FAST ENOUGH TO KEEP A USER'S ATTENTION AND
INTEREST.

• POOR RESPONSE TIME - RESPONSE TIME IS THE


TIME IT TAKES FROM WHEN A USER INPUTS DATA
LETS CONSIDER SOME OF THESE PERFORMANCE
INTO THE APPLICATION UNTIL THE APPLICATION
PROBLEMS
OUTPUTS A RESPONSE TO THAT INPUT. GENERALLY,
THIS SHOULD BE VERY QUICK. AGAIN IF A USER HAS
TO WAIT TOO LONG, THEY LOSE INTEREST.
COMMON PERFORMANCE PROBLEMS

POOR SCALABILITY - A SOFTWARE PRODUCT SUFFERS FROM POOR SCALABILITY WHEN IT CANNOT HANDLE THE
EXPECTED NUMBER OF USERS OR WHEN IT DOES NOT ACCOMMODATE A WIDE ENOUGH RANGE OF USERS. 
LOAD TESTING SHOULD BE DONE TO BE CERTAIN THE APPLICATION CAN HANDLE THE ANTICIPATED NUMBER OF
USERS.

BOTTLENECKING - BOTTLENECKS ARE OBSTRUCTIONS IN A SYSTEM WHICH DEGRADE OVERALL SYSTEM


PERFORMANCE. BOTTLENECKING IS WHEN EITHER CODING ERRORS OR HARDWARE ISSUES CAUSE A DECREASE OF
THROUGHPUT UNDER CERTAIN LOADS. BOTTLENECKING IS OFTEN CAUSED BY ONE FAULTY SECTION OF CODE. THE
KEY TO FIXING A BOTTLENECKING ISSUE IS TO FIND THE SECTION OF CODE THAT IS CAUSING THE SLOWDOWN AND
TRY TO FIX IT THERE. BOTTLENECKING IS GENERALLY FIXED BY EITHER FIXING POOR RUNNING PROCESSES OR
ADDING ADDITIONAL HARDWARE
COMMON PERFORMANCE BOTTLENECKS

• CPU UTILIZATION
• MEMORY UTILIZATION
• NETWORK UTILIZATION
• OPERATING SYSTEM LIMITATIONS
• DISK USAGE
PERFORMANCE
TESTING PROCESS

THE METHODOLOGY ADOPTED FOR


PERFORMANCE TESTING CAN VARY
WIDELY BUT THE OBJECTIVE
REMAINS THE SAME.

PLEASE SEE THE GENERIC PROCESS


ON THE RIGHT:
PERFORMANCE TESTING PROCESS

• IDENTIFY YOUR TESTING ENVIRONMENT - KNOW YOUR PHYSICAL TEST


ENVIRONMENT, PRODUCTION ENVIRONMENT AND WHAT TESTING TOOLS ARE
AVAILABLE. 

• IDENTIFY THE PERFORMANCE ACCEPTANCE CRITERIA - THIS INCLUDES


GOALS AND CONSTRAINTS FOR THROUGHPUT, RESPONSE TIMES AND RESOURCE
ALLOCATION.  IT IS ALSO NECESSARY TO IDENTIFY PROJECT SUCCESS CRITERIA
OUTSIDE OF THESE GOALS AND CONSTRAINTS.

• PLAN & DESIGN PERFORMANCE TESTS - DETERMINE HOW USAGE IS LIKELY TO


VARY AMONGST END USERS AND IDENTIFY KEY SCENARIOS TO TEST FOR ALL
POSSIBLE USE CASES
PERFORMANCE
• CONFIGURING THE TESTING PROCESS
TEST ENVIRONMENT - PREPARE THE TESTING
ENVIRONMENT BEFORE EXECUTION. ALSO, ARRANGE TOOLS AND OTHER
RESOURCES.

• IMPLEMENT TEST DESIGN - CREATE THE PERFORMANCE TESTS ACCORDING TO


YOUR TEST DESIGN.

• RUN THE TESTS - EXECUTE AND MONITOR THE TESTS.


• ANALYZE, TUNE AND RETEST - CONSOLIDATE, ANALYZE AND SHARE TEST
RESULTS. THEN FINE TUNE AND TEST AGAIN TO SEE IF THERE IS AN
IMPROVEMENT OR DECREASE IN PERFORMANCE. SINCE IMPROVEMENTS
GENERALLY GROW SMALLER WITH EACH RETEST, STOP WHEN BOTTLENECKING
IS CAUSED BY THE CPU. THEN YOU MAY HAVE THE CONSIDER OPTION OF
INCREASING CPU POWER.
PERFORMANCE TESTING METRICS: PARAMETERS MONITORED

THE BASIC PARAMETERS


MONITORED DURING
PERFORMANCE TESTING
INCLUDE:
PERFORMANCE TESTING METRICS: PARAMETERS MONITORED

1. CPU INTERRUPTS PER


1. MAXIMUM ACTIVE
1. PROCESSOR USAGE SECOND
SESSIONS

2. MEMORY USE 2. DISK QUEUE LENGTH 2. HIT RATIOS


3. DISK TIME 3. NETWORK OUTPUT QUEUE 3. HITS PER SECOND
4. BANDWIDTH LENGTH 4. ROLLBACK SEGMENT 
5. PRIVATE BYTES 4. NETWORK BYTES TOTAL 5. DATABASE LOCKS
PER SECOND
6. COMMITTED MEMORY  5. RESPONSE TIME 6. TOP WAITS
7. MEMORY PAGES/SECOND  6. THROUGHPUT 7. THREAD COUNTS
8. PAGE FAULTS/SECOND 7. AMOUNT OF CONNECTION 8. GARBAGE COLLECTION
POOLING 
PERFORMANCE TEST TOOLS
THERE ARE A WIDE VARIETY OF PERFORMANCE TESTING TOOLS AVAILABLE IN THE MARKET. THE TOOL YOU CHOOSE
FOR TESTING WILL DEPEND ON MANY FACTORS SUCH AS TYPES OF THE PROTOCOL SUPPORTED, LICENSE COST,
HARDWARE REQUIREMENTS, PLATFORM SUPPORT ETC.

LOADNINJA  NEOLOAD 

IS REVOLUTIONIZING THE WAY WE LOAD TEST. IS THE PERFORMANCE TESTING PLATFORM


DESIGNED FOR DEVOPS THAT SEAMLESSLY
THIS CLOUD-BASED LOAD TESTING TOOL
INTEGRATES INTO YOUR EXISTING CONTINUOUS
EMPOWERS TEAMS TO RECORD & INSTANTLY
DELIVERY PIPELINE. WITH NEOLOAD, TEAMS TEST
PLAYBACK COMPREHENSIVE LOAD TESTS,
10X FASTER THAN WITH TRADITIONAL TOOLS TO
WITHOUT COMPLEX DYNAMIC CORRELATION &
MEET THE NEW LEVEL OF REQUIREMENTS
RUN THESE LOAD TESTS IN REAL BROWSERS AT
SCALE. TEAMS ARE ABLE TO INCREASE TEST ACROSS THE FULL AGILE SOFTWARE
COVERAGE. & CUT LOAD TESTING TIME BY OVER DEVELOPMENT LIFECYCLE - FROM COMPONENT
60%. TO FULL SYSTEM-WIDE LOAD TESTS.
PERFORMANCE TEST TOOLS
THERE ARE A WIDE VARIETY OF PERFORMANCE TESTING TOOLS AVAILABLE IN THE MARKET. THE TOOL YOU CHOOSE
FOR TESTING WILL DEPEND ON MANY FACTORS SUCH AS TYPES OF THE PROTOCOL SUPPORTED, LICENSE COST,
HARDWARE REQUIREMENTS, PLATFORM SUPPORT ETC.

HP LOADRUNNER  JMETER
 IS THE MOST POPULAR PERFORMANCE TESTING ONE OF THE LEADING TOOLS USED FOR LOAD
TOOLS ON THE MARKET TODAY. THIS TOOL IS TESTING OF WEB AND APPLICATION SERVERS.
CAPABLE OF SIMULATING HUNDREDS OF
THOUSANDS OF USERS, PUTTING APPLICATIONS
UNDER REAL-LIFE LOADS TO DETERMINE THEIR
BEHAVIOR UNDER EXPECTED LOADS. 
LOADRUNNER FEATURES A VIRTUAL USER
GENERATOR WHICH SIMULATES THE ACTIONS OF
LIVE HUMAN USERS.
WHICH APPLICATIONS SHOULD WE DO PERFORMANCE TEST?

PERFORMANCE TESTING IS ALWAYS DONE FOR CLIENT-SERVER BASED SYSTEMS ONLY. THIS
MEANS, ANY APPLICATION WHICH IS NOT A CLIENT-SERVER BASED ARCHITECTURE, MUST NOT
REQUIRE PERFORMANCE TESTING.

FOR EXAMPLE, MICROSOFT CALCULATOR IS NEITHER CLIENT-SERVER BASED NOR IT RUNS


MULTIPLE USERS; HENCE IT IS NOT A CANDIDATE FOR PERFORMANCE TESTING.

HOWEVER, ONLINE BANKING APPLICATION, EXAM REGISTRATION APPLICATIONS (JAMB), NEEDS


PERFORMANCE TESTING.
WHAT IS THE DIFFERENCE BETWEEN PERFORMANCE TESTING & PERFORMANCE ENGINEERING?

PERFORMANCE TESTING PERFORMANCE ENGINEERING 

A DISCIPLINE CONCERNED WITH TESTING AND IS THE PROCESS BY WHICH SOFTWARE IS TESTED AND
REPORTING THE CURRENT PERFORMANCE OF A TUNED WITH THE INTENT OF REALIZING THE REQUIRED
SOFTWARE APPLICATION UNDER VARIOUS PARAMETERS. PERFORMANCE.

THIS PROCESS AIMS TO OPTIMIZE THE MOST IMPORTANT


APPLICATION PERFORMANCE TRAIT I.E. USER
EXPERIENCE.
Conclusion:

In Software Engineering, Performance testing is necessary before marketing any software product. It ensures
customer satisfaction & protects an investor's investment against product failure. Costs of performance
testing are usually more than made up for with improved customer satisfaction, loyalty, and retention.
Q&A

You might also like