Be able to test Programs without having to start Router supervision tree: ```elixir program = new(CounterProgram, %{}) {:ok, program} = update(program, {:increment, 1}) assert program.state == 1 assert select(view(program), "div > span.number") == "1" ```