This question was asked to me in an interview.

  • This varies greatly on the application. It sounds like one of the questions that are asked in order to get the applicant to ask questions to discover the requirements.
    – Paul Muir
    May 23 '16 at 12:01
  • @PaulMuir Whilst I agree that this question may require personal opinion, having some understanding of entry and exit criteria is necessary when testing. Without such criteria how does a tester know what is to be tested and for what? How does a tester know whether they have done good work or were wasting their time. Looking at the help pages for SQA I cannot see anything that says "primarily opinion-based" questions are not suitable here and there are huge numbers of question that are similar to this in asking general ideas on how to test. Therefore I vote to reopen this question.
    – AdrianHHH
    May 23 '16 at 16:05

It simplifies to knowing what you want to measure and knowing how to determine when you have measured it.

Entry criteria include:

  • Knowing what sort of performance you are looking at. Eg maximum load, use of system resources at various loads, affect on response times as load increases, long term stability (eg memory loss), and several others.
  • Stability of the system's hardware and software. Do not want unexpected changes to the system during testing. On the other hand, some tests are about comparing performance of different configurations.
  • Availability of system for running the tests. Commonly want it to be dedicated to the testing so that other users do not disturb the test process.
  • Availability of key personal to monitor the system during the tests and be available to shut things down or to reset things in case of issues. (Anecdotally, there have been cases where supposedly isolated systems have actually used the same network resources as the active and live system. So a performance test that should have been isolated caused major distress to the live system.)
  • Sufficient resources available for enough test runs for long enough duration to be confident in the results.
  • Ability to restore the system's databases from backups so that each test or group of tests starts from the same state. (If restores are not done then how could you properly compare the results from different test runs?)
  • How performance problems are to be handled. Is the test to just create a report and leave it to others to resolve? Will the tester(s) be expected to advise on how to resolve performance issues? Will the system's developers be expected to modify (ie tune or adjust configuration data in) the system between test runs to respond to performance issues.

Exit criteria include:

  • Tests have been run.
  • System performance has been assessed according to the goals of the testing.
  • Test report written and passed to relevant people.
  • Fault reports written for any issues. (Performance testing often finds functional or usage issues.)
  • Performance goals have been achieved - only applies if the testers are working with the developers to (iteratively) test and tune the system until it meets the goals.

Ask clarification questions, and lead the other side to give you an answer.

It's always a good advice, but especially true for interview questions.

Let's use your question as an example-

How do you define performance testing ? what is our goal- do we want to verify the product can achieve X or do we want to investigate and find out what X is ?

What are we testing ? a product, submodule, system of systems ?

Do we want performance testing to catch functional problems as well or can we expect it to be functionally tested ? how stable is the product ?

In what stage is our product- an old product with a lot of performance data ? a new product under development ? a product going through perfornce improvement stage ?

I guess you understand where all this leads to...

Not the answer you're looking for? Browse other questions tagged or ask your own question.