1132 performance testing ebooklet albert witt final

Upload: danny-pham

Post on 14-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    1/15

    EuroSTARSoftware TestingC o m m u n i t y

    Performance Testing,

    a Practical Guide and

    Approach

    Albert Witteveen

    Owner/Founder Pluton IT

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    2/15

    Performance testing, a practical guide and approach

    2

    PA

    GE

    Abstract

    This eBook contains a number o chapters rom

    Albert Witteveens book entitled Perormancetesting, a practical guide and approach.

    This book was written to give people a start in

    perormance testing. It should help people to

    understand the basics o how to do perormance

    testing and hopeully how to do a good job.

    Another target audience is anyone dealing with

    perormance demands or problems. How can

    you tell i the testers are going to deliver a resultthat gives tangible insight in the perormance?

    The book aims to give you some handle with

    which you can judge the approach and see i

    you get your moneys worth.

    2. An Overview o

    the Basic Activities

    2.1 Introduction

    What should you learn rst? To navigate or to

    sail? I you learned how to navigate perectly

    and then discover that you dont last on

    a sailing boat or longer than 10 minutes,those navigation skills are a bit useless. Thats

    why in this book we rst get into the actual

    perormance testing itsel beore discussing

    planning, modeling and so-orth. The basics

    will teach you how to simulate many users with

    tools and what you need to know beore you

    can judge i you created a good test script.

    2.2 A ew defnitions in perormancetesting

    First it is time to set some denitions. Especially

    since some words we use oten are dened in

    many other ways. Which denition is right is not

    the point, but is important that we dene here

    what denition we use.

    2.2.1 Perormance testing

    A denition o perormance testing is that it

    is about testing i a system accomplishes its

    designated unctions within given constraints

    regarding processing time and throughput

    rate.

    Perormance testing is a superset containing

    other tests such as load testing, stress testing

    endurance testing etc.

    2.2.2 Load testing

    When we are using the term Load we are talking

    about workload put on a system. Typically this

    is the load provided by the multiple users thatwe expect when a system is in production.

    When you a have a web application o which

    you expect that under normal circumstances it

    is used by 200 simultaneous users, those users

    provide the load.

    What we test or is the perormance o sotware

    in terms o response times, throughput etc. at

    the given load.

    So when we are discussing load testing,

    we discuss testing on the perormance o

    the application in terms o response times,

    throughput etc. when we apply a load that is the

    same as what we expect during production.

    2.2.3 Stress testing

    Stress testing has many similarities with load

    testing. It is about testing with high loads. The

    big dierence is that with stress testing we go

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    3/15

    Performance testing, a practical guide and approach

    3

    PA

    GE

    way beyond expected load and apply load until

    the system cant handle this anymore. This is

    done or a ew reasons: we want to know when

    a system breaks. But most o all it is to determine

    what happens at that moment. Is there a ullsystem outage? Do we lose transactions? Are

    there data synchronization issues? Additionally

    we can monitor to see which part o the system

    and resources is the bottleneck. That will give a

    clear indication on what to improve or expand

    i we have to.

    Stress testing is thereore about nding out

    when it breaks and what happens when it

    breaks.

    2.2.4 Endurance testing

    A little less known, but certainly related and

    important is endurance testing. This is about

    testing with a given load, usually not all that

    high, but signicant nonetheless, over a

    prolonged period o time.

    The reason or perorming these tests is to nd

    out the problems and deects that occur over

    time. A well known example o such a problem

    is the memory leak. Due to deects, over time,

    with the load not increasing, the memory

    consumption does increase. That is a clear

    indication that there is a memory leak. I this

    happens in production, the systems need to berestarted to remedy this.

    2.3 Load generation

    What all tests share in common is that the aim

    is to provide load similar to what we expect in

    production. It is not really easible to do this by

    hand. You could do that in theory, but it would

    require many people to do the work. The

    common approach is to generate the load using

    a load and stress test tool.

    2.3.1 Simple example o a webapplication

    To explain what a load generation tool does

    we will use the example o testing a webapplication. For this example we will use a airly

    simple setup or a web application. There are two

    servers, a web server and a database server. On

    the web server the sotware contains and runs

    the code that provides the web application. The

    data is stored in the database server and the

    web application queries this database when it

    requires data.

    When this application is in production, we

    expect that roughly 100 users will be using the

    application at the same time. That means that

    by 100 users their web browsers will request

    pages rom the web server. In production, that

    would mean 100 computers and 100 people in

    many dierent places.

    2.3.2 Simulating the users

    What we do to simulate this is that we use a

    tool to simulate the HTTP trac between the

    browsers and the web server. The web server

    cannot tell the dierence between the requests

    by real users and by that o our tool. The requests

    are multiplied by the number o users we aim

    to simulate. Usually this is reerred to as virtual

    users.

    2.3.3 Record and playback

    Creating this trac by hand is a daunting task

    that would not only require a lot o knowledge

    o the HTTP protocol, but also it would be

    nearly impossible to imitate exactly what the

    browsers and users would do. For that the loadgenerating tools provide record and playback

    unctionality.

    When the tool is in recording mode, you have

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    4/15

    Performance testing, a practical guide and approach

    4

    PA

    GE

    to use your browser and perorm the actions as

    the real user would do. All the trac between

    the browser and the server is recorded. Then

    the tool will turn the recorded trac into a test

    script that it can rerun to playback the exactsame request as were perormed during the

    recording.

    2.3.4 Parametrization

    Now what would happen i you recorded

    the creation o a new user account? During

    recording you would or instance create the

    user: testuser1. When you rerun the exact

    same request, you would try to create the

    user testuser1 one again. This time however

    the server would reply something like user

    already exists. All the coming requests would

    subsequently receive error messages, eectively

    making sure that the load on the server is not

    what you wanted to generate. And this is or the

    simple test o making a new user. For changing

    data, or most tests, data needs to be used thatis available and does not confict with certain

    business rules.

    There is more. Much o the requests that

    a browser makes are based on returning

    inormation the browser received rom that

    server such as cookies and session-ids. Many

    applications even have their own inormation

    going back and orth the keep track onrequests.

    For this a script nearly always needs

    parametrization beore it can be rerun,

    especially beore it can be rerun under load.

    Parametrization is one o the most dicult and

    time consuming part o load and stress testing.

    2.3.5 Content checks in the script

    So when weve done all that, the script runs

    perectly. The Load test tool when playback

    tells you that the script is passed. We however

    still dont know i it really passes. We know that

    we send the same requests, but we dont i the

    answers that we get are the correct ones.

    Take the ollowing example o a web application.

    You have created a test script that tests the login

    procedure o the application. The script sends

    the requests. But when the login is requested

    the server, due to a parametrization omission

    doesnt answer with a page that youre logged

    in, but it answers instead: login denied. On the

    server side this means it probably does a lot less

    than when the login is successul, giving you

    dierent results than what you should get.

    Thereore in any test script you need to build

    content checks. For instance i the screen o a

    successul login shows the text: welcome user

    Username1, build in a check that tests that

    the response o the server contains the words

    welcome user.

    Also it can be necessary to check in systemsthat should be updated by your test that the

    updates are done.

    2.3.6 Test the water

    When this is all ready and the script works or

    one virtual user, it makes sense to try it with

    just a ew virtual users, or instance threeusers. Then run the test with the three virtual

    users, and validate in the system under test

    that everything was updated as expected. This

    is done to nd errors in your scripts such as

    orgetting to ensure that the script is set to use

    unique values rom the test data. All too oten

    testers parameterized everything correctly,

    lled all the test data les, to later discover that

    the script used the rst entry in the test data le

    or all virtual users. Oten this requires setting

    the properties o the parameters correctly. The

    reason to not jump in right away with a ull

    blown test is that detecting and troubleshooting

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    5/15

    Performance testing, a practical guide and approach

    5

    PA

    GE

    issues that indeed exist is much easier with just

    a ew virtual users. It also prevents you rom

    burning your test data.

    2.3.7 Summarizing the steps ocreating a test script

    So these are the steps in creating a valid test

    script in load generating tool or testing load o

    multiple users:

    Record the activities by setting the tool on

    record and perorm the actions within the

    system under test.

    Parametrize the script so that when we run the

    load test every virtual user has dierent data,

    that the script captures server responses to be

    resent.

    Collect test data or the parametrized items that

    need to be lled with data.

    Build in checks to see i the server gave the

    correct responds.

    Veriy the parametrization by running a test

    with a ew virtual users to detect parameter

    property errors.

    There is much more to tell about creating test

    scripts. But these are the basic steps.

    2.4 Setting up monitoring

    Recording beginning and end times are a basic

    unction o the load test tools on the market.

    But when the time comes to analyze the results

    we will want more data. For that we need to

    utilize monitoring sotware.

    2.4.1 Monitoring tools

    Monitoring tools will continuously monitor the

    systems and record the resource usage that

    they were made or. Common things to monitoror are:

    CPU usage

    Memory usage

    Swap space used

    IO usage

    Database activities

    Network activity

    Web server connections

    Some load test tools have monitoring build-

    in. Other tools dont provide this and then you

    have to rely on monitoring outside o the test

    tool. Even or the tools that have monitoring

    build-in it oten makes sense to also set up some

    monitoring outside o the test tool. For instance

    i you want monitoring on the database, most

    database products eature their own monitoring

    tools that provide more in depth inormation

    and most o all in a ormat that is well known

    to the database experts that you will rely on to

    help you to nd and solve issues.

    2.4.2 Selection o monitoring items

    S Some tools make it really easy to monitor

    each and everything. It then becomes verytempting to turn them all on. Especially i there

    analyzing tools available allowing you to select

    and deselect every monitoring item during the

    analyzing phase. Nonetheless too much oten

    is too much. It is not so much that there is not

    enough space or all the data or that it becomes

    unusable. Rather it is about that with so much

    inormation, people stop to look careully and

    see patterns. I you have to deselect all the lessrelevant stu or every test it doesnt take long

    beore you stop looking at all and just go to the

    summary page. In the rare cases that a test is

    very dicult to rerun you may want to enable a

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    6/15

    Performance testing, a practical guide and approach

    6

    PA

    GE

    bit too much just to be certain. In all other cases,

    keep it limited to what you would look at beore

    detecting an issue in the rst place. When you do

    detect an issue that needs urther investigation,

    rerun the test with added monitors.

    2.5 Reporting

    When everything worked out and we nished

    a test, it needs to be reported. As always with

    reporting, what you report depends greatly

    on who you report to. You may have to report

    to an accepting party, sometimes a sotware

    development project needs a report to show

    it has met its targets, oten you are involved

    in testing to reproduce perormance issues

    on production and veriy that a solution will

    provide improvements. All o these dierent

    reasons or testing require a dierent ocus in

    your report. Obviously there are also overlaps

    and similarities, but reporting is important and

    is equally important to report the right thing.

    Also reporting issues needs to be done right,

    although in many ways similar to reporting

    regular issues or ndings, perormance testing

    puts some strong demands on what you include

    in the issue report. We will explain much more

    in the chapter on reporting.

    2.6 Conclusion

    The basics were explained here to provide

    an overview o the activities. Perormance

    testing can mean load testing, stress testing

    or endurance testing. To perorm a test, a

    tester needs to perorm quite a ew steps.

    Recording is just one step, the scripts needs to

    be customized to handle dierent data, server

    responses and check or real results. To provide

    insightul reports we need proper monitoring.

    This needs to be set up. When a test is done, the

    results need to be reported and reporting on

    perormance depends on the purpose o the

    test and to whom to report. All these items will

    now be explained in more detail.

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    7/15

    Performance testing, a practical guide and approach

    7

    PA

    GE

    5. Get in Line

    5.1 Introduction

    Computers behave in a very simple way. They

    stand still or they run at ull speed. Yet we oten

    consider the systems not to be running at ull

    capacity. The systems are quite oten waiting

    or something. To understand perormance

    and to describe the perormance aecting

    items queuing theory is a good approach. At

    minimum a perormance tester and or engineer

    should understand queuing in our systems.

    Even better is i the tester applies queuing

    models and monitors all components. That way

    the behavior gets documented much better and

    allows us to optimize perormance. This chapter

    explains the basics, but we encourage you to

    learn more about queuing theory. The book

    calledAnalyzing Computer Systems Performance

    with Perl::PDQ by Neil J. Gunther does this verywell.

    5.2 Queuing theory or computersystems

    In our day to day lies much o our time is spent

    on waiting. Waiting or the elevator, or the

    checkout line and so on. The queuing conceptis also very applicable or computer systems.

    When we request a page, queuing happens

    throughout the systems. It can happen at the

    nano second level at CPUs, but it can also be

    seen in as high a level as components as a web

    server, a database server etc. The use o the

    queuing theory started as early as 1917 or

    understanding the availability o telephone

    networks. Later it started getting applied or

    computer systems.

    5.3 A simple queue at thesupermarket

    We all are amiliar with queues in supermarkets.

    In a very simple model there is one cashier anda waiting line. You have customers arriving and

    customers leaving.

    The customer that is being served is spending

    time on unloading the cart, paying the cashier

    and packing up, the service time. The other

    customers in the line are waiting. The total time

    it takes you rom arrival to departure is called

    residence time.

    Algorithm 5.1 Residence time = total waiting

    time + service time.

    5.3.1 Small shop with one checkoutlane

    I we draw the queuing model or a small shop

    with just one checkout lane we get:

    5.3.2 Multiple lanes

    Any larger sized supermarket there will be more

    checkout lines. When you arrive you pick your

    lane. You do this based on the number o other

    customers in the lines and how ull their carts

    are. You cannot infuence your service time [B]

    [B] to keep it simple we will ignore that some

    cashiers are very notably slower or aster thanthe others, but you can infuence your waiting

    time. And this depends on number o customers

    ahead o you and their service time.

    Figure 5.1 simple que

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    8/15

    Performance testing, a practical guide and approach

    8

    PA

    GE

    This model turns out like this:

    5.3.3 One lane, multiple cashiers

    And in the larger super markets the cheese

    sections oten use a system where you get a

    number and wait until your number is up. The

    good thing is that you do not need to asses or

    yoursel which line will be the astest or you.

    Rather than having three queues there is one

    queue that is handled by multiple people.

    The model would look like this:

    5.4 Queues in a server environment

    The queues in the supermarket can be

    compared to queues in our computer systems.

    Lets compare a ew common examples with

    the models rom the supermarket.

    5.4.1 One CPU system

    On a computer system with one (single core) CPU

    at the CPU level the queuing model resembles

    the model o 5.1 As soon as a processor gets a

    task it will do that task, nish, and take on the

    next task.

    Other processes will have to wait. Anyone

    that encoded a video le on older PCs will

    understand the eect. As soon as the encoding

    process starts, anything else will hardly get

    through. Although operating systems do havesome methods to allow or processes to get

    some CPU time. Now i the service time o the

    processes is small you may hardly notice. The

    wait time gets to be so small that the residence

    time ends up being small as well.

    5.4.2 Web server with multipleprocesses

    I we look at a higher level at a system with

    multiple web servers serving pages to clients,

    the model will resemble the supermarket with

    multiple checkout lanes. I there are multiple

    web servers, some load balancing service is in

    place that will receive the request and give it

    to one o the servers. Like with the customer

    deciding on the number o preceding customers

    and the content o their shopping cart, the loadbalancing service will also make a decision to

    which server to hand it and basically that means,

    in what queue it ends up.

    Interesting to see above is that in this very

    simple model you can already see that there are

    multiple locations where queues can occur that

    cause wait time.

    5.4.3 One queue, multiple

    processes

    And the last model can be seen as well. I there

    is one service that can handle multiple requests

    and make sure that such requests are dealt with

    Figure 5.2 Multiple checkout lanes

    Figure 5.3 Drawing numbers

    Figure 5.4 Three webservers

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    9/15

    Performance testing, a practical guide and approach

    9

    PA

    GE

    by multiple worker processes, such as most

    web serving sotware (such as Apache and

    Microsots IIS), you will something similar. I the

    sotware has many worker processes available

    the queue may be small, but there is a centralqueue where the requests arrive. It should be

    noted though that i a single server is setup to

    have many worker processes, on the system

    level there will be queuing at or instance the

    CPUs or or memory.

    5.5 Understanding queuing at theCPU level

    I once had a colleague report that a certain

    process was taking almost 100% CPU time. The

    administrator dryly responded: good then were

    using the CPU eciently. He was right, yet or

    good reasons i a server reports 100% CPU time,

    we oten view this as a problem.

    Like we said beore, a computer component

    basically runs at ull speed or does nothing. Iyoure CPU monitoring tool tells you the CPU

    is running at 25% it does not mean that it runs

    25% o its possible speed. It means that or 25%

    o the measured time it was running at 100%

    and or 75% it was doing nothing, or as this is

    usually called: idle.

    I we draw a queuing center or a CPU it looks

    like this:

    For most processes this waiting line hardly has

    any impact. The service time or most requests is

    so small that the waiting line is hardly noticeable.Even CPU intensive processes do not send one

    large request, but many small ones. As a result,

    even i the CPU is busy, processes can get their

    requests in.

    However as the waiting line is larger, the

    residence time or a request becomes large.

    Even though the processor did, when it got

    around to it, calculates just as ast when it was

    less busy. The service time stays the same.

    As a result, when the CPU is starting to get more

    requests, the chance that requests o other

    dierent processes are there increases resulting

    in that processes will nd queues at the CPU.

    There will however still be moments that the

    CPU is idle until the load is so high that it is

    continuously occupied.

    At that time the waiting time is usually large and

    the overall residence time at the CPU is large aswell reducing response times.

    Overall it eels as i the CPU is doing its

    calculations slower, whilst really we just have to

    wait longer.

    5.5.1 Multicore or multiprocessors

    Server systems usually have more than one CPU.And modern CPUs oten have multiple cores.

    Multiple cores eectively work as multiple

    CPUs.

    At the CPU level, or at the CPU core level, the

    queuing center does not change. We just have

    multiple centers. Like in the supermarket where

    more open checkout lanes do not make the

    service time itsel shorter. But the wait time isshorter. In a system where we add equally ast

    CPUs, the residence time at the CPU will decrease

    i there are enough processes running.

    There is a catch though. Not every process

    will divide its workload over the extra CPUs.

    Suppose you have a ully loaded shopping

    cart in the supermarket and there are six open

    checkout lanes, your residence time would not

    be shorter i you were the only one in the shop.

    In that case six open lanes will be just as ast as

    one lane. Unless you nd some way to divide

    your cart in six smaller carts and

    Figure 5.5 Queueing center for a single core CPU

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    10/15

    Performance testing, a practical guide and approach

    10

    PA

    GE

    checkout in six lanes. In computer systems this

    is the same. A process will be handled by one

    processor or core unless the application was

    build in such a way that the workload is divided

    over multiple processes or threads. For mostprocesses you will not end up in the situation

    that one CPU is very busy whereas the others

    are idle. But on the process level the queuing

    center or single threaded applications look like

    this:

    I a process ends up in a lane it will be in

    that queue and handled ully by that core.

    Multithreaded programs get this center:

    The process will end up using both CPUs. For

    situations where a server has many smaller

    processes, there is not much dierence. There

    is however a big dierence i we have large CPU

    intensive processes. Multithreaded processes

    will use as much o all o the CPUs as they can.

    You can compare this with unloading your cartdivided over all the checkout lanes. I you are

    the only on the shop that is the most eective

    and overall residence time will be the smallest.

    However i you are in a supermarket other

    customers will not like this. And sometimes in

    computer systems we dont like this either. When

    we or instance have a maintenance batch job

    running on the server that is CPU intensive this

    will lead to a degradation o the other services.

    While making all CPUs chip in will shortenthe time o the batch job, the degradation o

    perormance may be a problem. I you make sure

    the batch job is not multithreaded or divided

    over multiple processes, you will make sure it

    will use only one core o a CPU. It will then run

    much slower i you have many cores, but you

    will have little impact on the other processes.

    5.6 Queuing on higher levels

    The principals described here work at higher

    level in the same way. You can look at a system

    on inrastructure level, describing the servers,

    network and the same principal applies. I

    you or instance have a couple o web servers,

    database servers and a load balancer, i you

    apply load you should be able to detect queuing

    somewhere in the system. Even though possibly

    none o the systems are stressed in any way, i

    you analyze the processes as they go through

    the entire system it must be possible to nd

    out the residence times and service times. In

    act there is queuing occurring at least in one

    location even i it is hard to detect. I there was

    no queuing anywhere, each process would

    have nished in the blink o an eye.

    I you nd a queuing center at a higher level, inmany cases it makes sense to go down a level at

    the queue to nd out more. In the example we

    used we could or instance see queuing in the

    web servers. That would mean we would have

    to look into the monitoring o the web servers.

    There we would have to nd queuing in or

    instance the CPU or memory. This would tell us

    much about where the most time is used and

    possibly where it can be improved.

    5.7 Is there always a queue?

    We once tested a batch process that was taking

    a long time to complete. We started to run this

    process in parallel on one server and we noticed

    that i we ran three processes instead o one it

    did indeed nish nearly three times as ast. This

    is not weird on a multi core CPU or indeed a

    multi CPU system, but we were not seeing high

    CPU utilization. Now i there had been another

    queuing center than the CPU, we suspected not

    to see almost the same increase in perormance

    Figure 5.6 Single thread or process

    Figure 5.7 Multithreaded

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    11/15

    Performance testing, a practical guide and approach

    11

    PA

    GE

    as the amount o processes we ran.

    So we did a deeper monitoring o the CPU. What

    we then noticed is that the process had many

    locks. The program had internally a loop with asleep in it. As this program was called through

    the batch process in sequence, although it

    required a small service time, the sleep time

    meant that it waited until completing. As a

    result, we got a throttled process which took a

    long time to complete but was not continuously

    stressing the CPU. The solution to increasing

    the perormance was laying in getting the sleep

    time out o the program.

    What is important to remember is that you

    should always nd a queuing center. I there

    doesnt seem to be one, continue investigating

    until you do. Once ound, you may nd an option

    to optimize the sotware. At that moment it is

    running at ull speed. So i you can, especially

    reporting to technical teams, report where the

    queuing center is or where you ound out that

    the sotware is not perorming at its maximumperormance. You may enable the team to

    greatly improve the perormance.

    O course in the case o the batch process,

    the throttling may be the desired behavior.

    Considering that it was doing its job without

    putting much load on the CPU, it also didnt

    hinder other unctionality. I you do use

    maximum perormance, the batch processwould end earlier but would have led to other

    users getting a much slower system.

    5.8 Conclusion

    Similar to queues in day to day lie, computer

    systems behave in a way that mimics these

    queues. Computer components dont perorm

    at a certain percentage o their capacity. They

    are perorming at a certain percentage o time.

    The total time it takes a process to complete is

    called residence time, but the service time may

    be much smaller i it has to wait to be serviced.

    Waiting is done in queues. When load and stress

    testing using at the very least the concept o

    queuing helps us nd where the most time is

    spent. O reporting to technical team, it makessense to make a model and show where the

    queuing takes place. I you cant nd any

    component that has its resources ully utilized,

    you should investigate urther until the cause

    is ound, especially i you do see decreasing

    perormance with added load.

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    12/15

    Performance testing, a practical guide and approach

    12

    PA

    GE

    10. For Managers

    10.1 Introduction

    I you are a typical (test) manager you probably

    skipped the rest o the book and went straight

    or this chapter. That is OK; this chapter is

    here to outline what you should look or in a

    perormance team. We want to give you some

    handles on how to see i you are getting good

    work rom your team without getting in their

    way.

    10.2 Intake

    I you are involved in the selection o the team,

    the vision and technical experience o the team

    are very important. There are some questions

    you can ask to help you evaluate this even i you

    are not an expert yoursel:

    1. Ask or their vision. A team or tester that will

    repeat they had the expensive training with

    the expensive tool and years o experience

    o using it shows no vision. They only show

    that they can show up or class and work.

    2. I they show: an approach, mention how

    they usually derive test cases, their

    approach on monitoring, report,

    requirements rom other teams and

    expertise desired, etc. they show better

    understanding o perormance testing and

    not just their tool o choice.

    3. Another interesting question is what load

    testing tool they preer. There is not best

    tool or every situation. It does make sense

    that they have a preerence or a tool with

    which they have a lot o experience, but orsome application specialized tools may

    exist. Sometimes a competitor supports the

    protocol you need much better than the

    one you are amiliar with. Hire a

    perormance test team, not a tool operating

    team.

    4. Experienced perormance testers have

    lessons learned or interesting anecdotes.Eager and enthusiastic testers will oten talk

    about them even when not being asked.

    10.3 The Plan

    Check or the ollowing important items:

    1. Planning: the planning should take into

    account time to prepare, time to learn how

    to record your application, time or analysis,

    time or extra test based on the results

    (exploratory testing) and time or reporting.

    2. The test environment: expect the test team

    to want test environment that is as

    production like as possible. I they do not,

    check i this is explained properly why they

    can do without.

    3. Cooperation with other teams: i the

    perormance team locks itsel up in a room

    and has little interaction with other teams

    there is a good chance they will not get a

    good grip on the business unctionality.

    Check i they address that the team will

    require time and input rom others in the

    organization, particular the other testteams.

    4. Monitoring: Check or a strategy that clearly

    explains how and what they wish to

    monitor.

    5. Support: Unless the development team

    perorms the test, the perormance test

    team should perorm the test, not x issues.

    The team and all their tools and hardware

    are usually expensive. They should be

    able to rely on support o the systems are

    not working which prevents them rom

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    13/15

    Performance testing, a practical guide and approach

    13

    PA

    GE

    testing. Also remember that specialist may

    be called in to help such as DBAs. Check i

    they have taken this into account arranged

    or this support.

    10.4 The progress

    So the plan is right, the team seems to know

    what they are doing. During this phase it is

    important to monitor progress.

    1. Deliverables to the team: The biggest

    problems or team are usually deliverables

    o other teams to the perormance test

    team. Test environments are not available,

    releases dont work, systems appear to

    rely on other systems that everyone orgot

    to mention etc. I you want to get your

    moneys worth, help the team get what

    they need.

    2. Finish the ull rst test as soon as possible:

    When starting the recording and creatingthe test scripts they will encounter many

    hurdles, this is because every application

    has its own peculiarities. But as soon as the

    rst script is ully working and the rst load

    or stress test was done, things get easier.

    See i you can get to that stage as quickly as

    possible. Especially i not everything has

    been delivered. Getting to the rst nished

    test will deal with hardest parts or the teamand make sure that when the real deliveries

    are there, they can move at better speed.

    Focus on a ull test. Not just a working

    script, but a script that ran with multiple

    virtual users.

    3. Check i they analyze on the go: A good test

    team will analyze the results as they go.

    Even i a test seems to perorm well on

    items such as response times, analyzing

    may trigger good testers to investigate

    something important they hadnt thought

    o. And you also dont want to nd out in

    the end that perormance is not good

    enough when even the rst test already

    showed issues.

    4. Checks: The results can be very deceiving;the tools may report excellent behavior,

    only to nd out later that nothing really

    happened. See i they checked that the

    tests really perormed the ull business

    process they set out to.

    Do not accept the line: just wait until the

    report.

    10.5 The test report

    A perormance test should produce a test

    report. Here are some tips to assess the report.

    1. Short and understandable: Perormance

    testers can very easily obuscate sub-par

    work by a thick report lled with techno-

    babble, graphs and huge tables. Dontaccept that. Tell them you expect a

    legible and short report. Graphs are great

    or illustrating a point, not or hiding it.

    Appendices exist to add literal weight to

    a report (and provide inormation or

    anyone that wants to draw their own

    conclusions based on the data).

    2. Resource utilization: It is important torealize that not every good perormance

    tester uses the terminology and approach

    o this book. So they may not know or use

    the term queuing center. But you may

    ask them to report on what exactly in an

    application was the bottleneck that limited

    the perormance. This can be as simple as

    a report that says the application was CPU

    bound or Memory bound. I they have no

    idea, than their monitoring was not good

    enough or a technical report. Lack o these

    items is oten also a good indication that

    their conclusions on response times in

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    14/15

    Performance testing, a practical guide and approach

    14

    PA

    GE

    relation to the actual production situation

    are not that solid.

    3. Modesty: Perormance testing cannot

    give exact results or how the applicationwill behave in production. The report

    should make the limitations clear. A good

    indicator o a serious team is that there is

    modesty in conclusions and statements.

    Biography

    Albert Witteveen has been

    working both as an operations

    manager and a proessional

    tester or nearly two decades

    now. The combination o setting

    up complex server environments

    and proessional testing almost automaticallyled to a specialisation in load and stress testing.

    He wrote a practical guide to load and stress

    testing which is available at Amazon. Lately his

    ocus has been on perormance o applications

    hosted with Cloud technology which led to

    insight on the changing needs in perormance

    testing or Cloud based applications.

  • 7/29/2019 1132 Performance Testing Ebooklet Albert Witt Final

    15/15

    w w w . e u r o s t a r c o n f e r e n c e s . c o m

    Join the EuroSTAR CommunityAccess the latest testing news! Our Community strives to provide test

    professionals with resources that prove benecial to their day-to-day roles.These resources include catalogues of free on-demand webinars, ebooks,

    videos, presentations from past conferences and much more...

    Follow us on Twitter @esconfsRemember to use our hash tag #esconfs when tweeting

    about EuroSTAR 2013!

    Become a fan of EuroSTAR onFacebook

    Join ourLinkedIn Group

    Add us to your circles

    Contribute to the Blog

    Check out our free Webinar Archive

    Download our latest eBook

    https://twitter.com/esconfshttps://twitter.com/esconfshttps://twitter.com/esconfshttps://www.facebook.com/EuroSTARSoftwareTestingConferencehttps://www.facebook.com/EuroSTARSoftwareTestingConferencehttp://www.linkedin.com/groups/EuroSTAR-Software-Testing-Community-1798888http://www.linkedin.com/groups/EuroSTAR-Software-Testing-Community-1798888https://plus.google.com/113080904826107701288/postshttp://www.eurostarconferences.com/bloghttp://www.eurostarconferences.com/community/member/webinar-archivehttp://www.eurostarconferences.com/community/member/ebook-libraryhttp://www.eurostarconferences.com/community/member/ebook-libraryhttp://www.eurostarconferences.com/community/member/webinar-archivehttp://www.eurostarconferences.com/bloghttps://plus.google.com/113080904826107701288/postshttp://www.linkedin.com/groups/EuroSTAR-Software-Testing-Community-1798888https://www.facebook.com/EuroSTARSoftwareTestingConferencehttps://twitter.com/esconfs