Ensuring testability in platform services

Registered by Nicholas Skaggs

New platform services are being written for the phablet devices. The lack of focus on testability of these components means they are not easily tested. Solutions to test them also end up with easily broken when things are changed. This blueprint tracks the list of recommendation actions to take, along with tracking immediate testability needs for services already written and under test.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Nicholas Skaggs
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

Recommendations:
- We need the developers of every service and API to provide helpers so we can put the consumers of those services under test.
- Migrate test setup complexity to a common fixture within autopilot
- Create script that will setup environment and make it available in a common component (ubuntu-touch-session, ubuntu-app-launch)
- Add autopkgtest for setup script to ensure any changes to setup assumptions are caught before release

Needs:

Here is a list of things that are currently affecting us and preventing a nice automation story:

- Be able to run an app on a clean environment, so the tests don't affect the existing data and they are not affected by it.
- Launch apps with ubuntu-app-launch without unity running, so we can test on desktop, we are not affected by external unity issues and we are not required to reset unity to get a clean environment.
- Run apps in a MIR virtual frame buffer.
- Helpers for security features
 -> PAM
 -> Developer mode
- Apparmor and the need and maintenance of autopilot click rules
- Specific missing testability helpers that are blocking our automation in:
 -> online accounts to be able to add accounts without the UI.
 -> mediascanner to be able to insert test files to the database.
 ->ofono, network manager, urfkill, bluez.
 -> EDS (alarms and events)
 -> url-dispatcher / content hub
 -> missing helpers for UITK components

Questions:
Do we have everything we need for proper OSK testability? -- balloons

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.