Essentials of Testing One tool, one purpose
Bettina Polasek, Head of Quality Management Marco Cicolini, Head of Quality Engineering AdNovum Informatik AG ID 158
2
Agenda
> Scope > Motivation > Toolbox > Tools for a Purpose > Demo > Experiences > Outlook > Conclusion
2
3
Quality Management
3
4
Scope
4
People Process
Tools
Organization
Quality Management
5
Motivation
Issues - Many tools to chose from - Various advantages and disadvantages - Overlapping functionality Challenges - Finding the right tools for specific purposes - Selecting a small, but complete set of tools - Keeping the toolbox up-to-date
6
Selection Criteria
Technology - Java - .NET - JavaFX - …
Layers - Web - Business - Persistence
Methodology - Static - Functional - Load, performance - Usability - Maintainability - …
7
Possible Toolbox
7
8
Our Toolbox
8
9
Technology Management
Strategic - e.g. JEE applications Tactical - e.g. JUnit Operative - e.g. JUnit version 4.7
9
10
Which Tool for which Project?
10
11
How much Testing Is Enough?
11
12
Demo – Application Overview
13
Demo – Test Overview
13
14
Demo Recap – GUI Tests
> General – Test whole application – Test use cases
> Selenium – Real browser tests – Ajax support
> HtmlUnit – Faster than Selenium – Request-based Test
> General – Slow – Fragile
> Selenium – Browser fragility
> HtmlUnit – Browser implementation
15
Demo Recap – Database Tests
> General – Stable (no UI involved) – Faster than UI tests
> Embedded container – Test target container
> JPA – Fast – Test precisely what you want
> General – No UI tests possible – Database required
> Embedded container – Container specific – Slow
> JPA – No EJB interaction – Low-level API
16
Demo Recap – Business Tests
> General – Very fast – Test only business logic
> JUnit – One test, one purpose
> Mockito – Mock “away” complex components – Test behavior
> General – No integration tests
> JUnit – DB and UI not testable – Test only functionality
> Mockito – Mock setup may get complex – Mocking hides missing
implementation
17
Experiences – General
> Show your customer what you do. > Design simple and fast executable tests. > Decide on what and how you test (quadrants). > Have the right test distribution (testing pyramid). > Treat your test code as first class code!
17
18
Experiences – Tools
> One tool, one purpose > Tools have to make testing simpler > Set up guidelines & documentation > Form experts for tools > Train developers in using tools
18
19
Outlook
19
20
Conclusion
> A testing toolbox is a powerful tool to focus use of resources. – Maintenance and updates at a regular basis
> Support an adequate tool for every purpose. – Focus on the test goal
> Treat your test code as first class code. – Readability, maintainability
20
21
Resources
> Books • xUnit Test Patterns (EAN: 9780131495050) • Pragmatic Unit Testing (EAN: 9780974514017) • Growing Object-Oriented Software, Guided By Tests (EAN: 9780321503626) • Test-Driven Development (EAN: 9780321146533) • Agile Testing (EAN: 9780321534460)
> Tools • JUnit (www.junit.org) • Selenium (www.seleniumhq.org) • Mockito (www.mockito.org) • HtmlUnit (htmlunit.sourceforge.net) • GlassFish (glassfish.dev.java.net)
21
22
Questions?
?
Visit the AdNovum booth!
22
Bettina Polasek [email protected]
Marco Cicolini [email protected]
AdNovum Informatik AG www.adnovum.ch
24
Additional Slides
24
25
Quality Manager Role
25 25
26
Demo Recap – GUI Tests
General
Test whole application Slow
Test use cases Fragile
Selenium HtmlUnit
Real browser tests Browser fragility Faster than Selenium Browser implementation
Ajax support Request-based tests
27
Demo Recap – Database Tests
Tool Advantages Disadvantages
General Stable (no UI involved) No UI test possible
Faster than UI tests Database required
Embedded container Test in target container Container-specific
Slow
JPA Fast No EJB interaction
Test precisely what you want Low-level API
28
Demo Recap – Business Tests
General Very fast No integration tests
Test only business logic
JUnit One test, one purpose DB and UI not testable
Test only functionality
Mockito Mock “away” complex components
Mock setup may get complex
Test behavior Mocking hides missing implementation
29
Experiences – Methodologies
> Introduce people responsible for testing > Writing tests is more than just validating features > TDD / BDD > Review your tests
29