SOA Testing Solved Example

Let us consider an e-commerce website with the following functionalities and sub-functions:

 

1. Phase 1: This is the testing strategy phase, here the app is divided into Services and business functions. Let some of the services be as follows,

  • Sign up/Register a new user i.e. add the details of a new user into the database.
  • Sign in/Login a user on the portal i.e. fetch the details from the database and if the correct credentials are, login is successful. 
  • Check the “Forget Password” button functionality i.e. when a registered user presses this button, send a code to the registered email. 

2. Phase 2: Now comes the test planning phase, where distinguished test cases are written as per the level involved. Some possible test cases according to various levels are discussed ahead.

  • End to End level: Each and every use is monitored here and test cases regarding every case are created and the service is tested for the same.
    1. Place one order from a registered user i.e. placed an order by logging in on the portal.
    2. Place one order from a newly registered user i.e. placed an order by registering first time on the portal.
    3. Place one order where multiple items with quantity as “N” are present in the cart.
    4. Completely cancel one placed order i.e. order in active state i.e. delete an order
    5. Cancel or remove a few items from a placed order i.e. edit an order
  • Integration level: In this level test cases are written for database and user interface integration. A few of these kinds are given ahead.
    • Build a new test case, where an order with a single item has been placed along with verifying whether it is reflected in the database or not. (check the integration on both sides i.e. UI and Database)
    • Build a new test case, where an order with a single item has been placed along with verifying if the reflected amount in the database and the calculated total amount are the same. (check the integration on both sides i.e. UI and Database)
    • Build a new test case, where an order with a single item has been placed along with verifying if the availability of the product is accurate or not. (check the integration on both sides i.e. UI and Database)
    • Ensure that the order status displayed on the user interface is the same as that of the database order status i.e. double check order status (both UI and the Database)
  • Service level – Each and every service is tested for all possible test cases.

3. Phase 3: This phase is the “Execution” phase. Here all the final outcomes are released as per the operation performed. Test execution follows a bottom-up strategy, which means that service-level testing comes first, followed by integration-level testing, and finally end-to-end testing. The table attached ahead helps in understanding better.

Test Case Request Predicted Result

“Sign up/Register”

Name= GFG user123

Email = #####

Password = $$$$$$

Confirm Password = $$$$$$

(Check if all details match use cases for min password length, security password condition, etc.)

  • if, Yes grant registration completed.
  • if, No give warnings.
   <message>Registration Successful/Failed</message>

Sign in/Login”

Email = #####, Password = ########

(Details sent by dummy user)

(Get the Sign in done, check if details match in the database)

  • if, Yes grant login access.
  • if, No give warnings.
  <message>Login Successful/Failed</message>

“Forget Password”

Registered Email = geek@example.com

(Details sent by dummy user after click)

(check if it exists on the database)

  • if, Yes send OTP on the Email.
  • if, No give warnings.
<message>Successful/Try Again</message>

“Edit Order”

Order Id = ABC123

(Details sent by dummy user)

(Check if an Order is placed for the logged-in user display the an edit button)

  • if, Yes let the user edit.
  • if, No give warnings.
  <message>Order Edit Successful/Failed</message>

“Delete Order”

Order Id = GFG001

(Details sent by dummy user)

(Check if Order is placed for the logged-in user and display the delete button)

  • if, Yes let the user deletes.
  • if, No give warnings.
<message>Order Deletion Successful/Failed</message>


Software Testing – SOA Testing

SOA Testing is the process of evaluating a certain software where one can check web processes for functionality and make sure different components can communicate effectively throughout. Before diving deep into the testing model directly we need to understand SOA Architecture.

Similar Reads

What is SOA?

Service Oriented Architecture (SOA) is an architectural strategy that allows programs to utilize network services. It defines a way to make software components reusable and interoperable via service interfaces. Through a network call made over the internet, services are offered to create applications in this architecture. The service integrations in apps are accelerated and simplified using widely used communication standards. The best feature, all these microservices are completely independent and can run without any particular set of supporting application programs....

What is Service?

A self-sufficient, independent type of software that completes a specified duty is known as a service. It comprises three subcomponents:...

What is SOA testing?

SOA uses a large number of technologies. Applications developed using SOA comprises a collection of loosely connected services. This testing emphasizes the following 3 system layers:...

SOA Testing Strategy

SOA testing strategies are divided into two categories:...

SOA Testing Methods

Below are the different SOA Testing Methods:...

Challenges faced in SOA Testing

Increased workload: Since these are independent services, there are many interfaces i.e. one service has one interface and because of this, the workload increases exponentially. Increased cost of hardware: This testing is itself a complete plan, as initially all services are tested independently and then in collaboration with all complementary services which automatically increases the cost of hardware, and memory and ends up taking a lot of time.  Regression testing is a must: The software is vast in nature and comprises a number of different functions and these functions frequently update themselves as per the needs. Thus, regression testing is a must here to ensure that not only do these new updates break existing functionality but also collaborate as smoothly as possible. Debugging is difficult: The multilayered SOA architecture makes it complex and debugging becomes difficult, as the process requires examining an individual layer multiple times and ensuring its integration with all the fellow services is working as expected or not. Performance testing is unexpected: Planning a performance test is completely based on the hit-and-trial method. Here no one can predict how much load will be placed on the service when it is used along with the other service’s interfaces.  Different skill sets are required: A variety of different technologies are used together and then finally SOA is formulated. People with a variety of skill sets are required for testing an SOA application, which automatically increases the price of planning and testing any project. Security testing is challenging: Security testing comes with its challenges because it requires a deep understanding of all the services individually, which are going to be clubbed together. As the applications expand, it becomes challenging to handle security....

Benefits of SOA testing

Platform Independent: SOA combines numerous services from diverse sources, such as different platforms and codes, to create a sophisticated unified system out of separate services. Highly Scalable: Every organization is unique in terms of the services or goods it provides, as are their ever-changing demands. SOA enables services to run on various servers inside the same environment, enhancing flexibility. If the volume of data grows, it is simple to manage by launching more instances of a service to meet the demands of your organization. Easy on Maintenance: SOA is self-contained, and testing, updating, upgrading, and maintaining applications is simple. As an important feature, the user will encounter no problems or complications while reacting to company demands and technological improvements. Functionality Reusability: In SOA services are reused, which reduces costs and saves time. It lowers the costs of deployment, development, maintenance, and integration. Many websites, for example, utilize Google Maps to identify addresses. Instead of developing a new location service, they just utilize the current one. Highly Reliable: Service-Oriented Architecture creates more reliable apps since shorter codes are easier to debug than huge programs and may be fixed in a specific component without impacting other features....

SOA Testing Tools

Below are 4 SOA testing tools:...

SOA Testing Solved Example

Let us consider an e-commerce website with the following functionalities and sub-functions:...