Tuesday, July 17, 2018

Top 10 common API testing interview questions (for Beginner and Intermediate level)

API testing has been considered an indispensable part of the software testing in recent years. It was reported by many testers that the REST API testing interview questions and SOAP API questions could be a huge challenge for them while applying for a test professional position.
Below are the collection of top 10 popular interview questions and answers which will be useful for your upcoming interviews.

1. What and why is API testing?
This is normally the very first and the most basic questions that an interviewer will provide before any other SOAP API questions or REST API testing interview questions.
API testing is a kind of software testing which focuses on deciding whether the built APIs meet expectations about the functionality, performance, security, and reliability for an application.
API testing provides a lot of benefits, particularly in four main aspects:
-       Test for core functionality:
-       Time effective
-       Language-independent
-       Easy integration with GUI

2. Which principles need to be considered when creating an API test design?
-       Setup: Create objects, start services, and initialize the data
-       Execution: Steps to apply API or the scenario, including logging
-       Verification: Oracles to evaluate the result of the execution
-       Reporting: Pass, failed or blocked
-       Clean up: Pre-test state

3. How many types of API testing?
There is no exact number for this API testing interview question, but you can list out the nine main categories below as it almost covers the API testing:
-       Validation Testing
-       Functional Testing
-       UI testing
-       Load testing
-       Runtime/ Error Detection
-       Security testing
-       Penetration testing
-       Fuzz testing
-       Interoperability and WS Compliance testing

4. Name some of the API testing tools
The more API testing is popular, the more tools are available in the market. You can refer to this list for the reference. Generally, there are some common tools that can be your safe answer for the API testing interview question: Postman, Katalon Studio, SoapUI, Tricentis Tosca.

5. Describe the difference between API testing and UI testing
API testing enables the communication between the two separate software systems, where one system implementing an API contains functions or subroutines that may be executed by another software system.
UI  testing is mainly about testing the graphical interface, for example: how users interact with application, testing application elements like fonts, images, layouts etc. In other words, UI testing focuses more on look and feel of an application.

6. What are some common API errors?
In the list of API interview questions, this seems to be more advanced question. Here are some suggested answers:
-       Missing module errors
-       Documentation errors
-       Parameter validation errors
-       Some other standard error expectations:  if the result is not so predicted then the occurrence of errors can be seen and for the same warnings are specified in the form of a message. There can be one or more warnings within an individual module.

7. What is an API documentation:
API documentation refers to complete and accurate technical instructions on how to effectively use and integrate with an API. It includes all the information needed to work with the API, and helps project members understand all the API testing questions including details on functions, classes, return types, arguments, and also examples and tutorials.

8. How to write a good API documentation?
You can refer to some templates which are considered simple to use: Swagger, Miredot, Slate, FlatDoc, RestDoc, so on.
When writing an API document, it is also essential to consider some of the below items:
-       Source of the content
-       Document plan or sketch
-       Delivery layout
-       Information needed for every function in the document
-       Automatic document creation programs

9. Describe your understanding about RESTful web service?
RESTful web service is one of the two types of website besides SOAP. RESTful web services use the HTTP methods to implement the concept of REST architecture. A RESTful web service usually defines a URI, Uniform Resource Identifier a service, provides resource representation like JSON and a set of HTTP methods.
REST contains some major characteristics:
-       The SERVER has no status (or session data) because REST is stateless. With a well-applied REST API, the server could be restarted between two calls, since all data is transferred to the server
-       Web service uses POST method primarily to perform operations, while REST uses GET for accessing resources.
You can get more detailed questions about REST API testing interview questions  here.

10.  Define the SOAP Web service and when to apply it?
The SOAP (Simple Object Access Protocol) refers to an XML-based protocol. It is specialized for designing and developing web services together with enabling communication between applications developed on different platforms using various programming languages over the Internet. It is both platform and language independent.
SOAP API can be used to create, retrieve, update or delete records, like accounts, leads, and user-defined objects. With more than 20 different calls, people can also use the SOAP API to manage passwords, perform searches, etc. by using the SOAP API in any language that supports web services.

More SOAP interview questions are available here for the deep learning about this area.

