Web-Services Testing Made Simple


Software Testing

Service virtualization

In software engineering, service virtualization is a method to emulate the behavior of specific components in heterogeneous component-based applications such as API-driven applications, cloud-based applications and service-oriented architectures. It is used to provide software development and QA/testing teams access to dependent system components that are needed to exercise an application under test (AUT), but are unavailable or difficult-to-access for development and testing purposes. With the behavior of the dependent components “virtualized”, testing and development can proceed without accessing the actual live components. Service virtualization is recognized by vendors, industry analysts, and industry publications as being different than mocking.[1][2]


A method stub[citation needed] or simply stub[1] in software development is a piece of code used to stand in for some other programming functionality. A stub may simulate the behavior of existing code (such as a procedure on a remote machine, such methods are often called mocks) or be a temporary substitute for yet-to-be-developed code.

Mock Objects
In object-oriented programming, mock objects are simulated objects that mimic the behavior of real objects in controlled ways. A programmer typically creates a mock object to test the behavior of some other object, in much the same way that a car designer uses a crash test dummy to simulate the dynamic behavior of a human in vehicle impacts.


Time Travel Testing or Time Machine Testing

Going backward or forward in time to test application.



Data Deduplication

In computing, data deduplication is a specialized data compression technique for eliminating duplicate copies of repeating data.


Data Deidentification

When we want to move data from Prod to any other Dev/Test Environments, we need to remove customer sensitive information. This data deduplication process helps to identify and scamble such sensitive data.


Data Scrambling
In telecommunications, a scrambler is a device that transposes or inverts signals or otherwise encodes a message at the sender’s side to make the message unintelligible at a receiver not equipped with an appropriately set descrambling device.

In Software
We encrypt data before sending it.
The receiver needs to have appropriate keys to decrypt data




Testing with Rational Integration Tester


API Performance Testing / Functional Testing

After so many years…..Still JMeter rocks.
We can use JMeter to perform both functional and performance testing.

Developer can use JUnit/TestNG for unit testing.
Tester can use JMeter to do functional/performance testing.
Also JMeter/Selenium is good combination to do load testing for UI.

Better to integrate JMeter tests with Maven and tie them with continuous integration.
Next question, how to prepare test data?
Use JUnit/TestNG to run JMeter tests. From Java code we can do setup and teardown steps.
Also we can commit JMeter scripts, hence easy to maintain versioning.
Also we need to commit test data.

We can tie performance numbers with TestNG/JUnit and we can fail test cases.

Generate reports/dashboards from JMeter through command line.
Publish them periodically with date prefix.

At this time there is no ready to use tutorial or framework for this.
But somebody good at Java/TestNG/JUnit/JMeter/Selenium can help.

Few Links for your reference:

Commercial Versions:
Load Runner
JMeter performance monitoring remote JVM: https://jmeter-plugins.org/wiki/PerfMon/
Remote testing or scaling JMeter: http://jmeter.apache.org/usermanual/remote-test.html


Homepage EN

Better to stay away from open source from commercial products. They are giving base version free and we need to buy commercial support or version for more features.

#jmeter, #performance, #performance-testing


Click to access Trusted_Tester_Fact_Sheet_0.pdf




The World’s Most Popular Windows Screen Reader
JAWS, Job Access With Speech, is the world’s most popular screen reader, developed for computer users whose vision loss prevents them from seeing screen content or navigating with a mouse. JAWS provides speech and Braille output for the most popular computer applications on your PC.


Relative Cost of a Bug fix

Please read these two articles

The Incredible Rate of Diminishing Returns of Fixing Software Bugs

How to build better software using lean manufacturing, continuous quality improvement practices

Barry Boehm


Operating ball turret in the Collings B-24J at Bomber Camp

Now apply these principals in Software Architecture.
Think of the gunner.

Wow…amazing feeling and hats off to these architects.


Software Architecture – Durability

B17 battle damage this plane flew home in this condition to it’s base the 92nd Bomb Group Podington

Open in youtube and read comments on this video.

Many software applications crash within few hours of first usage in real time production.

Software Architects should learn a lot from this flight architects.

Hats off to them.
God Bless America.

Ditching of a B-24 Airplane into the James River

I appreciate their courage to prove the facts.

I liked following comments:
Ron Lutman
The aircraft would have sank, but the engineers stuffed ping pong balls into the wings to keep it afloat. Merrill and Richman, in their 1936 transatlantic crossing flying a modified Vultee V1A, Richman loaded the wings and fuselage with 41,000 ping pong balls encase they had to ditch. Now known as the PING PONG FLIGHT.

Appreciating their planning and execution.
See the test site selection…

Software Test Strategy

1. Understand Business Requirements
2. Prepare Test Strategy Document
3. Prepare Test Planning Document
4. Write Test Cases (Calculate total permutations / combinations)
5. Optimize Test Cases / Test Data
6. Identify Environments
7. Execute testing
8. Automate repetitive testing in different environments for different release cycles
9. Identify repetitive defects and perform postmartam. Device plan to prevent future defects
a) Improving domain knowledge (Developers / QA)
b) Recheck all above steps and improve the quality of tests
10. Close Testing Project
People come to Software field for different reasons…irrespective of it…
1. Love your job
2. Improve your skills
3. Contribute your best and enjoy the job

Difference Between Test Plan and Test Strategy

Difference between Test Plan and Test Strategy


Test Plan

Test Plan

Test Strategy Document

How to troubleshoot software?

We see issues in software everyday.
This process helps to identify the issue/defect quickly and systematically, instead of wasting time on wrong things.

2014-08-06 10_49_35-trouble_shooting


Assume that “Environment A” is Troubled environment, “Environment B” is functioning as expected.
0. Check latest code changes and do code review, if code is small

1. env A…point to Env B Database…
If it works,…db problem in Env A
if it fails, ….issue is in Env A application side

2. Copy Env B binaries to Env A, point to env A database
If it works, code problem in Env A
else issue in Env A Database

3. compare A, B Schema, Data, …etc

4. Compare A, B properties

5. point local system to env A DB and check…
if you can simulate the issue, debug the code

6. Isolate problem with Unit Test and solve


Contact me if you need any help.