Monday, April 7, 2014

web services testing

What is a web service?

Web service is used to communicate or exchange data between multiple application and platforms. 

 What is the use of web service?

Exposing the existing function on to network:
A Web service is a unit of managed code that can be remotely invoked using HTTP, that is, it can be activated using HTTP requests. So, Web Services allows you to expose the functionality of your existing code over the network. Once it is exposed on the network, other application can use the functionality of your program.

Connecting Different Applications i.e. Interoperability:
Web Services allows different applications to talk to each other and share data and services among themselves. Other applications can also use the services of the web services. For example VB or .NET application can talk to java web services and vice versa. So, Web services are used to make the application platform and technology independent.

Standardized Protocol:
Web Services uses standardized industry standard protocol for the communication. All the four layers (Service Transport, XML Messaging, Service Description and Service Discovery layers) use the well defined protocol in the Web Services protocol stack. This standardization of protocol stack gives the business many advantages like wide range of choices, reduction in the cost due to competition and increase in the quality. 

Low Cost of communication:
Web Services uses SOAP over HTTP protocol for the communication, so you can use your existing low cost internet for implementing Web Services. This solution is much less costly compared to proprietary solutions like EDI/B2B. Beside SOAP over HTTP, Web Services can also be implemented on other reliable transport mechanisms like FTP etc.

What is WSDL? (Source: W3Schools)

WSDL stands for Web Services Description Language.  WSDL is a language for describing web services and how to access them. WSDL is written in XML.

What is UDDI?

UDDI is a platform-independent framework for describing services, discovering businesses, and integrating business services by using the Internet.
  • UDDI stands for Universal Description, Discovery and Integration
  • UDDI is a directory for storing information about web services
  • UDDI is a directory of web service interfaces described by WSDL
  • UDDI communicates via SOAP
  • UDDI is built into the Microsoft .NET platform

What is SOAP?

SOAP stands for Simple Object Access Protocol. SOAP is a protocol for accessing web services. SOAP is based on XML.

Why SOAP?

It is important for application development to allow Internet communication between programs.
Today's applications communicate using Remote Procedure Calls (RPC) between objects like DCOM and CORBA, but HTTP was not designed for this. RPC represents a compatibility and security problem; firewalls and proxy servers will normally block this kind of traffic.
A better way to communicate between applications is over HTTP, because HTTP is supported by all Internet browsers and servers. SOAP was created to accomplish this.
SOAP provides a way to communicate between applications running on different operating systems, with different technologies and programming languages.

What is synchronous web service?

-          It gets response immediately.

What is asynchronous web service?

-Response will be sent when the service is available.

What is end point in web services?

End point is IP address of the servers where web services are running.


 



What is entery and exist criteria in test plan?

Entry Criteria

A set of decision-making guidelines used to determining whether a system under test is ready to move into, or enter, a particular phase of testing. Entry criteria tend to become more rigorous as the test phases progress.

Exit Criteria

A set of decision-making guidelines used to determining whether a system under test is ready to exit a particular phase of testing. When exit criteria are met, either the system under test moves on to the next test phase or the test project is considered complete. Exit criteria tend to become more rigorous as the test phases progress.

Monday, August 27, 2012

V Model to W Model | W Model in SDLC Simplified

We already discuss that V-model is the basis of structured testing. However there are few problem with V Model. V Model Represents one-to-one relationship between the documents on the left hand side and the test activities on the right. This is not always correct. System testing not only depends on Function requirements but also depends on technical design, architecture also. Couple of testing activities are not explained in V model. This is a major exception and the V-Model does not support the broader view of testing as a continuously major activity throughout the Software development lifecycle.
Paul Herzlich introduced the W-Model. In W Model, those testing activities are covered which are skipped in V Model.
The ‘W’ model illustrates that the Testing starts from day one of the of the project initiation.
If you see the below picture, 1st “V” shows all the phases of SDLC and 2nd “V” validates the each phase. In 1st “V”, every activity is shadowed by a test activity. The purpose of the test activity specifically is to determine whether the objectives of that activity have been met and the deliverable meets its requirements. W-Model presents a standard development lifecycle with every development stage mirrored by a test activity. On the left hand side, typically, the deliverables of a development activity (for example, write requirements) is accompanied by a test activity test the requirements and so on.
W Model final
Fig 1: W Model
W Model 2
Fig 2: Each phase is verified/validated. Dotted arrow shows that every phase in brown is validated/tested through every phase in sky blue.
Now, in the above figure,
  • Point 1 refers to - Build Test Plan & Test Strategy.
  • Point 2 refers to - Scenario Identification.
  • Point 3, 4 refers to – Test case preparation from Specification document and design documents
  • Point 5 refers to – review of test cases and update as per the review comments.
