End to end testing (E2E testing)
Even thought my articles are on agile and process and program side, want to touch basis on the testing at 100 feet level
We will take an example (in agile way) for “user stories” and there connection with components/modules (Non agile speak: we are mapping requirements with functions, they are going to produce)
US-01 US-02 US-03 US-04 US-05 US-06
A Yes No Yes No Yes No –>Company “X”
B No Yes Yes No Yes Yes –>Company “Y”
C Yes Yes No No Yes Yes –>Company “Y”
We are going to assume user approaching to buy a phone/SIM in the mobile operator office.
A –> User Interface/GUI (simple C/VB application) with no connectivity
B –> Middle Layer/tier which connects the GUI to data base and external web world
C –>Data base and web interaction API’s
A can be realized by US-01, US-03, US-05
B can be realized by US-02, US0-3, US-05, US-06
C can be realized by US-01, US-02, US-05, US-06
Just to add more complexity we going to assume A, B, C are being developed by different firms (even if in the same firm also there will be literally ZERO communication with they sitting in same cubicle area or thousand miles/km’s apart)
Now that we have an example to discuss we will discuss each of testing areas
The developer who does development will be interested in unit testing his/her user story. Developer to start with is interested in testing the unit/component (Usually it is good idea to use testing team to do unit testing sign-off also, some geographies say unit testing is not tester’s area)
As “A” developer will be interested in unit testing 1, 3, 5 . At this junction he/she is not interested in the “integrating them”.
Here we are worrying whether integration works well. In order to make function /requirement realizable “US-01”, there is need of integrating together ( A and B). Likewise US-02 needs B, C. and so on
Here responsibility of testing to see the piece by piece is working well.
System Integration testing (S.I.T)
This is to test inter-working of A, B,C . Without worrying about the (user stories level), if order placement is not working report the bug to development
This is going to similar to “System Testing”
The following can be tested:
• Order entry (customer data in we interface) at Airtel office
• Order placement (after operator hits the send data to Airtel head office)
• Phone/SIM activation (after pre-defined time frame)
If the above activities are meeting and all the activities can be performed it is first step in SIT.
User Acceptance testing
This is more related to whether the system meets functional and non functional requirements. Functional is as per specifications, need to enter user name (in 36 characters), no functional throughput and time to place order and so on
Operation readiness test is more of dealing with after the system is launched, and also it sees the various, interfaces are correctly set.
• Let us say we need install web server/phone line in order.
• Road to be constructed/helipad to be launched so that people can travel for commission/re-pairs
• Also if our example is about manufacturing a CAR (India’s low cost $2500 USD car, for common man). We need to check after the order is placed for car in Washington/Delhi, how the car will be delivered from its California/India location.
•Also it verifies if the order entry for at dealer shop is according to standards.
E2E test (End to End test)
This covers entire/complete testing planning, execution, coverage. This will be done by independent body. At least the development manager and test manager should report to different organizations.
In this testing it goes from unit testing, Integration, functional, regression, IT, SIT, UAT, ORT
Just keep it simple, I have not covered many other testing methods and cycles. Please feel free to suggest if anything is wrong, or if you would like to see anything in this area.
[Article written, based on request from Sr Person Nov 9th 2008, in Hyderbad @home ]