A explosão das aplicações mobile apresentou inúmeros novos desafios para os testes que ainda estão sendo digeridos por nós até hoje. Ao meu ver, ainda não há um consenso de onde é melhor nossos executar nossos testes automatizados por exemplo.

Se você acha uma dor de cabeça lidar com os problemas que as aplicações mobile nos trouxe, brace yourself, a Internet of Things (IoT) está logo ali.

Telefones e tablets são dispositivos móveis sim, mas basicamente, eles ainda são apenas dispositivos pessoais. A IoT vai basicamente dar internet, a todas as outras coisas que já existiam antes. Dá para imaginar a quantidade de possibilidades?

Um bom exemplo dessas possibilidades é dinâmica da automação residencial. Este talvez seja o exemplo mais em evidência atualmente. A automação residencial integra diversos equipamentos automatizados que conversam entra si afim de trazer mais praticidade dentro de uma casa. É possível realizar artimanhas como gerenciar o consumo de energia, gerenciar a segurança da casa, o consumo de água entre um monte de outras coisas legais.

Imagina ter um perfil personalizado para que funciona apenas quando você sair de férias. Ou então um perfil romântico para quando estiver acompanhado? Bem legal não é?

Mas o qual vai ser o papel que o QA vai desempenhar nesse ambiente?

Vamos explorar alguns dos aspectos mais importantes dentro desse ambiente com um exemplo: Uma cafeteira inteligente.

O cenário é o seguinte: Em um horário determinado pelo usuário, a cafeteira começa a preparar o café e quando termina, ela envia um sinal para que a geladeira fatie alguma fruta. Após essas ações finalizadas, um sinal é enviado para o despertador e o usuário acorda com o café da manhã pronto.

Segurança: Imagina alguém invadindo a sua cafeteira e enviando pedidos inúmeros pedidos de café, ou usar a cafeteira como porta de entrada para a sua casa acessando informações sigilosas.

Compatibilidade/Conectividade: É preciso que a cafeteira possa se comunicar com outros tipos de dispositivos, outros protocolos, outras versões de OS, outras configurações.

Exploratório: Mesmo depois de uma bateria de testes muito bem orquestrada, ainda precisamos testar sob a perspectiva do usuário. Os motivos são os mesmo que nos fazem realizar sessões de exploratório hoje.

Performance: Esse pequeno cenário descrito, dia após dia processa uma quantidade de informações que podem convenientemente serem compiladas em um demonstrativo como a quantidade de calorias ingeridas por exemplo.

Testar com o quê?

Infelizmente, ainda não existem ferramentas consolidadas para os testes neste tipo de ambiente. Peter Varhol, durante uma entrevista para a InfoQ foi perguntado sobre sugestões de material para quem quer ficar ligado em testes para IoT. A resposta dele foi:

More on testing the Internet of Things. That’s a tough one, as few are doing this right now. I think most testers aren’t thinking in this direction yet. Regarding Gerie’s approach, I would recommend that testers look at their own experiences with their Internet-connected devices. If you are in some way dissatisfied, you need to question if the dissatisfaction is due to the device itself, or how it works with you. Chances are that the device wasn’t built with you in mind, even if it is a human-centered solution. I think Gerie has it exactly right, in that bringing the person into the equation makes the focus one from testing to requirements to testing for the target audience, which often isn’t the same thing.

Um dos desafios do QA para essa nova fase, é realmente desenvolver soluções para auxiliar os testes. Podemos listar simuladores de protocolos e formas de virtualizar os dispositivos como soluções de grande valia.

O lado bom, é que ainda podemos testar o código das aplicações. Testes unitários, clean code entre outras práticas vai bem.

Acredito que a IoT ainda vai se desenvolver muito até chegar efetivamente na vida da maioria das pessoas, e até lá, muita coisa vai mudar.