Performance Assessment for Web-based Systems Min Song, Ph.D. IS 465.

Slides:



Advertisements
Similar presentations
Tales from the Lab: Experiences and Methodology Demand Technology User Group December 5, 2005 Ellen Friedman SRM Associates, Ltd.
Advertisements

Performance Testing - Kanwalpreet Singh.
Testing Workflow Purpose
Test Automation Success: Choosing the Right People & Process
Software Quality Assurance Plan
MIS 2000 Class 20 System Development Process Updated 2014.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
DoD Information Technology Security Certification and Accreditation Process (DITSCAP) Phase III – Validation Thomas Howard Chris Pierce.
Documentation Testing
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Software Testing and Quality Assurance Testing Web Applications.
Illinois Institute of Technology
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
DITSCAP Phase 2 - Verification Pramod Jampala Christopher Swenson.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Introduction to Software Testing
Agile Testing with Testing Anywhere The road to automation need not be long.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
MSF Testing Introduction Functional Testing Performance Testing.
Introduction to Computer Technology
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
TESTING STRATEGY Requires a focus because there are many possible test areas and different types of testing available for each one of those areas. Because.
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
Software testing.
Manage Engine: Q Engine. What is it?  Tool developed by Manage Engine that allows one to test web applications using a variety of different tests to.
Semester 1, 2003 Week 7 CSE9020 / 1 Software Testing and Quality Assurance With thanks to Shonali Krishnaswamy and Sylvia Tucker.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Moving into the Testing Phase Revised for October 22, 2008.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Testing Life Cycle
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Testing and Quality Assurance Web Applications Testing 1.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Deploy With Confidence Minimize risks Improve business output Optimize resources.
Software Testing and Quality Assurance Software Quality Assurance 1.
Slide 12.1 Chapter 12 Implementation. Slide 12.2 Learning outcomes Produce a plan to minimize the risks involved with the launch phase of an e-business.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
 2004 Prentice Hall Business Publishing, Accounting Information Systems, 9/e, by Bodnar/Hopwood 13 – 1 Chapter 13 Auditing Information Technology.
Automated Testing Gireendra Kasmalkar Prabodhan Exports Pvt. Ltd.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
Module 9 Planning and Implementing Monitoring and Maintenance.
Performance Testing Test Complete. Performance testing and its sub categories Performance testing is performed, to determine how fast some aspect of a.
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Eris Performance & Load Testing. Performance & Load Testing Basics Part 1.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
HPHC - PERFORMANCE TESTING Dec 15, 2015 Natarajan Mahalingam.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Performance Testing - LR. 6/18/20162 Contents Why Load Test Your Web Application ? Functional vs. Load Web Testing Web-Based, Multi-Tiered Architecture.
Session on Load Testing - Alok Agarwal. Agenda for the session Definitions Example on load testing What to Avoid When Testing for Load Goals of Load Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Software Architecture in Practice
Software Testing.
Auditing Information Technology
Performance Load Testing Case Study – Agilent Technologies
Applied Software Implementation & Testing
Introduction to Software Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Software System Testing
Presentation transcript:

Performance Assessment for Web-based Systems Min Song, Ph.D. IS 465

2 Topology of a Web Site Web Server Web Server Security Server Security Server Database Server Database Server Application Server Application Server ISPISP ISPISP Browser Internet FirewallFirewall FirewallFirewall Browser

3 General Considerations Application conception What’s to be done? What’s the whole purpose of this task? Design How is it going to be done? Flexibility, Dynamic Development What tools to use? What technologies to implement? TESTING What? it’s working well, isn’t it? Deployment How soon?, Pronto!, Is fast isn’t it?

4 The NEED to Test (Are we wondering…) Is the site content meaningful? Is this application easy to use? How about browser compatible? Are we using the right tools? How reliable is our technology? Do the Servers have enough power? How many visitors are we expecting? Are the machines fast enough? How much activity can the site handle?

5 What and How to test? (Fundamental Considerations) Test Planning Browser Compatibility Design compliance Usability Efficiency Scalability Best suited OS platform Network bandwidth Hardware capacity Site availability Monitoring Security

6 Testing a Web Site Understanding what types of testing are needed for each application, is essential for several reasons: Ensures you that the testing effort, will support the business and technical requirements. The activities required for each type of test and its associated phases, are included within the master test plan (and schedule). H elps identifying and plan for the environments and resources that are needed to prepare and execute each test type. Assures the achievement of any Testing Goals.

7 Testing a Web Site (continued) There are mainly two essential types of testing that should be accomplished. Functionality Performance

8 Functionality Testing What is it? Why is so important? What is: – Unit Test – Integrated Test – Functional Test – System Test – Regression Test

9 What is Functionality Testing? Is a set of skilled approaches and procedures which systematically verify that the application’s components and process modules, are available and working as expected. Compliance with Business rules, Technical requirements, System Documentation, and User manuals is of course… Mandatory!

10 Why is Functionality Testing important? Missing Image

11 Functionality Testing -Unit Test Unit Test Unit tests perform basic tests at component level and test a specific business process, application, and/or system configuration. Unit tests ensure that each unique path of a business process performs accurately to the documented specifications and contains clearly defined inputs and expected results

12 Functionality Testing -Integration Test Integration Test Integration test is testing a specific feature together with other newly developed features Testing the interface of two components explores how components interact with each other Integration testing inspects the variables passed not only between two components, but also the global variables. Integration testing is specifically aimed at exposing the problems that arise from the combination of components Previously captured unit test scripts can be combined to create a variety of integration test cases This test phase assumes the components and the objects they manipulate have all passed their local unit tests

