Mission-critical systems such as eCommerce, customer relationship management (CRM), and field sales management are the lifeblood of businesses. They have to keep running smoothly, even when loads of people are using them. To make sure they can handle the pressure, we have to put them through performance load testing. But here’s the catch: if these tests aren’t set up just right, the results might not match what happens in the real world. The most critical aspect of test design is having clear and well-defined non-functional requirements. These non-functional requirements can make or break the success of the test and the whole system itself.
So, what exactly are these requirements?
Requirements
Requirements are the instruction manual for building software, they help us reach an agreement with the people who care about what we’re making — the stakeholders. These requirements usually come in two flavors: functional and non-functional.
Functional requirements tell us how the system should act and work with users. Here are samples of some high-level functional requirements:
- As a user, I want to be able to login into the system using the credentials stored in the Corporate Identity Provider (IDP).
- As a user, when I login into the system, I should see A) a personalized banner B) recommended products C) recently viewed products D) new products on the site.
Non-functional requirements are like the backstage crew at a theater show – they don’t take the spotlight, but they make sure the show runs smoothly. They set expectations on how well the system you are building should perform. These are just as important as the functional ones because they ensure that the end-users have good site experience and that the project is worth the investment. Here are some examples of non-functional requirements:
- The user must be able to login into the system within 1 second.
- All pages on the website, except as noted, should render within 1 second on the glass.
- The system must meet page load SLA for us to 25 page views per second.
- All personally identifiable information must be encrypted before being stored in the database.rht
It’s smart to figure out those non-functional requirements early in the game because they can shape how the whole system is designed. If you ignore them, it might mean going back to the drawing board and spending a lot more money later on.
So, what should be included in non-functional requirements?
Non-functional Requirements
A good set of non-functional requirements for a product or website, should cover the following bases:
Performance Requirements: These are like checking how fast and reliable your system is, especially when lots of people are using it. It’s like making sure your car runs smoothly before a race. Examples are: Peak requests per minute, concurrent users, growth targets, response SLA’s etc.
Availability Requirements: These requirements tell you when your system needs to be up and running, and what are the uptime expectations. Also, it specifies what happens if some other systems become unavailable. It’s like setting the opening hours for a store and having a backup plan if the lights go out.
Security Requirements: Think of these as your system’s bodyguards. They specify how data should be handled, transmitted, and kept safe from hackers. An example would be a requirement that specifies that none of the logs should contain personally identifiable user submitted form data.
Regulatory Requirements: Think of these as your system’s rulebook, ensuring that it plays by all the local and national laws. By documenting these requirements, you’re essentially providing a clear set of guidelines for your architectural and development teams, even if they’re spread out across the globe. It’s like giving everyone a map to follow so they stay on the right side of the law.
Compatibility Requirements: These requirements give you the lowdown on which computers, web browsers, and software your system needs to play nice with. If your system is just for employees inside your company, you can tailor it to work smoothly with the computers and browsers commonly used on your corporate network. But if it’s meant for the whole wide world, you’ve got to make sure it’s compatible with a wide range of browsers and computers to keep everyone happy.
Usability Requirements: These are all about making your system user-friendly. They include things like accessibility, how easy it is to use, and whether it can be used in different languages.
Ensuring that the digital commerce website can sustain real user load in production requires careful testing. The first step is to understand the composition and volume of load on the system and create performance non-functional requirements. This article covers the basics of what to test.
At AAXIS, during the mid-2000s, we performance-tested websites that advertised at the Super Bowl halftime show, optimizing their application to the point where the only bottleneck was the incoming pipe to the data center. Since then, we have implemented several high-profile Business-to-Business(B2B) and Business-to-Consumers (B2C) websites as well as ancillary web-based systems that not only successfully stood the test of traffic but thrived. Today, we incorporate these learnings into all our software development projects.
Want to ensure your systems stay up and healthy even during load? Book an appointment today.