i have found that dogfooding and acceptance tests (tracking regressions), combined with focused source commits are the most practical.
while unit tests laser in on specific problems, they are often unnecessary and with frequent commits and sensible commit messages, the causes of problems are always trackable and nearly always obvious.
git bisect helps in situations where the commit count is high (in large teams).
I mostly agree with you. I've found unit tests shine in refactors simply because you are often refactoring for performance and/or bug extraction so the overall functionality of a given unit of code is largely identical to the previous version.
However, outside of refactoring, I've never found them to be cost effective time wise compared to other automated testing options.
App developers tend to not write unit tests, it requires some extra setup in the beginning, but if you will be working on the app for some time, they are invaluable. Just like with any other serious engineering effort.
Does runnable.com has a full Android environment setup? I wrote unit test and functional/ui tests for my android app, but im too lazy configuring my jenkins setup.
8 comments
[ 3.1 ms ] story [ 31.3 ms ] threadwhile unit tests laser in on specific problems, they are often unnecessary and with frequent commits and sensible commit messages, the causes of problems are always trackable and nearly always obvious.
git bisect helps in situations where the commit count is high (in large teams).
However, outside of refactoring, I've never found them to be cost effective time wise compared to other automated testing options.
Integration tests for complicated scenarios.
Extensive dogfooding for the UI.
Some of the tests can be generic across all the apps and may not be written by each and every tech company. We intend to automate those.