13 Functionality Testing - Functional Test Functional Test Functional testing is centered around the following items: 1.Valid Input - identified classes of valid input must be accepted. 2.Invalid Input - identified classes of invalid input must be rejected 3.Functions - identified functions must be exercised 4.Output - identified classes of application outputs must be exercised. 5.Systems/Procedures - interfacing systems or procedures must be invoked.

14 Functionality Testing – System & Regression Test Regression Test Regression tests are a series of tests to ensure that no adverse changes are introduced to the application during maintenance changes, upgrades, or other modifications. Regression testing is composed of a suite of components that are rerun when any one- application component has been modified This provides confidence that the system will function with newly implemented requirements. Regression testing is often an iterative process during a testing cycle System Test System testing studies issues and behaviors that can only be exposed by testing the entire integrated system Verifying these characteristics is very important for products intended for users on diverse OS and Hardware platforms. Identification of faulty Hardware and Software components, is feasible this way.

15 Performance Testing What is it? Why is so important? What are the types of Performance Tests? What is the difference between Load, Performance, and Stress Testing ?

16 What is Performance Testing ? Performance Tests determine the runtime “behavior” of the application and its supporting infrastructure, under certain conditions. Performance Testing is used to measure several system characteristics, such as processing speed, response time, resource consumption, throughput, and efficiency.

17 Why is Performance Testing important? The week of Feb 6, 2000: Hackers delivered over 1-Billion transactions concurrently to each one of these sites. Yahoo eBay Buy.com Amazon eTrade How did you think they performed ?

18 Performance Testing - Load Test Load Test Load Tests determine the applications behavior under load, up to and including its limits (not just at its limits). Load tests specifically refer to the load size (number of concurrent users) and related values.

19 Performance Testing - Stress Test Stress Test Stress testing determines the applications ability to handle large amounts of data. Stress Testing can be much more successful with a full load applied to the server. Running addition applications on the server in conjunction with the client side tests is an additional form of stress testing.

20 Performance, Load, and Stress Testing ? They all have different meanings, although they seem to be used almost interchangeably sometimes. To better understand these differences; let’s apply these terms while testing a car: Performance Testing - a car does 0-60mph in a certain number of seconds under normal conditions Load Testing – The car can pull a trailer weighing x - tons before it can no longer move Stress Testing - The car continues to work fine driving 60 mph for two hours, in 120 degree temperatures, with only 1 gallon of coolant in the radiator

21 Why Automate Testing? Is it necessary to repeat the sequence of actions many times? Do you need to run the same tests on multiple hardware configurations? Need to test with several concurrent users? Exercise multiple options, components, and configurations Save time and money

22 What are we testing for? Where should I start? How do we proceed? What tool do I select?

23 Simulating the Real World The MAIN purpose of running automated tests is to emulate the REAL world as close as possible while saving time and effort.

24 Tips for selecting an Automated Testing Tool Ease to use (and learn) Standards compliance Robust and Reliable (accurate) Flexible Affordable Maintenance and Support Important: Is it the right tool for the job?

25 What are we Testing for? Everyone involved should be clear on what exactly we are testing for and the goals for the outcome of the test Testing For: How many Total Concurrent Users ? At what point does the performance degrade ? Which server will max out first ? (Web, DB, App, etc.) How about Data integrity ? What is the Total Throughput ? (Bandwidth, pipeline) Goals: Round time =< 15 sec Total Concurrent Users => 300 / Min

26 Automation Web Testing Methodology 5-Phases 5.Analyze 4.Execute 3.Modify 2.Record 1.Define Modeling Paradigm

27 The Application 1.Describe the application to test using a application model 2.Describe the Hardware environment 3.Create a Benchmark (Agenda) to be recorded in Phase 2. A.Define what tasks each user will perform B.Define (or estimate) the percentage of users per task. Benchmark - A benchmark procedure uses a predefined set of data and measures the results returned by the Application Being Tested (ABT). Benchmarks are intended to make comparisons easy! 1.Define

28 Testing Types and Metrics needed 1.Load Increasing Workload 1.Start / End with how many users? 2.Increment by how many users? 3.How often to increment (Seconds)? Steady-State 1.How many users? 2.How long (Days/Hours/Minutes/Seconds)? 2.Performance A.What are the reasonable response times in seconds? (each task/page) 3.Stress A.What are the expected limits? B.How many Peak users ? 1.Define

29 3.Modify 2.Record Record 1.Record the defined testing activities that will be used as a foundation for your load test scripts. 2.One activity per task or multiple activities depending on user task definition 1.Define Modify Modify load test scripts defined by recorder to reflect more realistic Load test simulations. 1.Defining the project, users 2.Randomize parameters (Data, times, environment) 3.Randomize user activities that occur during the load test

30 Performance Test scenario Test Date: 07/17/2001 Virtual Users (VUs): Test Goals Start: 5 Max Cycle Time <= 40 Sec Incremented by: 5 Maximum: 200 Initial Cycle Time = 35 Sec Sleep = 32 Seconds Test Script(s): One typical user from logon through completion (continuously) This would be an average user 4. Execute

31 Performance Test scenario Cycle Time starts to oscillate, indicating a bottleneck 5. Analyze

32 Performance Test scenario (Continued) The CPU Started making large spikes right from the start

33 Performance Test scenario (Continued) The TPS & Throughput peaked out indicating another Bottleneck

34 Performance Test scenario Both Load Generator CPU’s are spiking to 100%

35 Conclusions Define the purpose of taking on a test automation effort Develop a test automation strategy (map out what's to be automated) Treat the automated process as any other software development task Do your homework (Investigate!) Test early and test often! Remember: The effort of test automation is an investment Those performing the work should have the correct skill sets YOU SHOULD TEST UNDER LOAD!!!