Test Automation
-
Upload
nikos-batsios -
Category
Business
-
view
230 -
download
0
Transcript of Test Automation
welcome to
Agile Learning Labs Test Automation
As shared @ AXA MedLA Agile meet up 21st April, 2016
Nikos Batsios
Agile Coach
personal thoughts: https://escapelocaloptimum.wordpress.com
Meetup goal ★ Understand the importance of test automation ★ Create awareness of barriers and concerns related to test automation ★ Share good practices and lessons learnt ★ Discuss and learn from the different shared perspectives ★ Think of improvement plan
Why we need test automation?
★ manual testing take tool long Agility requires to deliver potential shippable increments within a short iteration. As our applications are getting bigger the time required to test everything is getting bigger ★ manual regression testing requires a lot of time ★ dealing with bugs! Lack of automation for unit level testing consumes time in researching and
reproducing simple bugs., which means less time to deal with critical system bugs. ★ manual testing for complex cases where there is need to set up a series of data decreases speed
and increase demotivation.. setting up data is boring experience!
★ manual processes are error prone Repetitive processes when done manually is also a boring task! And manual regression or unit testing could become repetitive in iterative sw development resilient in ★ skipping steps that might introduce simple bugs ★ cutting corners especially when there is pressure to deliver and there is no time to test! think
about when testing starts within your sprints?
★ automation frees people to do their best work and frees teams to deliver high quality sw frequently
★ more time on exploratory testing ★ more energy to think of extreme scenarios and negative testing ★ more time to design better code and tests
★ automated regression tests provide a safety net ★ a sufficient code coverage by automated regression tests gives a great feeling of confidence that
the legacy code won’t be broken ★ avoid seeing the testers as the safety net
★ automated tests give feedback early and often Failed automated tests are indications that we might have added regression defects when making a code change. this quick feedback could help programmers make the changes required quite soon while their memory is still fresh
★ tests provide documentation automated tests that describes the wanted behaviour act a living documentation of how our application works
★ tests automation can increase ROI ★ gives the team the opportunity to perform exploratory testing and push the limits of the
functionality/application -> improved quality ★ time to correct bugs before code merging reduce technical debt and develop a robust code ★ more time to programmers and testers to concentrate in getting the right product out to market
in a timely manner
Barriers and Concerns
★ spare time test automation people are allowed to work on test automation on their own time or as a side project when the test schedule allows (no focus, no high priority, no required time investment)
★ lack of clear goals clear goals for test automation should be defined! which are the benefits we are looking for? save time? ★ increase ROI? ★ improve quality? ★ keep testers motivated?
Note that different parties and stakeholders typically have different hopes. These need to be stated to avoid miscommunication, uncertainty, misalignment that will result probably to demotivate and disengage people!
★ lack of experience when done by inexperienced programmers/testers you might end up with a difficult to maintain test automation suites
★ programmers attitude why we need to automate? QA team secures the quality of our code. change this mindset! educate your people first for the test automation benefits!
Agile test automation strategy
Automation test categories
Test automation pyramid
★ continuous integration, builds and deployed any repetitive or slow/too long task involved in sw development is a candidate for automation ★ automated builds informs automatically when a build is ready to be tested. should be short less
than 10! ★ automated deployment speed up the process ★ a fast automated continuous integration and build process gives the greatest ROI of any
automation effort. it should be were to start!
★ unit and components tests automating at unit level is of highest priority and attention. good test driven development skills could help you create robust and well designed unit tests
★ testing behind the GUI or the GUI itself automating tests on business logic or even the GUI itself (selection of a few regression tests)
★ load tests need some tool or framework to perform load testing automatically
what can we automate?
★ usability testing in these case real users need to test our application and we need to see reactions on usability
★ exploratory testing used to learn more about the product we are implementing and use that information to improve our future development
what we should not automate
★ make sure you have a dedicated automation engineer in your team
★ an automation tool is important but it is not the solution of everything
★ select the automation tool that is familiar to your people ★ know the application under test ★ automating without good design may result in a lot of
activity and little value ★ you cannot automate everything ★ automation is sw development so follow sw development
practices
best practices to start test automation
★ management support for test automation. set realistic objectives and providing sufficient and appropriate resources to achieve a planned return on investment
★ good technical architecture for the automated test-ware
two key patterns for successful test automation
Selecting the right tools
★ does the tool support the operating system/browser or device in which your application/features runs?
★ does the tool support the technologies used in your environment?
★ does the tool support the connection with different data sources?
★ how is the reporting mechanism of the automation tool?
★ can the tool be integrated with test case and big management tools?
★ how is the official tech support of the tool?
★ Unit: a framework to write repeatable tests
★ Mockito: a mocking framework for unit tests in java
★ Jacoco: code coverage library for java
★ Arquillian: integration testing
★ Selenium: functional testing/UI
★ PhantomJS: functional testing/UI
Good Practices and Lessons Learnt
★ regularly review of automated tests to ensure that they are meet their purpose. the point is to get quick feedback from automation! make everything needed to ensure that!?
★ tool training early can save a lot of wasted time later
★ make your benefits visible to management! visibility of the results of test automation is essential
★ a combination of tools may provide an overall solution that not single tool can give! don’t be afraid to mix and match, including open source, commercial your own developed tools
★ good prioritisation of tests to be automated is needed
★ don’t try to fix old problems (yet). start better practices with your new development
★ set a few objectives and enhance them while you are getting more experience
References
✤ Agile Testing
✤ Experiences of Test Automation: Case Studies of Software Test Automation
✤ Pragmatic Project Automation
✤ 10 Best Practices and Strategies for Test Automation