Chapter 10. Testing and Release

Testing a feature, a component, or an app is as important as implementing it.

The development team writes code to cover various scenarios, and the quality assurance team asserts that the code works as intended. Frequently, there is overlap between the quality assurance team and the development team—for example, in startups and smaller companies, development and quality assurance tasks are often performed by the same person or people.

In this chapter, we study the fundamentals of test cases, various test case types, testing frameworks to support them, test automation, and continuous integration.

It can be assumed that the team follows some development methodology, which can even be cowboy coding, and you indeed need to write test cases to formally test the app.

Test Types

A test’s type refers to the categorical purpose of what it intends to do. For example, if the purpose is to test a method, a class, or a component, it may be a unit test. Similarly, if the purpose is to test the app from installation or deployment to all the functions, it may be classified as an acceptance or end-to-end test.

Instead of presenting all of the dozen or more different test types, we focus our discussion on the following broad categories that are critical to any user-facing app in general and an iOS app in particular:

Unit testing

Testing an isolated method in a simulated environment to ensure validity

Functional testing

Testing a method in a real-world scenario ...

Get High Performance iOS Apps now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.