Many organizations today design, develop and deploy web services which allows most of the business processes to be accessed internally as well as by external customers. Google, Facebook, LinkedIn, Flicker, Netflix are some of the leading giants in the software arena who rely and supply their product via web services. These web services are also utilized with modern technologies like micro services based architectures where web services communicates each other and also internet of things which is trending area in the global software technological industry.
Being test automation professionals we should test a web service in every aspect, such as
- Reliability – The web service should be accessible and functional 24*7 for the customers, example the web services provided via a bank.
- Secure – Most of the web services should be accessed via a secure channel, data it transmits as request and responses should encrypted in most stringent manner where the its should not be compromised any manner.
- Performance – Web services are not accessed by a single person. It will be accessed by a large scale of user base and in a peak time. As test professionals we should always be conscious to load and stress test a web service before it is being released to the public domain.
- Functionally robust – Web services should be cover the functional requirements, this includes testing both happy path and the negative paths of a given web service.
Web services can be tested manually as well as its testing can be automated. Testing of web services is going to stay for long time in the software testing arena and it is the first thing that a test professional should learn upon.
Looking upon the testing hierachy of needs web services testing should be at the highest priority than UI testing and UI test automation.
Postman is one of the most popular and demanding tool in the web services testing world. It is an all in one suite which starts from publishing/mocking/testing and even monitoring web services.
Fiddler is also an awesome tool that a test professional should learn which also helps us to run a web services test and also execute a suite of web services in an automated way.
Apart from such manual testing tools we should also engage upon automation of testing web services with fantastic, industrial demanding tools such as RestAssured, UniRest and also Karate.
It is a must these days that a person who wants to excel in testing have hands on experience using these tools.
Looking at the Tweeter feed published by Dmitri Korobtsov (https://twitter.com/dkorobtsov) shows that Postman and Rest Assured are widely used web services testing tools while Karate and UniRest are also going to dominate in the near future.
Certified Professional in Web Services Testing helps a test professional to start the career in web services testing from the scratch and it also helps him/her to gain more practical knowledge in testing web services. CP-WST is the only global certification program which helps a test professional to learn and work on web services testing.
For more information on CP-WST please visit – https://www.agiletestingalliance.org/wst.html
Test automation is one of the key areas which a software test engineer should know and it should be in the blood of the test engineer. Today most of the software organizations are undertaking software test automation projects. Some of these projects are basically trying to automate the continuous testing process of the project or product that they are developing. Some may be outsourced test automation only projects from clients where they may be automating a product already developed by the client.
Test automation project will end up in success or they may end up with deadly disasters, if they are not started properly or not managed properly.
The main reason for such failure is when the test automation project is not properly initiated. Some test professionals fail to identify and asses the feasibility of test automation in a project before starting it. Everyone should understand that test automation is not having a test automation tool like Selenium and automating a set of manual test cases. There is more into it. Some people try to automate every project to earn an extra income to their organization. With this object in mind people try to initiate test automation to project which does not have any feasibility in test automation.
In this article I will try to point out some checklist items for test automation suitability checklist.
- Is the project a short term or a long term project – A project which has a life span of more than one year can be considered as automatable.
- Are there multiple release cycles in the project – There should be fair amount of release cycles where we can make use of our test automation suite. If we undertake a practice of continuous delivery and agile, test automation become handy.
- Do we have a good skill set of test automation engineers – To kick start an automation project we should posses a good set of technical test automation engineers. They should have good coding skills and knowledge on the test automation tool stack. They should also be competent in other techniques such as troubleshooting continuous integration servers and even the version control mechanisms.
- The platform we are going to automate – We should identify what operating systems platform that we are going to automate and whether the tool that we select are compatible with the platform that we are going to automate. This consists browsers, operating systems, database systems, etc.
- Manual test cases – The manual test cases are the blue print documentation that we will be using in our test automation process. We should look at them and the completeness of these test cases before stepping to automate. The test cases should be detailed enough. There should be no missing steps and every step should be clearly written so that a test automation engineer identifies what each step does. Please also keep in mind there should be a good amount of manual test cases there to automate. If we have just 25 to 30 test cases I suggest we should not automate. There should be also an initial identification process to identify end to end scenarios to automate.
- Senior management support – Senior management and project management should have an idea of test automation. They should identify its somewhat similar to development process. A good understanding should be given and also hands on training for the senior managers to know the nature and importance of a test automation project.
- Application Under Test support – Before starting test automation we should check the support that AUT should have for test automation. One should undertake a proof of concept on test automatability of application. The UI components should be easily identified by the test automation tool that we are going use. There should be at least 90% compatibility with the AUT. The test automation engineer should go through the some of core application screens or pages and check on the UI components. Its not just UI we should also look at access restrictions and availability of services if we are going to automate web services.
- Availability of test automation budget – The test automation budget plays a crucial role in a test automation project. This depends on the purchase of licensed development environment and licensed test automation tool. If there is low budgets we have to opt for open source and free test automation tool.
- Availability of support documentation – Support documentation for web services, coding standards, deployment guides, user guides helps any test automation professional to carry their task effectively. If we are going to take client’s existing framework there should be sufficient training documents, coding standards, FAQ’s available.
- Developer support – We should look at whether there is any developer support for the project. Since test automation engineer works with the developed application closely and there will be a need with development and also application support when environments are giving issues.
- Availability of existing test automation tools and frameworks – There will be already test tools and frameworks that will be used by the client’s end or in the organization which can be re-used. There should be an evaluation that should be carried out to check the suitability of such tools or frameworks for your upcoming test automation project.
- Use of current support tools and practices – There will be a need to use current support tools used by the dev engineers or in the organization. An eye should be given to all these support tools like version control, build tools and continuous integration mechanisms before starting the test automation project. We should also look at other agile based tracking tools and also behavior driven development practices which are used.
- Look at the framework – The survival of test automation relies on the effectiveness of test automation frameworks. While looking at test automation tools we should also look at the test automation framework that we are going to implement. We should look at the configurability, extendability, reportability, scalability and viability of the framework.
- Need for external libraries – During the proof of concept we should look at whether there is a need for external third party libraries. If so these should be communicated earlier and necessary approvals should be obtained and pre-planning activities of the test automation project.
- Placing the test automation process – This is the critical item before starting a test automation project. The leadership of test automation team should have the test automation process in place before starting the project. This should know how to start test automation, how review process should be handled, how the scripts delivery should happen, and how the script updating process should go. The process should be defined and documented.
- Availability of support for test automation tool – The test automation tool that we are going to have should have a good support from the organization which it delivers or community support. Its not a smooth sale, there will be obstacles, then we need support and guidance.
- Availability of updates to the test automation tool and test automation framework – There should be a continuity in the test automation tool we use and the framework which we deploy. There libraries the framework we use should have a continuity. The frequent updates should be incorporated to the tool and framework to ensure the continuity of the test automation solution.
These are some of the major test automation checklist items that we should look upon before embarking on a test automation venture in any organization. We should have a 360 degrees evaluation of everything before stepping into this great journey.