Todo sistema de aplicação pode ser reutilizado, seja incorporando-o sem alterações em seu sistema ou desenvolvendo grupos de aplicações. Todos os componentes, subsistemas e até mesmo módulos podem ser reutilizados, bem como quaisquer componentes de software que implementam um único objeto ou função bem definida.
Automatizar a testagem de um software é tão importante quanto automatizar sua implantação e monitoramento. Uma abordagem possível neste âmbito é a utilização de um código escrito para outro projeto se uma função semelhante for necessária. A engenharia de software baseada em reutilização é uma estratégia de engenharia de software na qual o processo de desenvolvimento é voltado para a reutilização de ativos de software existentes.
A adoção de processos de teste reutilizáveis é uma prática fundamental, mas tende a ser descartada mais tarde durante a evolução da aplicação, assim que os padrões de implantação estiverem bem estabelecidos. A prioridade é se concentrar primeiro nas outras práticas.
Uma vez que a reutilização de padrões de teste é exercida, é importante assegurar seu compartilhamento, por meio da codificação dos testes reutilizáveis em testes automatizados e compartilhar o acesso às ferramentas, relatórios resultantes ou painéis de controle entre todas as partes ativas.
Benefícios e aplicações da reutilização de padrões de testes
Os benefícios da reutilização consistem na redução do tempo de desenvolvimento de software, cortando custos e economizando o tempo do programador que trabalha numa aplicação que requer um código que já existe. Em um ambiente de boas práticas, o código existente vem com documentos existentes, garantia de qualidade existente e resultados de testes compatíveis, melhorando a qualidade das aplicações.
Bons padrões de teste dentro de uma equipe de qualidade devem vir antes da integração delas às iniciativas de DevOps. Para as equipes de operações, isso significa ter um processo para testar mudanças na infraestrutura antes da produção. Para as equipes de desenvolvimento, isso poderia significar a implementação de desenvolvimento orientado por testes ou outra metodologia.
Atividades mais próximas da produção, tais como provisionamento e monitoramento são onde os problemas se tornam mais visíveis. É necessário acabar com os problemas de implantação primeiro para ganhar tempo e usá-lo para melhorar suas práticas de teste.
Os padrões de teste podem ser menos reutilizáveis do que os padrões de implantação porque os testes lidam com as especificidades de uma aplicação ou serviço, e também cobrem muitos processos diferentes nos ambientes mais diversos.
Os testes na produção se concentram na experiência do cliente, qualidade, funcionalidade, resiliência, estabilidade e muito mais, e são mais difíceis e muitas vezes mais complexos do que os testes em pré-produção, pois suas metas são diferentes.
A reutilização de padrões, a criação de programas genéricos ou estruturas configuráveis que suportam soluções similares para uma variedade de casos de uso e ambientes não é aplicada na maioria das organizações, embora a reutilização seja claramente um dos princípios mais úteis no desenvolvimento de software. Utilizar uma abordagem orientada por modelos com padrões é também uma opção viável, como os padrões arquitetônicos, que são estruturas de software padrão. Elas suportam tipos comuns de sistemas de aplicação que são usados como base de aplicações.