8. Manual testing
● Ad hoc
● Exploratory testing
● Usability testing
● Role playing
9. Automated testing
● TDD (Test Driven Development)
● BDD (Behaviour Driven Development)
● ATDD (Acceptance Test Driven Development)
● Common test patterns
● Tools are language dependent
10. Common problems
● Test are hard to write
● Test are flaky
● High maintenance
● “Not enough time”, “Nobody cares” and
other sob stories
● Many platforms are not easily testable
● Too many tests.
Quick survey
* Who has done testing
* Manual vs auto
* Waterfall vs Agile
* Feedback to developers, product owners, customers, other testers
* On a side note...what is quality?
** no bugs
** maintainability
** documentation
** tolerance
* Many ways
* Many tools
* There are common types of testing that you will see/hear in the industry
* Old way you test at the end with usually limited time. Testing the whole system at once
* With agile you test as you go. Test small parts at any one time.
Implication of testing early vs testing late
* Automation won’t find bugs
* Good for regression i.e. make sure old issues don’t come back
Types of tests
* Functional
* Integration
* Performance
* System
* In the end it’s all about cost, reputation, risk, competitive edge. Money
Test methodologies are split into two basic groups: manual and automated testing
* Adhoc - risky but has it’s place. but shouldn’t be used as often as you might imagine
* Exploratory - have a plan. Does not mean scripted. If it’s scripted then it should be automated.
* Targeted
* Think about what you are testing. From user’s point. From business’s point.
* Not just finding bugs but finding missing/required functionality/features
* In short….Validation
Role playing
* different types of users
* internal users - Ops, support
* All development methodologies
* Use testing to help design code
* Prevention of bugs
* Good for verification
TDD
* Bottom up approach
* Checking the code does what you want it to do
* Fast
* Mocked. Not end to end
BDD
* Top down approach
* Involve stakeholders and PO in defining requirements
* Requirements drive tests
* Given-when-then
* Currently in vogue
ATDD
* Team comes up with acceptance criteria
* Convert to test which drives development
Test pattern
* Data driven
* Property driven
* Verifying state
* Verifying behaviour
* Page Object Model
Testing frameworks are created and become popular
JUnit - 2000
Selenium - 2004
TestNG - 2004
Appium, Calabash, Robolectric, Robotium, Testdroid
Mockito, JMock
Mocha, Jasmin
* each of these have their own solutions depending on the context
* can be their own presentation so we won’t go into the details but happy to answer questions
* Start small
* Start observing and think how would you test things
Why do they get cats and i get a paper bag?
Roles
* Software dev in test, Software engineer in test
* Not just writing tests but developing tools.
Cloud testing
* test infrastructure in the cloud
* scaling testing capacity
Social testing
* Free testing
* Test lots of environments. More suited for apps.
* e.g. Firefox, Chrome, Windows
Results analysis
* When a fail is not a fail.
* Flaky tests
ISO 29119
mind maps
user behavior patterns
don’t get hung up about metrics etc at the start. these are things to consider further down the line.
Value? Risk? Priority?