I hope the 10 questions above could provide you a overview picture about what will happen at the API section of the interview. Of course, it is just the beginning! Try to learn more and prepare yourself with as many SOAP and REST API interview questions as possible. Last but not least, good luck, and do not forget to suggest me with any interesting piece of information collected from your testing journey!

Monday, June 11, 2018

Top 5 API Testing Tools for REST & SOAP Services

Top 10 API Testing tools
API testing (Application Programming Interface Testing) is a software testing type which focuses on the determination if the developed APIs meet expectations regarding the functionality, reliability, performance, and security of the application.
This article will provide the summary of the top API testing tools cover both open-source and commercial solutions that testing teams can select to suit their needs.

1. SoapUI
SoapUI is a headless functional testing tool dedicated to API testing, allowing users to test REST and SOAP APIs and Web Services easily.
Website: https://www.soapui.org/
Pricing: Free - $659/year

2. Postman
Postman is a good choice for API testing for those who don’t want to deal with coding in an integrated development environment using the same language as the developers.
Website: https://www.getpostman.com/
Pricing: Free - $21/user/month

3. Katalon Studio
Katalon Studio is a free automation test tool provide a common environment to create and execute UI functional, API/Web services and mobile testing.
Website: https://www.katalon.com
Pricing: Free

4. Tricentis Tosca
Tricentis Tosca is a continuous testing platform for Agile and DevOps which supports many array of protocols: HTTP(s) JMS, AMQP, Rabbit MQ, TIBCO EMS, SOAP, REST, IBM MQ,NET TCP.
Website: https://www.tricentis.com/
Pricing: Contact Sales

5. Apigee
Apigee is a cross-cloud API testing tool, allowing users to measure and test API performance, supports and build API using other editors like Swagger.
Website: https://apigee.com/api-management/
Pricing: Free trial - $2,500/month
The rest 5 tools could be found at Top API Testing Tools

There is no one-size-fits-all tool
It hurts, but true!
We believe the list above nominates the best solution available out there if you are planning to adopt API automation testing. However, like most of the solutions in this industry, finding the ideal-one-tool to do it all is almost impossible.
Some may find the features of the commercial players (Postman, Tricentis Tosca,…) are sufficient but the costs of ownership will be the show-stop factor. Open source solutions (Rest-Assured, Karate DSL,…) are affordable but require skilled resources and effort to implement the right frameworks. Tools which seem to be a relative balance between cost and other factors (Katalon Studio, Postman) might have drawbacks to specific project types that need to be considered.

API Testing tools
API testing established its trend in automation testing, and more tools will be developed to serve the growing demands of the software development teams. Finding the perfect tool is still tough, but we have the good news that you have way more choices than before. Carefully considering your requirements, pros and cons of each solution — try not too ambitious at the early stage and trialing the top 5 relevant candidates from the list above. With the POC for these solutions created, you will have a better knowledge of your project’s critical factors and fine-tune your shortlist. This approach gives you a good chance to identify the suitable tool for the current status and information of the next choice when your project is more mature.
I would love to hear your feedback and let me know if you have other tools to record for the others’ reference.
Source: https://testautomationresources.com/testing-tool/api-testing-tools/

Wednesday, December 13, 2017

7 Criteria to Select the Right Automation Testing Tool

Automation testing is forecasted to be among the key trends in software quality and testing in 2018 (Word Quality Report 2017 – 2018). In other to utilize the advantages test automation in software development, organizations need to equip themselves with the appropriate automation testing tool or framework.

Below are the top 7 criteria you must consider when selecting a tool for your organization:

1. Platform

On which platforms would you need the tool to run: Windows, MacOS, Linux, Unix, Web, or Mobile? Depending on your need, you may need a tool to run on multiple platforms such as Selenium or Maveryx, or a tool that supports mainly Windows like Ranorex.

2. AUT Programming Languages

The team may need to consider the programming languages used to write the AUT. If you only need to test Java applications, Abbot and Maveryx could be a good choice. In case you are looking for the tools that can work with many languages used in the AUT, Katalon Studio, TestComplete, and Ranorex is your solution.

3. Scripting Languages

