Test Like A Badger
-
Upload
michael-badger -
Category
Technology
-
view
61 -
download
0
Transcript of Test Like A Badger
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
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
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