Search over 27,600 MOOC courses
enter subject, university name or course name
Career Evolve is your partner in online learning and career development. Search our catalog of 28,000+ courses from over 21,000 top colleges and universities. Our partners have helped over 2 million students and continue to enroll over 30,000 students each month. Career Evolve provides you with access to free and affordable online training.

You can take courses in subjects varying from Philosophy to Computer Science or even Advanced Fiction Writing to Becoming a Physical Therapy Aide. Learn at your pace anytime and anywhere.
Career Evolve also integrates with LinkedIn to profile your achievements to potential employers.

Whether you are searching for micro learning from providers, such as Coursera, EdX or courses from leading Universities like MIT, Stanford and Peking University, Career Evolve is the answer for affordable learning and shrinking training budgets.

Invest in yourself with Career Evolve.

Discover your next learning opportunity from just one of our many Universities



Massachusetts Institute of Technology Georgetown University University of Queensland Boston University McGill University
Harvard University UC Berkeley Cornell University University of British Columbia Hong Kong University of Science and Technology

Tuesday, 30 May 2017

Best Practices For Cloud-Based Testing

Cloud computing provides “computing” as a service, transforming IT services. Both the software and hardware landscape have rapidly changed in recent years based on the requirements of cloud infrastructure and its increasing popularity. Cloud computing can offer more agility for both software applications and hardware infrastructure.
Performance testing, load testing, tuning and monitoring in the cloud has undoubtedly generated a lot of new demands for the IT staff. When it comes to the cloud, the term “performance” refers in general to an application’s response time, throughput and resource utilization, among many others.
The single most important benefit of cloud computing is the scalability of the application: applications deployed in a cloud environment can harness the power of thousands of computers whenever needed. As a result, the performance of the application can increase significantly. This means more customer loyalty and higher revenue.
To ensure that the testing program is comprehensive, consider these seven best practices strategies:
Best Practice #1: Measure Performance from the User’s Perspective, not the Server's
Performance is not merely a question of load times and application responsiveness. The more important question is: how satisfied are my users? Performance may mean one thing to you but another thing to your user. If you are simply measuring load times, you're missing the big picture. Your users are waiting for the app to do something useful rather than waiting for pages to load with stopwatches in hand.
So how quickly can users get to useful data? To find out, you need to include client processing time in your measure of load times. It is easy to cheat on a performance test by pushing processing work from the server to the client. From the server standpoint, this makes pages appear to load more quickly. However, forcing the client to do extra processing may actually make the load time longer for users.
Best Practice #2: Make Performance Testing a Part of Agile Development
All too often, performance testing is isolated and left until the end of a development project. At that point, it's probably too late to fix issues easily. Any problems discovered are likely to significantly delay your project by throwing development into fire-fighting mode.
To avoid this problem, performance testing should be made part of the Agile development process. That way you can find problems and fix them quickly.
Specifically, testing must be integrated into development, which means performance engineering should be represented in scrum meetings on a daily basis and tasked with the responsibilities of measuring and tracking performance as the code is developed within the same development cycle. Leaving testing for the end of the development process is too late.
Best Practice #3: Make Performance Tests Realistic
Throwing thousands or even millions of clients at a server cluster may stress-test your environment, but it is not going to accurately measure how your application or site performs in a real-world scenario. There are two major issues you need to consider when setting up your testing environment.
First, the scenarios must reflect the variety of devices and client environments being used to access the system. Traffic is likely to arrive from hundreds of different types of mobile devices, web browsers and operating systems, and the test load needs to account for that.
Also, this load is far from predictable, so the test needs to be built with randomness and variability in mind, mixing up the device and client environment load on the fly. By continuously varying the environment and the type of data that is passed, the development organization faces fewer surprises down the road after the application is put into production.
Second, the simulation can't start from a zero-load situation. Many test plans start from a base, boot-up situation, then begin adding clients slowly until the desired load is reached. This simply isn't realistic and provides the testing engineer an inaccurate picture of system load. As applications are updated and rolled out, the systems they're running on will already be under load. That load may change over time, but it won't fall to zero and slowly build back up.
Best Practice #4: Develop Performance Tests Specifically for Mobile Applications
The increasing adoption of smart phones, tablets and other mobile devices has fueled the growth of mobile applications in recent years. Mobile devices have become the primary medium of interaction for consumers as well as businesses worldwide, and mobile applications are driving these interactions. To a large extent, mobile applications have put business operations in the hands of the consumers, and they are literally running businesses and influencing business decisions. However, the big question is: what makes a mobile application compelling enough to influence consumer behaviors and make them engage with your brand and products? Of course, a strong mobile application development strategy is the foundation of any successful mobile application, but there’s one key component in its development that ensures your mobile application meets customer expectations and business goals – the mobile application testing strategy. Mobile application testing is the quality test your mobile apps have to pass before they reach their target mobile devices or app stores and become available to public.
Best Practice #5: Develop Test Environment Setup Procedures
When the cache and cookies are not clean while recording a user scenario, the web browser uses cached data and cookies to process client requests instead of sending data to and receiving responses from the server. With that said, it is very important to clear browser cache and cookies before recording traffic.
Start recording a new scenario from the web browser’s start. If you start recording a scenario after you connect to the tested web server and open a few web pages, the playback of the scenario will fail. This will happen because the recorded traffic will not reproduce the authentication procedure, and the tested web server will ignore the simulated requests.
Parameterize scenarios to simulate more realistic loads on the server. Scenarios can be parameterized by replacing recorded parameters in the HTTP requests with variable values, which lets virtual users send user-specific data to the server. This lets you add dynamic behaviors to your scenarios as if they were run by a group of unique human users. Note: Before you parameterize a scenario, carefully explore its HTTP requests and HTTP responses to better understand what data is being transferred to and received from the server.
Verify user scenarios. Before creating tests on the basis of a recorded scenario, make sure that the scenario is executed successfully for one virtual user. This can help you identify bottlenecks of the scenario and eliminate problems that are unrelated to the number of virtual users and additional testing conditions.
Best Practice #6: Accurately Monitor and Analyze Test Results
Add validation logic to the script to make sure the results you get under load are consistent, valid and expected. You can validate that a request has completed correctly based on many things, including page (HTML) content, content size, page title and end page time, among others. Make sure you test the application in a production-like environment, including factors like Secure Sockets Layer (SSL), single sign-on (SSO), load balancing and firewalls. This is essential for simulating accurate end-to-end behavior.
Avoid the temptation to extrapolate results – one server with 100 users may not run like two servers with 200 users. Test the equivalent of your full production stack. Collect statistics from your back-end environment, including web, application and database servers, to diagnose load impact on all applications tiers. Analyze server-side statistics side-by-side with client-side statistics and look for any discrepancies that might indicate a problem. To communicate test results effectively, generate reports for each team member in their preferred format.
Best Practice #7: Schedule Test Scenarios Periodically
Test often. After completing the initial load test, use the results as a baseline and look for regression in performance – a seemingly insignificant change can cause unexpected performance issues. The easiest way to do this is through automation. It’s important to check all of the application parameters, including the number of connections, response time, transaction times and throughput. There are many reasons why an application can break under load and the actual culprit is not always easy to predict.
In conclusion, while the above list is not intended to be exhaustive of all cloud-testing activities, it does serve as a viable starting point for all IT staff personnel considering how to successfully test real-world applications and services deployed to the cloud.

No comments:

Post a Comment

Featured

Starting a Consulting 

Practice

Starting a Consulting Practice

Find out how you can earn income by sharing your training or knowledge with others.
PMP ® Certification Prep 1

PMP ® Certification Prep 1

Begin a well-paying career as a project manager by preparing to take--and pass--the PMP® certification exam.
How to Get Started in Game Development

How to Get Started in Game Development

Take steps toward a new career in game development by building a foundation to design games in a wide variety of genres for different audiences and platforms.
Accounting Fundamentals

Accounting Fundamentals

Gain a marketable new skill by learning the basics of double-entry bookkeeping, financial reporting, and more.
Conversational Japanese

Conversational Japanese

Whether you want to learn conversational Japanese for travel or just for fun, you'll find this course makes it easy and enjoyable for beginners to master the essentials of the Japanese language.
Introduction to QuickBooks 2015

Introduction to QuickBooks 2015

Learn how to quickly and efficiently gain control over the financial aspects of your business using this powerful software program.

Student Profiles