You are here: Home Software Testing Techniques Website testing: testing before a new release

SoftwareQAtestings.com

...Your Hub for Software Testing and Quality Assurance

~ Contact Us ~ Privacy Policy ~ Register ~

Website testing: testing before a new release

The theory and promise of a 24/7 Web site are always talked about, the reality for many company Web sites is that they need to be taken offline (at least occasionally) to install new releases or upgrade software or hardware. Occasionally you need to take your production site offline for an hour or two during the night to install a new release. A variety of people are involved with these releases and the pressure is high—everybody takes their turn working through their piece of the process, knowing that offline time means lost revenue and reduced customer service. In this race against the clock, quality assurance is designated the last position—the final checkpoint before the site is open to the public again.

 

In such a scenario a quality assurance person brings to the table a critical career skill that has nothing to do with the latest or coolest technology: the skill of planning. It’s important to be organized in a profession that often senses other people (such as the rest of the technical and management team) pacing and waiting for QA to finish their job. Quality assurance needs to be clear with the rest of the team about what needs to be done and the risks we take when corners are cut because we are short on staff or short on time.

 

When the magic hour approaches, the network staff begins by trying to close the site as gently as possible for customers—waiting for people to sign off and hoping more people aren’t logging in at three o’clock in the morning. Once the customer count is as low as possible,  a maintenance page is posted stating that our site will be offline temporarily, and an email will be sent when the site is available again. A connection outside of our firewall is used to verify that this maintenance page is what is being shown to the "outside world by the quality assurance guy." He enters his email address to receive notification when the site is live again. Then, the network staff makes any hardware or software upgrades as needed, followed by configuration changes.

 

Meanwhile, our database administrators (DBAs) begin making modifications to the production databases. Database tables may be added, changed, or deleted. Sometimes these database changes can only happen when the DBAs can gain exclusive access to a table. The only database changes that are made are those agreed upon in advance by development, quality assurance, and the DBAs. These database changes are well documented and executed according to the agreed-upon plan.

 

The network staff continues by installing the new software. They follow release notes that were prepared by quality assurance in advance. The developers review configuration settings, ensure content is moved to production, and check that the correct files are in place. Once the network, DBA, and developers are done, quality assurance steps in. QA ensures that the release is ready, and that the site is ready to go live again.

 

What does quality assurance do at four o’clock in the morning with a production Web site on hold? To begin with, there is no time to plan during offline time—you have to be ready to work. You should have a checklist that was prepared ahead of time. This reduces release stress and gives quality assurance the ability to ask for other team members to lend a hand in speeding up the process. At this stage, release cycle testing is the same as development cycle testing—planning is essential.

 

Guidelines to check the new release

Here are the proposed steps that should be followed by the quality assurance team to verify the correct release has been installed on each production server.

 

Log in to Each Server using specifically created Login Page.

Generally multiple production servers are used to support a Web site. A load-balancing software is used that pushes each new customer session onto the server with the lowest number of users. While this load balancer is an important element of our production site, it is not helpful when quality assurance or development needs/wants to log in to a particular production server. To work around this issue, the developers should build a simplified version of our login page that allows the quality assurance team to specify which production server they want their session to be run on. For middle-of-the-night installations, this page becomes an important tool as we use the simplified page to log in to each server and ensure each server is ready to go.

 

Verify Basics First

For each server, some basic elements are checked that have nothing to do with the new release. Always make sure you can access each server and log in using a customer account that has been created ahead of time. Also check that basic transactions relevant to our site can be performed (like searching for an item, browsing the aisles, putting an item in the shopping cart, submitting an order, etc.).

 

Verify SSL is Works on Every Server

SSL (secure sockets layer) is an imperative part of an e-commerce site, because it renders any credit card number entry online reasonably safe. Check SSL to make sure it’s working on each production server after every installation. There might be secure and nonsecure pages in a web site. There are secure pages exposed only to existing customers and nonsecure pages exposed to new customers. Check both, and check each server.

 

Like any assessment done by quality assurance, you have to assess risk, likelihood, and impact. How big of a risk would it be to your site if SSL weren’t working? How likely would it be for a customer to encounter the flaw? And, could you survive the impact of that flaw on your production site? When you consider these points, checking each secure page on each server is like maintaining your company’s own life insurance policy; one that you wouldn’t want to skip payment on.

 

Use a Checklist of Visual Features that Changed for the Release

While most releases contain some functionality change that is not visually noticeable, they may include some change to the user interface such as a newly revamped page or a new icon/graphic. To prepare for your middle-of-the-night releases, create a list of these quick visual checkpoints ahead of time. Log into each production server and use these checkpoints to ensure each server has the correct release in place. Remember, the entire release has already been through the quality assurance process. This is the release process, not the development process.

 

You can see how forcing a session on a particular server combined with knowing the visual changes of a release creates a reasonably fast, manual means of ensuring the new release is in place on each server. Logging in, checking the basics, checking SSL, and making a visual checkpoint of a few items have to be done on each server. Because you are working against the clock, log into each server rapidly so if a particular server is having an issue, you can call out that issue to the network staff immediately. Then go back through each server and check the basics, SSL, and visual checkpoints. Making sure the basic build is working before testing new features in depth is similar to the QA strategy used typically during the development process.

 

 


 

 

Verify INI, Property Files, or Other Configuration Files

A combination of property files and INI files are often used for configuration settings that are specific to the environment. These files define where content and graphics are being read from, session timeout values, error file locations, etc. Since the system test environment is not configured the same as our production environment, these configuration files must be carefully checked with each release and for each server. You should have scripts in place that the network staff uses which forces the files to be in sync from one server to another, but still take the time to at least spot-check the configuration files on each production server. Similar to the visual checkpoints, build a list of any configuration file changes for the release in advance. This list is used by the network staff who modify the files and by quality assurance, so everyone on the team is reading from the same document.

 

Specific Checkpoints for Specific scenarios

Sometimes a change is made that impacts certain aspect of the site that are worth checking in production. For example, a required field is added in online registration that won’t work correctly unless the corresponding database modification has been made. If needed, create accounts in advance for this type of testing. If your database design is complicated or includes triggers, stored procedures, etc., you might want to enter the first few orders or records and check the data in the database before your site goes live.

 

Go Live

Once these checkpoints have been made and everyone on the team is confident the build is ready, go live. Be ready to receive the user email notification indicating that the site is now online, and then return to your test lab to check how the site is being presented outside the firewall.

 

Steps to Verify the Release is Working When the Site Is Live

 

Verify the First One or More Records in the Database

If new tables have been added to the database or major changes have been made, the first few records in the production database are checked by the DBA and QA team to ensure the data is accurate.

 

Verify Any Third-Party Links

You might have a couple of links that work with other companies and their Web sites. When your site goes live, check to see if these links are working to ensure the sites are working together as defined. Check them from both inside and outside of our firewall.

 

Check that Nightly or Weekly Jobs Are Ready for the Environment

Last on the list should be checking of any nightly or weekly jobs that need to be run in production have been modified and are in place. Typically,  DBA will check to ensure data warehousing jobs and other jobs are in place and configured correctly. Following the release, the team should keep an extra eye open for any production issues. The technical support team—which must be told in advance of each release—also waits to hear if any issues arise. If so, the release team is immediately called into action.

 

Conclusion

Preparing a checklist in advance helps minimize time and confusion during the release cycle. This is especially helpful if you have to complete the release cycle at three or four o’clock in the morning. By planning, organizing, and maintaining a commonsense approach when searching for flaws during any step of the process, QA testers make valuable contributions to the team.