Most of the automation testing tools support various scripting languages so that testers can write test scripts in their preferable languages. However, make sure you check exact scripting languages the tool supports for generating test scripts.

4. Script Maintainability

This criterion is quite essential since in test automation, maintaining test scripts to reflect changes in the requirements of AUTs is quite challenging. This activity is time-consuming when the requirements are updated frequently. Currently, most of the script maintenance is done manually.

5. Required programming skills

It depends on your team’s programming background. Normally, programming knowledge is required to enhance and maintain test scripts. Meanwhile, there are still some testing tools allow testers with limited programming skills to do automation test effectively. Selenium, Ranorex, Katalon, and TestComplete provide the record ad playback features with scripts automatically generated.

6. Automated testing approaches

The existing automation testing tool on the market normally cover one or some of the following testing approaches: Data-driven, Keyword-driven, Linear, Record & Playback, Mode-based, Structured, and Hybrid. It’s your job to investigate which one is your main approach.

      7. Cost:

Financial issue is always an essential consideration in selecting a tool. It may include licensing and support costs. You may not be charged (much) for acquiring some tools, but then it may cost you lots of money for external support. Training and extra effort to solving issues related to the tool should be also considered before determining the tool.

With the above criteria, you now can put things together into a table to assess and select the most appropriate tool for your project. Let's practice by analyzing the Best 10 Automation Testing Tools for 2018.

Tuesday, October 31, 2017

Free automation testing tools for Web applications

This article includes the best 5 free automation testing tools for testers to consider in web applications testing. Automation testing tools play an important role in test automation landscape.  It is critical for organizations to select the most approriate automated testing tool as the tool is significant in speeding up decision making of the teams. The World Quality Report 2017 - 2018 from Capgemini, Sogeti, and Marco Focus has emphasized the significance of intelligent automation and smart analytics to help organizations get over the challenges of automation testing that are highly integrated and continuously changing.
  • Selenium
  • Katalon Studio
  • Watir
  • Robot framework
  • Locust

1. Selenium
Selenium is considered the most well-known open-source test automation framework for Web app testing. Selenium support various system environments such as Mac, Windows, and Linux. It also works well on many browsers like Chrome, Firefox, IE, and Headless browsers. Selenium’s scripting languages include: Java, Groovy, Python, C#, PHP, Ruby, and Perl.

Although Selenium provides the flexibility for testers and help them generate quite advanced test scripts, it requires testers to have very good programming skills and lots of effort in order to build automation frameworks and libraries for different testing needs.

Selenium is also the core framework for many open-source test automation tools like Katalon Studio, Watir, Protractor, and Robot Framework.

2. Katalon Studio
Katalon Studio is a simple and powerful test automation tool for Web, mobile, and API testing, built on top of Selenium and Appium.  Katalon Studio is suitable for different testing skill levels: Users with limited programming skills can easily start their automation testing project by using Object Spy to record test scripts; Users who are programmers or automation testing experts can build their new libraries and maintaining the scripts to save their time and efforts.

This tool is integrated into CI/CD processes and also works well with many common tools in QA process, for ex: JIRA, qTest, GIT, Jenskin, and Slack. Recently, Katalon Studio offers Katalon Analytics that helps users get the complete views of test execution reports with metrics, graphs, and charts via its dashboard.

3. Watir

Watir is an open-source testing tool for web automated testing based on Ruby libraries. It works on various browser testing such as: Firefox, IE, Opera, and Headless browser. Watir also support data-driven testing and has the integration with BDD tools like Cucumber, RSpec, and Test/Unit.

4. Robot framework

Robot framework is an open-source automation framework for different test automation needs. It implements the keyword-driven approach for acceptance testing and acceptance test-driven development. Its capacity of testing can be extended by adding additional test libraries with Java and Python.

Test engineers can utilize Robot Framework for both web testing and mobile testing. This framework is easy to learn for those who get acquainted with keyword-driven testing.

 5. Locust

Locust is a web-based test automation tool for website load testing. It lets the team know how many users the website can handle at a time. Locust uses “swarm” to attack target website and is defined by users in real-time. The tool supports Python language in writing test scenarios, scalable and distributable to multiple machines. Locust is lightweight due to the design, each Locust swarm run inside its own process.