So if you see, the above 5 points covers static testing.
  • Point 6 refers to – Various testing methodologies (i.e. Unit/integration testing, path testing, equivalence partition, boundary value, specification based testing, security testing, usability testing, performance testing).
  • After this, there are regression test cycles and then User acceptance testing.
Conclusion - V model only shows dynamic test cycles, but W models gives a broader view of testing. the connection between the various test stages and the basis for the test is clear with W Model (which is not clear in V model).
You can find more comparison of W Model with other SDLC models Here.

Fault, Error & Failure

Fault : It is a condition that causes the software to fail to perform its required function.
Error : Refers to difference between Actual Output and Expected output.
Failure : It is the inability of a system or component to perform required function according to its specification.
IEEE Definitions
  • Failure: External behavior is incorrect
  • Fault: Discrepancy in code that causes a failure.
  • Error: Human mistake that caused fault
Note:
  • Error is terminology of Developer.
  • Bug is terminology of Tester

Functional Testing Vs Non-Functional Testing

Functional Testing: Testing the application against business requirements. Functional testing is done using the functional specifications provided by the client or by using the design specifications like use cases provided by the design team.


Functional Testing covers:
  • Unit Testing
  • Smoke testing / Sanity testing
  • Integration Testing (Top Down,Bottom up Testing)
  • Interface & Usability Testing
  • System Testing
  • Regression Testing
  • Pre User Acceptance Testing(Alpha & Beta)
  • User Acceptance Testing
  • White Box & Black Box Testing
  • Globalization & LocalizationTesting
Non-Functional Testing: Testing the application against client's and performance requirement. Non-Functioning testing is done based on the requirements and test scenarios defined by the client.
Non-Functional Testing covers:
  • Load and Performance Testing
  • Ergonomics Testing
  • Stress & Volume Testing
  • Compatibility & Migration Testing
  • Data Conversion Testing
  • Security / Penetration Testing
  • Operational Readiness Testing
  • Installation Testing
  • Security Testing (ApplicationSecurity, Network Security, System Security)

Software Testing

Software Testing is the process of evaluating the features of software and finding the differences between existing and expected requirements. In today’s scenario following are some of the major problems:


  1. Some of the new development methodologies are developed through trial. Generally, these methods typically don't produce specifications for the tester to test against. So, testers have to find bugs by hit and trial.
  2. In today’s tough competition in the market, software development has been driven by entrepreneurial pressures, tight schedule, and constantly evolving product definition. For these reasons, sometimes, it is difficult to convince management that testing is necessary or worthwhile.
  3. There are only few trained testers using formal methods and metrics. Most of the software testers out there are just passing through testing on their way to some other career. So, overall the testing effort is not giving the high-quality results that may help demonstrate how the testing effort improves the quality of the product.
  4. In the past few years, the quality of standards of software development is improved drastically. It has a profound effect on the quality of the final product. It has also removed the need for extensive low-level testing in these areas, so the demand for white box tester is decreased.
Also, please remember that “A test effort that just finds bugs is not enough.” As a software tester, you must be able to demonstrate that your effort is adding value to the quality of the software. Measure that value in order to demonstrate the value added.

Management would also take interest in knowing that which parts of the software development life cycle is contributing in achieving the product quality. So, add the value as you can.