Test Automation

23
welcome to Agile Learning Labs Test Automation As shared @ AXA MedLA Agile meet up 21st April, 2016

Transcript of Test Automation

Page 1: Test Automation

welcome to

Agile Learning Labs Test Automation

As shared @ AXA MedLA Agile meet up 21st April, 2016

Page 2: Test Automation

Nikos Batsios

Agile Coach

personal thoughts: https://escapelocaloptimum.wordpress.com

Page 3: Test Automation

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

Page 4: Test Automation

Why we need test automation?

Page 5: 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

Page 6: Test Automation

★ 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

Page 7: Test Automation

Barriers and Concerns

Page 8: Test Automation

★ 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!

Page 9: Test Automation

Agile test automation strategy

Page 10: Test Automation

Automation test categories

Page 11: Test Automation

Test automation pyramid

Page 12: Test Automation

★ 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?

Page 13: Test Automation

★ 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

Page 14: Test Automation

★ 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

Page 15: 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

Page 16: Test Automation

Selecting the right tools

Page 17: Test Automation

★ 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?

Page 18: Test Automation

★ 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

Page 19: Test Automation
Page 20: Test Automation

Good Practices and Lessons Learnt

Page 21: Test Automation

★ 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

Page 22: Test Automation

References