Introduction to Testing

From Training Material
Jump to navigation Jump to search

Types of Testing

  • Functional Tests
    • Functional Tests
    • UAT Tests
    • Unit Tests
  • Non Functional Tests
    • Performance test
      • Load test
      • Stress test
      • Soak (Endurance) test
  • Other Non Function Tests
    • Usability Tests
    • Compatibility testing
    • Compliance testing
    • Recovery testing
    • Security testing
    • Scalability testing

Other tests:

  • Regression tests

Functional Tests

  • Black Box testing
  • Test Cases are based or Use Cases or User Stories (i.e. specification)
  • Usually performed by the provider of the software or systems
  • Usually implementation agnostic (doesn't depend on specific implementation)

User Acceptance Tests (UAT)

  • Specific version of Functional tests conducted by the customer (or end user)

Unit Tests

  • Testing of the source code
  • Functions or classes are tested
  • It tests the logic of the basic components

Usability Tests

  • Focuses on end-to end processes and user interfaces
  • Is the application user friendly?

Performance Testing

Stress Testing

  • Is the server able to react properly under the heaviest expected load?
  • How many errors of a specific type may occur?

Jmeter statistics related to stress testing:

  • Summary Report, Error% column
  • Result Tree to view an erroneous request and the exact response
  • Assertions can be used to distinguish proper errors (generated by a throttle mechanism) from unexpected errors

Load testing

  • AKA: performance testing, reliability testing, or volume testing.
  • Can the system cope with the expected load?

Jmeter statistics related to load testing:

  • Graph results, throughput and average response time and deviation
  • Also Maximum time (Aggregate Report), 90% line
  • In summary report check KB/sec and compare that with your max bandwidth capacity (though, much easier to check on the load balancer statistics)

Soak testing

Is the system able to cope with a heavy load for a considerable amount of time?

JMeter implementation:

  • In thread properties tick “Loop Count: Forever”
  • Stop after 48 hours and analysis logs and trends

We monitor:

  • CPU
  • Memory
  • HDD space
  • DB size, etc...

Questions

JMeter has been created for:

  • Unit Testing
  • Performance Testing
  • Regression Testing
  • Soak Testing

Performance testing should be done before Functional Testing

  • True
  • False