You just finished making a website for your business. You've tested it yourself, and you've also had other people in your company test it. The site is now up and running. A few weeks later, angry customers start sending you emails saying they can't place orders because some steps in the "Buy Now" process give errors. You fix the problem quickly. A few days later, someone else complains about something else, and you fix it quickly again. This goes on for a few months, until people stop complaining and things settle down. At this point, you improve your website in some ways. A few days later, a customer sends you an email to tell you that while you were adding this new feature, you "broke" something else on the website. Again, you spend a lot of time trying to find and fix the problem. At this point, you are confused and not a little bit frustrated. In the last few months, these problems have cost you a lot of customers and may have made your customers feel bad about you. You think that the only way these problems could have been found before they went "live" is if your company had hired a large army of software testers, which it can't do because it doesn't have the money.
Then came automated software testing. Good human testers can't be replaced, but a wide range of tests must be automated in some way for them to be cost-effective. Automated testing tools can make a huge difference in the number of testers needed and work very well with human testers. No matter how small a change you make to your website, you need to test it thoroughly to make sure nothing else was affected. This takes a lot of time because there are so many different things that could happen. An economic necessity is a strategy that uses software to automate tests.
There are two types of tools for automating testing. The first type, functional and regression testing tools, help make sure that the website works as it should. For example, if a customer clicks on button X, page Y should come up without any problems. Functional and regression testing tools can automate a lot of situations to make sure that your website works the way it should. The second type is load testing tools. These check how well your website works when it's under a lot of stress, like when a lot of people are using it at the same time. Load testing is something I will talk about in a different article.
I'll now tell you about the most important parts of functional testing. Before you can start automating any kind of functional test, you will need to figure out what kinds of tests you want to automate. Once this is done, you will need to make test scripts that cover these situations.
Most of the time, a functional testing tool will record how users interact with a website. As you do different things on your website or app, the tool keeps track of each step. When you're done recording, it turns what you did on your website into an automated script. You could also use the tool to put the script together by hand. Most of the time, testers do a mix of the two. They will use the recorder to make the basic structure of their scripts. They will then make changes by hand to add special cases.
Scripts can be made up of either pictures or words. Users don't need to know how to code to use a good functional testing tool. Users who don't know much about programming will mostly work with graphical scripts. Most tools' graphical scripts show all interactions as a tree structure, and users can change the script by editing any of the tree's nodes. Some users, though, who know how to code may want to write their own scripts. Most of the time, these users will work with a text script written in a common language like JavaScript or VBScript.
Once you've made your script, you'll need to add checks to it to make sure your website is working properly. Checkpoints are often used for these kinds of checks. A checkpoint makes sure that the values of a property found when testing the website are the same as the values that were expected. Checkpoints let you set the criteria for comparing what you expected to find with what you actually found. By keeping track of how people use a website, the expected value of a property can be found. It can be seen and changed at checkpoints. During replay, the current value is pulled out (i.e. during the execution of the test case).
Checkpoints come in many different forms. A page checkpoint checks the source and statistical properties of a page or frame. You can check for broken links, verify link URLs, image sources, the order of HTML tags, or even the entire HTML source of a Web page or frame. You can also set limits for how long a page takes to load. A text checkpoint makes sure that a certain piece of text is or is not shown in a certain place on a web page. The properties of a web object, like the value of an HTML INPUT field, are checked by a web object checkpoint. A database checkpoint makes sure that the information in a database that your website uses is correct.
When you play back a test script, the testing tool will open the recorded application and run the recorded steps in the same order as they were written in the script. When it runs the script again, it will also go through all the checkpoints you put in the script. You can also test how your application works by giving it different kinds of data. For example, you can try to submit a page after entering different values in an edit box on a web page. Usually, at the end of the replay, a detailed report is made.
Functional test automation lets you test a large number of scenarios on your website in the same way over and over again. Functional testing tools are an important part of your development arsenal. They help you get a lot more done in a short amount of time and allow small testing groups to do a lot more work. Functional Testing Tools have a very strong economic case for being used as part of a website's development and deployment process.