Ok, sorry for delays although it appears nobody was around here for a while.
Here is my test plan (For some reasons I'm not going to use SoapUI or JMeter to test the web service. We will get to them later:
Here is my test plan (For some reasons I'm not going to use SoapUI or JMeter to test the web service. We will get to them later:
Test Plan
(Webservicex.net currency converter)
Functionality, Reliability, Sanity,
Robustness, API
Document
Change History
Version
Number
|
Date
|
Contributor
|
Description
|
V1.0
|
1/9/2013
|
First version created
|
|
|
|
|
|
|
|
|
|
1.
Product purpose
This product shall be able to give
conversation rate of different currencies. By using this product, given any two
country currency code, product shall return them current conversation rate. The
returned values must be correct, accurate and reliable.
N/A
3.
Technical Requirements
·
Stable internet
connection and all standard ports should be open.
·
For Selenium
IDE Test version: FireFox browser (version 16+), Selenium IDE extension,
Javascript enable.
·
For Python
Test version, Python 2.x compiler with PySimpleSOAP and httplib2-0.7.7
libraries installed.
·
For Selenium
Web Driver Test version, Python 2.x compiler with Selenium web driver,
downloadable from http://pypi.python.org/pypi/selenium
4.
System test approach
Three different approaches were selected to
perform the test:
1.
Python
language will be used to test web service. The python test script does make use
of pysimplesoap and httplib2 packages and doesn't need any additional
automation/testing tools. Therefore, values are sent and received directly
using web service and no third party (i.e. web page) would be involved. This
method is useful in to test and simulate test conditions on executed
applications in the user's PC (e.g. downloaded games).
2.
Selenium IDE,
is chosen to test a php file in a different web server which uses the Test plan
subject. To make Selenium IDE more dynamic and efficient, Javascript is being
used for making loops and decisions.
3.
Selenium Web
Driver, gives us the flexibility of Python and Power of automation and
simulation of Selenium. This test is designed to use Selenium Web Driver on the
webservicex.net itself.
5.
Entry and Exit Criteria
Entry criteria:
- Codes and web services
must be ready and functional.
- The webservicex.net
example page must work without problem.
Exit criteria:
- All High priority test
cases must pass, including:
- Requesting conversion
rate between USD and BRIC nations currencies.
- Requesting conversion
rate between USD and XYZ (invalid currency)
- Two of three Medium
priority test cases pass, including:
- Requesting conversion
rate between one of BRIC nations currencies with the another one from the
same group.
- Requesting conversion
rate between any currency with itself.
- Requesting conversion
rate between nothing (Null) and any currency.
6.
Features to be tested
Test Cases &
Prioritization
Test Case
|
Priority
|
Excel Sheet
|
Python Script
|
Selenium IDE
|
Selenium Web driver
|
1-USD2BRIC
|
High
|
YES
|
YES
|
YES
|
YES
|
Reason of priority: I assume this
application is being used by XYZ, which is a USA corporation using USD as
primary currency. So it is very important to make sure all players (users) in
targeted countries can buy XYZ products with an accurate price and without any
problems caused by system failures.
|
|||||
2-BRIC2BRIC
|
Medium
|
YES
|
YES
|
YES
|
YES
|
Reason of priority: Same as above, functionality and accuracy
of currency conversion rates are important, but since this test is being run
for XYZ and USD is the primary currency, this test case will have a little
less priority than 1-USD2BRIC
|
|||||
3-USD2XYZ
|
High
|
YES
|
YES
|
YES
|
YES
|
Reason of priority: It is very important to prevent unexpected
failures and hack activity attempts. It could be possible that a hacker inject
a fake currency in the page or application and tries to get huge advantage
over it. Other than that, sometimes system sends wrong strings because of an
undiscovered defect, or it could happen during data transfer process from
client computers to servers, especially in old internet connections that are
sensitive to electromagnetic noises.
|
|||||
4-Null-Test
|
Medium
|
YES
|
YES
|
YES
|
YES
|
Reason of priority: This is not as important as 3-USD2XYZ but it
is necessary being assured that empty values wouldn't cause failures. That
may happen specially when the connection suddenly drops or a connection
"glitch" happens.
|
|||||
5-Currency 2Itself-Check
|
Medium
|
YES
|
YES
|
YES
|
YES
|
Reason of priority: Replicated input value problem happens
many time by various reasons. It could be a bug, communication, hack attempt
or even manual entry mistakes. However, the important thing is to not only
make sure this situation is predicted in our site, but also we need to be
confident that the Currency Converter service is returning the same value for
all currencies. Currently (1/9/2013 3:10 PM PST) this test case is in failed
status because it returns 0 for USD-USD but the return value for other
currencies is 1.
|
|||||
6-ZWD-Test-Case
|
Low
|
YES
|
YES
|
YES
|
YES
|
Reason of priority: In this moment (1/9/2013 3:11 PM PST), any
request of conversion rate from/to ZWD currency returns 0, this is not
expected because it is not possible and can cause problems. The only reason
this test case's priority is set on Low, is because ZWD is not being
noticeably used. But it is recommended to check all other minor currencies
and fix this defect as soon as possible.
|
Major test
conditions
Test
Condition
|
Test
Case
|
Successful conversation from USD to
INR & vice versa
|
1-USD2BRIC
|
Successful conversation from USD to
RUB & vice versa
|
1-USD2BRIC
|
Successful conversation from USD to
BRL & vice versa
|
1-USD2BRIC
|
Successful conversation from USD to
CNY & vice versa
|
1-USD2BRIC
|
Successful conversation from INR to
RUB & vice versa
|
2-BRIC2BRIC
|
Successful conversation from INR to
BRL & vice versa
|
2-BRIC2BRIC
|
Successful conversation from INR to
CNY & vice versa
|
2-BRIC2BRIC
|
Successful conversation from RUB to
BRL & vice versa
|
2-BRIC2BRIC
|
Successful conversation from RUB to
CNY & vice versa
|
2-BRIC2BRIC
|
Successful conversation from BRL to
CNY & vice versa
|
2-BRIC2BRIC
|
Unsuccessful conversion from XYZ to
USD & vice versa
|
3-USD2XYZ
|
Unsuccessful conversation from empty
currency values
|
4-Null-Test
|
Constant conversation test result
from same currency (e.g. USD to USD)
|
5-Currency2Itself-Check
|
Unsuccessful conversion from ZWD to
any other currency
|
6-ZWD-Test-Case
|
7.
Features not to be tested
·
Web service’s basic
functionality necessary to pass and get data from service.
·
Correctness of the conversion
rates.
·
Requesting conversion rates for
countries which are not required (except ZWD as an extra test case)
8.
Performance to be tested
NA
9.
Performance not to be tested
NA
10.
Installation to be tested
Web service (http://www.webservicex.net/CurrencyConvertor.asmx?op=ConversionRate) should
be tested by Python script using SOAP client. Python and relevant libraries and
Selenium IDE and Selenium Web Driver should be installed on test machine,
11.
Installation not to be tested
NA