The proper flow of things matters
Web applications are huge. They bring colossal money to their creators. Or they fail in the market. There are multiple reasons why an app may not gain the expected commercial success. Quality is one of those. Lack of quality, I mean.
Everybody needs a nice plan in order for everything to work splendid. Web app testing is not an exception. There are steps you would like to follow if you do not wish to do all the crazy running around and shotgun bug blasting right before the release date. That is not the best activity to participate in. So how should things go?
- Plan ahead. You have the testing requirements. What to do with them? You analyze. Try understanding the web app you are to test. Make sure you’ve shared work with the team and everybody knows his part by heart. Prepare the testing Plan and Strategies. How will you be reporting issues? Where will all the reports be maintained? How will the process of assigning tasks go? Which party requires any particular report and when do they require it? Make sure you have some splendid test cases ready. Gather as much data as possible about all the app’s aspects. What about those repeated tests in different environments? Is all prepared here? All those questions need to be answered before you are making your first steps with actual app testing. And never forget the requirements during the entire testing process. Your teammates are individuals. Make sure they are getting the appropriate tasks.
- Make yourself a nice and cozy test environment that is different from those developers are using and the production environment. Try for it to contain a database, web and application servers (if required). Try making it as close to the production environment as possible. There has to be a nice simple process that allows the code to move straight into and from your test environment. Be quite sure everybody follows the appropriate procedure.
- Now to the fun stuff with functional testing. This are the tests you are making against the business app requirements. This is something you may call Black Box testing. The step is as relevant as air (as for now). The way it is working is its using the app’s individual functions in the process of its verification. Functional test cases are your primary tools here. Processes like database, configuration, compatibility and flow testing are swell examples of functional testing. Thus you will ensure proper testing of boundary conditions.
- The interface testing would be our next step. It is also of highest importance. What is the interface? The actual software consisting of images, commands, sets of messages and whatever other features it has that are allowing communications between the user and the device. That’s exactly the way you are ensuring the correct link between individual components. If the app is destined to be multi-platform there’s no way you may kick back while interface testing. GUI is most commonly used for user interface testing.
- We are now approaching usability testing. If the apps purpose is simplification of any manual process Usability Testing has to be there in the process and on the highest level of performance. This is the way to ensure the app is handy and convenient. What to double check on this step? Everything the user will be clicking and touching. The web page is desperate to be simple in use. Directions have to be as clear as possible. The main menu has to be on each page and relevant to its content. The things you’ll need to ensure are: there has to be proper navigation between pages, there has to be minimum (or none) over-crowded content, there has to be a site map, try being user-friendly to everybody you have in your target audience and beyond.
- Web application security testing is important due all the damage a hacked app may cause to both you and your users. There are two types of Security Testing, static and dynamic. The dynamic type includes actually running through the app to see if everything is going as expected. On the static part you are working with the code in order to locate its vulnerabilities. The not to forget list on this step is: 1) manipulations on the URL via the HTTP GET methodologies, 2)password cracking, 3) penetration testing, 4) SQL injections, 5) XSS aka Cross Site Scripting, 6) general vulnerabilities.
- User Acceptance testing. What are you going to do on this step? Making sure users will be happy with your web application if speaking simple. What’s not to miss here? Make sure browser capability is certified, make sure all the mandatory data fields are provided with appropriate data in forms, try checking if everything is OK with appropriate control over feeding data (like when you are asking for some gender info from your user make sure he has options to choose from), look out for field width and time outs. It’s nice that not all of the work here has to be done by testers. Alpha testing is done by developers in their environment so you are left with beta.
- We are finally making it to Performance Testing. This is testing of the app’s actual performance under multiple scenarios. Stress, load and scalability testing are the steps to walk through here. Stress testing is about finding the application’s max performance limits. Scalability is about determining how flexible the app actually is and is it OK with hardware and software changes. Load testing is there to determine how the app will react to actual heavy usage. Here is where you are getting all the data on CPU usage, etc.
There you go with your new and shiny plan. Hope it did help for at least a bit. Please enjoy testing!