Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
BDD and Test Automation in Evalutionary Product Suite
1. BDD and Test Automation in Evolutionary
Product Suite
Lasantha Ranaweera
Software Architect
eBuilder Technology Center
Colombo
Colombo Java Meetup 2015
9. Key Properties
Business
Software as a Service.
Integration is a Key Part.
Core Platform
Legacy => JEE Based, Started Over 12 Years Ago.
CCO => Based on Microservices.
Product
Legacy => Running on JBoss AS.
11. Long Story in Short
No Automated Unit Testing from Inception.
Automation Varied on Product Level.
Existing Automation Tools Old/Not Reliable.
Several Automation Attempts Ended with Failure.
Long QA Cycles / More Slip Through.
Story Continues ....
21. Is TDD Dead ?
http://martinfowler.com/articles/is-tdd-dead/
22. Just Say No to More End-to-End Tests
Unit E2E
Fast
Reliable
Isolates Failures
Simulates a Real User
http://googletesting.blogspot.co.uk/2015/04/
just-say-no-to-more-end-to-end-tests.html
31. Time Line
Started 2013 Q2.
Started for One Critical Product with 0% Automation.
Extensive Support Given by Top Management.
Identify Potential as a Common Framework.
Roll-out Carried with Help of Product QA Teams.
Currently Using 5 eBuilder Products.
33. In the Start
Considerations
End User.
Acceptable Time Limit.
Many Types of Tests.
Decisions
End User => Testers in Scrum Teams.
Semi Technical Language Suitable for Testers.
Stories Independent from Each Other.
Developing a Framework for All Domains in eBuilder.
Support Atlassian Bamboo CI Server.
39. Separation of Work
Behavior Suite
JBehave + XML + XPath and Property Files.
One Central Configuration File.
Many Story Suites
1. Smoke Suite
2. Regression Suite
40. Separation of Work
Behavior Suite
JBehave + XML + XPath and Property Files.
One Central Configuration File.
Many Story Suites
1. Smoke Suite
2. Regression Suite
Picard
Picard has over 99% Java Code.
Spring based XML configurations.
Apache Maven to Run Stories.
41. Bit More Details..
High Level Story
Base 1 Base 2 Base 3 Base 4
Mapping Layer
Web Browser XML FTP Web Service
50. Browser Testing
Facts
Supports Struts, JQuery, ExtJS and Bootstrap.
FluentSelenium with XPath are used.
Non-ambiguous Step Naming was a Challenge.
Page Names Given as Configurations.
51. Browser Testing
Facts
Supports Struts, JQuery, ExtJS and Bootstrap.
FluentSelenium with XPath are used.
Non-ambiguous Step Naming was a Challenge.
Page Names Given as Configurations.
Cross Browser
52. Integration Testing
XML, Excel and EDI File Handling.
Support for both FTP and SFTP Protocols.
Web Service Testing
1. Traditional
2. RESTFul
53. Bamboo Server Integration
Production Environment for Test Suite.
Customized Reporting Module.
Extended Reporting Module Provided by Enthusiast.
Both Parallel and Sequential Test Execution with Streams.
58. Ease of Use
JBehave + Maven Provide Good Tooling.
Easy Start with Base Stories.
Readability of Step Mappings
1. Good Naming Convention
2. Logical Grouping
64. Using Amazon EC2 For Test Automation
Scalable CI server with Elastic Bamboo.
Heterogeneous Environment Testing.
65. Microservices Testing
E2E Test Automation Not Easy with Microservices.
Automating Unit Tests Easier.
REST Heavily Used in Inter Service Communication.
Planning to Support Consumer-Driven Test Framework.
Mobile UI Testing Another Potential Avenue.
68. Key Take Aways
Different Skills + BDD => Better Quality.
No Survival Without Test Automation.
Unit Testing Number 1 Priority.
69. Key Take Aways
Different Skills + BDD => Better Quality.
No Survival Without Test Automation.
Unit Testing Number 1 Priority.
There are Situations E2E Testing Better Suited.
70. Key Take Aways
Different Skills + BDD => Better Quality.
No Survival Without Test Automation.
Unit Testing Number 1 Priority.
There are Situations E2E Testing Better Suited.
Good Results Can Achieve Even with E2E Testing.
71. Key Take Aways
Different Skills + BDD => Better Quality.
No Survival Without Test Automation.
Unit Testing Number 1 Priority.
There are Situations E2E Testing Better Suited.
Good Results Can Achieve Even with E2E Testing.