all you need know about testing
out of 37
Post on 27-Aug-2014
Embed Size (px)
DESCRIPTIONA guide of good practices on testing and how write good tests.
- Something You Always Wanted to Know About Testing* *But Were Afraid to Ask Jorge Juan Barroso Carmona Android Expert @ipper83 firstname.lastname@example.org
- What is Testing?
- Checking is conrmation, verication, and validation. By machines. Testing is exploration, discovery, investigation, and learning. By humans. versus
- Why Testing? Martin Fowler
- ! more Functionality more Quickly Bad code aect to your Costumer
- What are Unit Tests?
- Black-Box before White-Box
- creating tests in an environment where they have some Control over their own Destiny. Be careful, sometimes Context is Everything.
- more Information in a test than in code. Paranoid?
- Dont create your own Problems. Turn most unit tests into Assertions. Dont test Implementation Details.
- Si tu Unit test tarda ms de 1 segundo, cmprate un pony y no me vendas que eso es un Unit test @Jordi9
- Mock or Stub?
- Stubs are canned answers to calls. Mocks are objects pre-programmed with expectations.
- Avoid creating methods only for stubs.
- A Big dependency of Robolectric and PowerMock is a sign of bad code.
- Mock dilema: your test only checks that your mocks works.
- What are Integration Tests?
- Dont test all your Layers at the same time Or at least Be aware you are doing it
- Duplicated tests. Write O(n!) tests. where n its the number of collaborators
- Dont test the System or External Libraries. Sometimes is a Good practice to test all your layers.
- Why you should use Continuous Integration
- The best test is the one that is Never executed. Increase your Time to develop. Everyone has the latest executable and can see whats happening.
- automated crap is still crap. James O Coplien
- How to decide the Test Coverage?
- Low level coverage says that the code is badly tested, but you cannot claim the opposite with just high level coverage
- 100% coverage is to test all possible code paths. Is TDD here? Tests are code, we need to maintain them.
- Risk-based Testing: prioritize the test over the risk of failure, the importance and the impact of failure.
- I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of condence Kent Beck In most businesses, the only tests that have business value are those that are derived from business requirements. James O Coplien
- Silver bullets do not exist.
- The really important thing is to write Faster and better code
- And please, expose your Dependencies and write Readable code
- your Code is more important that your tests.
- If you nd your testers splitting up functions to support the testing process, youre destroying your system architecture and code comprehension along with it. Test at a coarser level of granularity. James O Coplien
- + James Bach and michael bolton. checking vs testing (2009 - 2013) + Workows of Refactoring. martin fowler. (oop 2014) + Why Most Unit Testing is Waste. James O Coplien (2013) + 467 tests, 0 failures, 0 condence. Katrina Owen (Railsberry 2013) + Mocks Aren't Stubs. martin fowler (2007) + Integrated Tests Are A Scam. J.B. Rainsberger (2013) + Exploratory and Risk Based Testing. Bach, J. Kaner, C. (2004) + Decomposing into modules. D.L. Parnas (1972) + The Art of Unit Testing. Roy Osherove + Test Driven Development: By Example. Kent Beck + UnitTest. Martin fowler 2014 ! References
- Q&A?@ipper83 email@example.com
View more >