atagg 2015 test automation and effective continuous integration
TRANSCRIPT
Topic: Test Automation and effective Continuous Integration
Presenter:Meghanandini K
Tata Consultancy Services
Confidential | Copyright © Agile Testing Alliance Global Gathering
Brought To You By
&
Testing in Agile Testing in Agile -- IntroductionIntroductionKey aspects QA in Agile• Building quality in• Early automation• Continuously Integrated and testable software• Fast feedbackThese will in turn help in ensuring a:• Faster delivery into production• Optimize value for business
User InterfaceUser Interface
ServiceServiceUnit TestUnit Test
UIUI
Confidential | Copyright © Agile Testing Alliance Global Gathering
Main challenges• Short time frames to complete testing for a story• Multiple deployments within a sprint• System Integration • Interface dependencies• Testing Non functional requirements
UIUIServiceService
Unit TestUnit Test
Building a Test SuiteBuilding a Test Suite
GUI Tests
Service level tests
Exploratory TestingFaster
Fe
Broader
Unit Tests• Faster feedback• Easier refactoringTools: xUnit tests are used to test the application code. Eg: Junit tests are used to test the Java code.
Service level tests• Faster feedback compared to tests at UI level• More stable compared to UI level• Application functionality can be tested rather than just the
Confidential | Copyright © Agile Testing Alliance Global Gathering
Service level tests
Unit Tests/Component Tests
eedback
Scope
• Application functionality can be tested rather than just the component
Tools: FitNesse, Cucumber, Concordion, LISAUI level tests• Reduced number of tests• End user interfaceTools: QTP, Selenium, Ranorex, Test Complete etc..
Tests at service levelTests at service level
Wiki Page/Feature file Fixture/Step defination Application Code
Confidential | Copyright © Agile Testing Alliance Global Gathering
Collaboration with development team • Application code details • Feasibility analysis• Creation of fixtures • Continued support for service level automation• CI set up and integration of the test cases with CI toolsCollaborate with the team• To ensure feature files are in line with user stories
Service/UI Service/UI tests tests –– Striking a balanceStriking a balance• A few points considered while segregating
GUI TestsAt least a few test cases covering End – 2 – End Functionality with Screen transitionsScreen pop-up /Child window related casesComplex scenarios with multiple validations that need to be carried out on the UI
Service level TestsRepeat scenarios with different inputs
Confidential | Copyright © Agile Testing Alliance Global Gathering
• A few challenges for segregation
Repeat scenarios with different inputsBusiness Scenarios & validationsFault Injection & Negative Testing
App Server
CIT Tool
Code change/Defect Fix
Source Control
(CVS/GIT)
Publishes build results Notifies Stake holders if build
Build (Ant,
Maven)Code Commit Deploy the BuildPull the source and
create the build
Committing code frequently
Continuous feedback mechanisms
The reduction of
The integration testing can be automated using CIT tool & Service level and UI level automation scripts.
The integration testing can be automated using CIT tool & Service level and UI level automation scripts.1 With every check-in of the code, the automated scripts get triggered and the CIT cases get executed.
With every check-in of the code, the automated scripts get triggered and the CIT cases get executed.2 The integration of the features within a sprint gets tested at this stage.
The integration of the features within a sprint gets tested at this stage.3In-Sprint:
Unit/Service /UI Level Testing integrated with Build
Tools/Techniques: Jenkins
Continuous IntegrationContinuous Integration
Confidential | Copyright © Agile Testing Alliance Global Gathering
Test Scripts Automated Test cases are created and
uploaded in HP ALM Automatically triggered test scripts are
executed in the targeted machines
Selenium Test Management
Tool
Notifies Stake holders if build breaks
Unit Test Cases
Automation
Framework
The reduction of repetitive processes, freeing people to do more value work
Auto Defect NotificationAuto Defect Notification
Frequency: Once after
every build deployment/Daily
Cucumber/FitNesse
Best Practices and BenefitsBest Practices and BenefitsBest Practices:• Early QA involvement . Whole team including QA part of the Backlog Refinement sessions• Along with the acceptance criteria for a user story, high level test scenarios/examples should also defined and discussed as a part of backlog refinement session. This helps in elaborating the user story better.• As a part of Sprint planning , analysis should done for a user story wrt what tests need to run at service level and UI level • Effort estimation should include automation effort• Automation tests should be created parallel to application development
Confidential | Copyright © Agile Testing Alliance Global Gathering
• Automation tests should be created parallel to application development• Regular sync up calls to discuss automation• Continuous IntegrationBenefits:• Faster test cycle completion within the sprints
Thank You!
Confidential | Copyright © Agile Testing Alliance Global Gathering