Sei sulla pagina 1di 21

SOA TESTING

Agenda
Introduction on Software Architecture Overview on Service Oriented Architecture SOA Test Methodology Automation Testing Tools

What is Software Architecture?


Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. Architecture is an artifact for early analysis to make sure that the design approach will yield an acceptable system.

Why Software Architecture Important? (1/2)


Systems should be designed with consideration for the user, the system (the IT infrastructure), and the business goals.

User

Business

System

Why Software Architecture Important? (2/2)


Failing to consider key scenarios, failing to design for common problems, or failing to appreciate the long term consequences of key decisions can put our application at risk.

The risks exposed by poor architecture include software that is unstable, is unable to support existing or future business requirements, or is difficult to deploy or manage in a production environment. The architecture should: Expose the structure of the system but hide the implementation details. Realize all of the use cases and scenarios. Try to address the requirements of various stakeholders. Handle both functional and quality requirements.

Architectural Styles
Architecture Style Client / Server Description
Segregates the system into two applications, where the client makes requests to the server. In many cases, the server is a database with application logic represented as stored procedures. Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain Segregates functionality into separate segments, but with each segment being a tier located on a physically separate computer. Refers to applications that expose and consume functionality as a service using contracts and messages.

Component Based Architecture Domain Driven Design N - Tier / 3 - Tier Service Oriented Architecture (SOA)

mPower Architecture Overview

What is SOA?
SOA is the architectural style that supports loosely coupled services to enable business flexibility in an interoperable, technology-agnostic manner
SOA can mean different things to different people depending on the person's role and context.
From an architecture perspective, SOA is an architectural style that supports service orientation. At an implementation level, SOA is fulfilled using a standards based infrastructure, programming model and technologies such as Web Services. From a business perspective, SOA defines a set of business services composed. From an operational perspective, SOA includes a set of agreements between service consumers and providers that specify the quality of service, as well as reporting on the key business and IT metrics

Basic SOA Components


SOA consists of the following three components: Service provider Service consumer Service registry
Service Registry
Discover Service Consumer Invoke Request Response Publish Service Provider

SOA Testing Challenges


Some of the SOA Testing challenges are: Services do not have a user interface Data driven business logic within services External services to the organization The quality of 'service' software will be vital to promote reuse and facilitate business agility Predicting the future usage of services to assist with performance, load, stress, scalability As SOA evolves, security testing will have a higher priority and profile within your organizations test strategy

SOA Test Approach (1/4)


The Test team designing the Project Test approach and plans must have a macro understanding of how all of the components work independently and collectively.

SOA testing can be Categorized into the following phases: Governance Testing Service-component-level testing Service-level testing Integration-level testing Process/Orchestration-level testing System-level testing Security Testing

SOA Test Approach (2/4)


This Fig represents a model of SOA Components and how they are interrelated
Component Testing Service Testing

Front End Application


Workflow/Orchestration

Governance

Security

Services

Work Flow Testing System Testing Integration Testing

Data Service/ Messaging Data Abstraction

Link Testing Legacy Database

Rep

Database
Internet based Services

New Services

SOA Test Approach (3/4)


Governance Testing: SOA Governance refers to the Standards and Policies that govern the design, build and implementation of a SOA solution and the Policies that must be enforced during runtime. Testing that SOA Governance is enforced will take place throughout the project life cycle

Service Component Level Testing: This is normally performed by the developers to test that the code not only successfully compiles, but the basic functionality of the components and functions within a service are working as specified.
Service Level Testing: Functional, performance and security regression suites to be executed against the service. This testing must ensure that the service is not only meeting the requirements of the current project, but more importantly, is still meeting the business and operational requirements of the other processes that are using that service

SOA Test Approach (4/4)


Integration Level Testing: This testing verifies whether information sharing between the services are working as specified. This test phase includes testing external services. Process/Orchestration Testing: This testing ensures that services are operating collectively as specified. This phase of testing would cover business logic, sequencing, exception handling and process decomposition. System Level Testing: This test phase will test that the SOA technical solution has delivered the defined business requirements and has met the defined business acceptance criteria.

Security Testing: SOA requires security testing to be designed and planned right from the start of the project.SOA combined with Government and Regulatory compliance, will require Security testing activities to be incorporated into the entire project life cycle.

Test Phases and Test Types


Test Phases
Component Level Testing Phase
Service Level Testing Phase Integration and Orchestration Testing Phase System / Process (UAT Test Phase)

Functional Yes

Performance Yes

Interoperability Yes

Compliance Yes

Security Yes

Yes Yes

Yes -

Yes

Yes -

Yes Yes

Yes

Yes

Yes

Yes

Yes

Regression Test Strategy


Regression testing provides a consistent, repeatable validation of each change to services. Each time a defect is fixed, the potential exists to inadvertently introduce new errors, problems, and defects Regression testing is the selective retesting of a service or SOA system that has been modified to ensure that no previously working services fail as a result of the repairs

Test Tools and Usage (1/2)


SOA Test Approach demands an appropriate tool strategy
Open Source Products
SOAPUI is a desktop application for inspecting, invoking and developing Web services over HTTP. The tool also supports functional, load and compliance testing. Functional and Load Testing can be performed manually using the soapUI and automatically using the soapUI command-line features

Commercial Products
SOAPUI pro is the commercial enterprise version. soapUI Pro adds a number of productivity enhancements to the soapUI core which are designed to ease many recurring tasks when working with soapUI

Test Tools and Usage (2/2)


Mercury provides a suite of products - Quick Test, Service Test, Load Runner and Mercury Quality Centre. These together provide a solution for SOA functional test and regression test automation as well as performance testing. Borland Silk Performer SOA edition : This is an automated Web Services test tool that supports functional and performance testing of services and interoperability functional and performance testing between services.

Best Practices
Design your SOA project test approach alongside the definition of business requirements and high-level technical design. Ensure the test teams are involved right from the start. Static test techniques such as formal inspections are a must to ensure the business requirements and technical designs are defined to standards and are complete. SOA is driven by business and not technology. The test team will have to ensure the key business stakeholders and users are actively involved throughout the project life cycle Majority of testing activities need to be performed during the business requirements analysis, design and service build phases. Automation Test Tools are must.

Questions

Thank You

Potrebbero piacerti anche