Did you know that you can navigate the posts by swiping left and right?
Automated with iOS apps - **UI Automation**
Look for security problems by feeding the application with malformed input.
Users interacting with the application,taking note of anything that the users got wrong.
Unit tests are small pieces of code that test the behavior of other code. They set up the preconditions,run the code under test, and make assertions about the final state.
Warn you about regression bugs. Provide a safety net where you want to edit the source without any change in behavior.
Measuring code coverage partially addresses the problems with test counting by mesuring the account of application code that is being executed when the tests are run. They may have value, but they still aren't the most value of your time.Eg, switch statements and or cases.
It's all very well saying that you should write the best before you write the code,but how do you write that test?
It I had to use code that should solved this problem, how would i want to use it?
Red -> Something wrong -> Write code to make it work -> Green -> Eliminate Redundancy (Refactor,don't hurry to do that).
Red -> Green -> Refactor -> Red(Iterator)
vs
A dozen features that have all been started but are all incomplete and unusable.
Turn bad smelled codes into codes without smell.
Ya ain't gonna need it.
Identify what the application needs to do.
Design aimming at interfaces.
Write basic test cases(interfaces),modify it to meet all demands(implements),move test code to real code, refactoring, test the combined one.
Fake objects instead of more complicated objects.
Macro magics
STTest\GHUnit\OCMock
Hudson,Jenkins,Xcode Server
init
property
interfaces
unit -> combine
Web Request -> State
Error Definition -> Error
Exception Handling -> Exception
Interface Test
Status
URL
Fake Responses
viewDidLoad
viewDidAppear
viewDidDisappear,etc
runtime apis
*Design to interfaces,not implementations.*
<Makes it easy to replace dependencies on complex systems with fack or mock objects>.
*Tell,Don't Ask.*
Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
- Alex Sharp
*High cohesion and low coupling*
*Encapsulation*
*Don't be cleverer than necessary*
*Prefer a wide,shallow inheritance hierachy*
*Expressing ranges of input and output*
*BDD*