Eu escrevi um aplicativo Android. O aplicativo requer uma conexão Bluetooth com uma peça de hardware muito específica, atualmente um protótipo. A única maneira de testar o aplicativo no momento é dirigir centenas de quilômetros para ver se ele funciona. Se eu acabar com um ANR, pode ser muito embaraçoso para o meu cliente. O tipo de conexão e a mecânica deste aplicativo são muito bem adaptados a este hardware. Não tenho permissão para trazer um laptop, fazer root no meu telefone ou conectar-me a qualquer outro dispositivo no local.
Existe alguma maneira de testar esse aplicativo em casa ou executar as atividades para garantir que eu não tenha outro ANR na segunda atividade enquanto o cliente me olha horrorizado?
Devo salientar que não sou um programador experiente e esta é uma nova idéia com a qual estou ajudando alguém, já que a contratação de pessoal não está disponível atualmente, por isso, sem dúvida, estou perdendo alguns dos conceitos básicos de desenvolvimento disso.
Respostas:
Como o @ MrSmith42 sugeriu, você deve fazer o melhor possível para zombar da interface. Você não precisa de uma conexão bluetooth real para zombar dela. Ligue para uma interface. Essa interface, na depuração, envia o que você esperaria para uma determinada entrada. Quando não está em depuração, ele executa o trabalho real de enviar e receber os dados. Certifique-se de que o que você envia para a interface e como você lida com sua saída funcione. Polvilhe um pouco generoso de tratamento de erros, gerenciando os erros que você pode gerenciar e registrando o restante, e você tem algo para testar diretamente no cliente.
A única possibilidade de erro nesse ponto está na diferença entre como você espera que o dispositivo manipule e como ele realmente se comporta e, na minha experiência, o hardware nunca é totalmente confiável. Portanto, certifique-se de ter um mecanismo geral de tratamento de erros para algo que você não espera que, pelo menos, despeje algum tipo de log.
fonte
Eu acho que esse é um problema de gerenciamento de projetos, não tanto um problema de desenvolvimento de software.
Você deve ter uma semana ou duas com acesso ao dispositivo (nas instalações do cliente ou no escritório) para avaliar o comportamento básico do dispositivo e ver como ele interage com o seu software. Depois, você pode zombar da interface e desenvolver a funcionalidade em casa e novamente uma semana de testes de integração.
Quando você interage com o hardware, a necessidade e o valor dos testes de integração não podem ser subestimados. Se os testes de integração não forem possíveis, seu projeto falhará. Programar às cegas para um hardware que você não pode testar não funciona.
Você precisa discutir esse problema com seu cliente.
fonte