Test Like A Badger

15
TEST LIKE A BADGER by: Mike Badger [email protected] 801-231-4692

Transcript of Test Like A Badger

TEST LIKE A BADGER

by: Mike [email protected]

801-231-4692

MANUAL TESTING SUCKS

Sucks time and resources

Sucks development productivity

Sucks product confidence out of the customers and stakeholders

Manual Testing

UI

System

Integration

Unit

Perform

anc

eFunctional

AUTOMATED TESTING ROCKS(WHEN DONE RIGHT)

UI

System

Integration

Unit

Majority of test maintenance is done in tandem with development

Feedback is reliable , continuous and same or next day.

Regression is built in at every level of testing and is reliably reported.

Ability to test early and often means bugs are found and fixed as they are created

ManualExplorato

ry

WHERE DO WE GET STARTED?

Visibility Accountability

Then Automation

Michael Badger

FROM ASSUMPTIONS TO MEASURABLES

Visibility

Where are we?Where do we want to be?How do we get there?How will we measure our progress?

Establish:

• How to create and execute test plans

• How to report, track bugs & suggestions

• Prioritization process

• Measure turning manual tests into automated tests

• How to make progress visible to stakeholders

Visibility

Accountability 1 – BUY IN FROM

STAKEHOLDERS Are the quality and reliability of our software being sold as a feature?

Development and QA must have a symbiotic relationship Create natural consequences for not breaking the build(you break it, you fix it)

Visually report quality metrics on centrally located monitor/TV(X Days Since Last Incident, Kanban, Scrum, Burndown…)

Celebrate successes in quality across company

Visibility

Accountability

Final ReleaseRequirementsUser Stories

1 or 2 week cyclesWork with Dev, PM create test

plans

2 - BUILD QUALITY INTOTHE PROCESS

GETTING BEST ROIFROM AUTOMATION

It is important to build a testing solution that is:

Worth the investment Scalable with the growing product.

Has an automated DNA Not trading headaches(brittle software -> brittle tests)

Number of Tests

Cost

of

Exe

cuti

on

Unit

Integration

SystemUI

Manual

Visibility Accountability

Automation

1 - AUTOMATE BUILD PROCESS

Create lightweight, portable, self-sufficient containers.

Orchestrates which docker containers to build to setup necessary environment

Set up to respond to SVN / Github commits.Calls Ansible to initiate build

Visibility Accountability

Automation

SEPARATE CONTINUOUS BUILDS

STAGED CONTINUOUS BUILDS

INTEGRATION & UITells us what is broken

UNIT TEST RESULTSTells us where it is broken

2- REVIEW UNIT TESTS

• Important to distinguish unit tests from integration tests.

• TDD mindset essential. Code written as result of tests. Test not written as result of code.

Java Backend• JUnit, TestNG, Spock,

Groovy…• Makito, EasyMock,

JMock…

AngularJS Frontend• Grunt, Jasmine, Mocha,

Qunit…

Visibility Accountability

Automation

3 - INTEGRATION TESTING

Run as part of build process separate from Unit Tests

Java Backend• JBehave for BDD• JUnit, TestNG, Spock, Groovy

for TDD• Selenium, PhantomJS,

Cucumber for browser testing.

• “Real Test” frameworks like Arquillian

AngularJS Frontend• Karma, CasperJS…

Visibility Accountability

Automation

Visibility Accountability Automation 4- ACCEPTANCE TESTING

Manual

ExternalStakeholders

Customer Partners Regulatory

InternalStakeholders

Sales Support Training

Can I sell it?

Can I support

it?

Can I train the

customer on it?

Is it intuitive

?

Is it easy to

use?

Can I integrate with it?

Does it meet

industry standards?

Is it legal?

FunctionalDoes the software work?

• End-to-end tests not able to be easily covered with integration tests.• Based on user stories.• To automate or not to automate?

Depends

PerformanceDoes the software work well?

• Test speed (how fast)• Test load (how many)• Test stability (how long)

5-SYSTEM TESTING (NEXT LEVEL)

Visibility Accountability Automation