What do you like best?
* Being able to write automated tests in the same language as the development language. This is valuable because developers can write their own automated tests with the same tools and and skills they use everyday.
* Integration with the Unit test targets. They are executed along unit tests by simply pressing CMD+U. Their results are presented inside Xcode without need for much extra configuration or special setups.
* the Framework is clear and easy to understand
What do you dislike?
* Requires the setup of accessibility in order to be used.
* Isn't very resilient to network conditions, or other asynchronous cases.
* It can slow down total time of execution of tests while waiting for timeouts for asynchronous conditions.
* Failing tests doesn't necessarily mean the code is broken, but that some required condition was not meet: network, backend down, etc. However, there is no way to discern from these two scenarios.
Recommendations to others considering the product
KIF was definitively a great tool to implement automated tests on every iOS project, big or small.
However, the latest version of Xcode now includes a framework that accomplishes this same purpose. Considering this important change in the landscape, I would prefer not to depend on a third party component when Xcode now has this capability.
What business problems are you solving with the product? What benefits have you realized?
* Mainly used as a mechanism of defense against regressions.
* this frees up time for testers and QA to focus on more difficult and valuable tasks.
* and overall, increases the quality of the product and our confidence on changes.