SDLC e STLC - porquê a existência de dois ciclos?
É verdade que nem todas as pessoas conhecem a existência do Software Testing Life Cycle embora a maioria delas o aplique de forma inconsciente no seu dia a dia e planeamento de tarefas.
E por isso surge várias vezes a questão: então mas qual a diferença entre ambas e qual a mais valia de uma definição concreta e implementação do STLC?
Vou apresentar-te de forma bastante resumida por agora cada um dos ciclos (com a promessa de voltar ao tema com mais detalhe!) e focar no porquê, como e quando usar/aplicar o STLC.
SDLC (Software Development Life Cycle)
O SDLC é uma framework que define as etapas e processos necessários para o desenvolvimento de software, desde a sua concepção até à sua entrega e manutenção.
As principais fases do SDLC incluem:
- Planeamento: definição dos objetivos, escopo/objectivo e requisitos do projeto. 
- Análise de Requisitos: descrição e análise das necessidades do sistema e especificação dos requisitos. 
- Design: definição da arquitetura e design do sistema de forma detalhada, incluindo as interfaces, as bases de dados e lógica de negócio necessária. 
- Desenvolvimento: codificação e implementação do software. 
- Teste: verificação e validação do software, para garantir que o mesmo corresponde aos requisitos especificados e não tem nenhum erro não expectável. 
- Implantação: instalação/entrega do software no ambiente de produção. 
- Manutenção: correção de problemas, melhorias e actualizações contínuas. 
STLC (Software Testing Life Cycle)
O STLC é um sub-conjunto do SDLC, focado exclusivamente nos aspectos de teste do software. O objectivo é definir todas as atividades que devem ser realizadas para garantir a qualidade do software. Acaba por ter nas fases uma grande semelhança com as que são definidas no SDLC.
Pode ser dividido em várias fases, como por exemplo:
- Planeamento: definição da estratégia de teste, escopo/objectivos, recursos necessários e cronograma. 
- Análise de Requisitos: análise dos requisitos definidos, para identificar o que terá de ser testado. 
- Design: escrita dos casos de teste, roteiros/scripts e dados de teste. 
- Preparação: configuração do ambiente de teste e preparação dos testes. 
- Execução: executar os casos de teste definidos, segundo os roteiros e priorização e registo dos resultados obtidos. 
- Conclusão: revisão dos resultados de teste, relatório de defeitos e avaliação da cobertura de teste (com recurso a métricas para análise). 
- Hand-off: documentação e arquivo de todos os artefactos de teste, além de possíveis revisões/análises pós-projeto. 
Como o SDLC e o STLC se complementam?
- Integração de Fases - Cada fase do STLC está alinhada com as fases do SDLC, garantindo assim que os testes são considerados em cada etapa do desenvolvimento. - Por exemplo, durante a fase de análise de requisitos do SDLC deve decorrer em simultâneo a fase de análise de testes do STLC. 
- Qualidade Contínua - O STLC ajuda a identificar e corrigir defeitos e problemas o mais cedo possível no ciclo de vida do software, permitindo assim reduzir o custo e o tempo para correção de erros em momentos mais avançados do ciclo (ou já mesmo em ambiente de produção). Esta antecipação é feita com base no conhecimento que é transferido durante os períodos de análise e concepção. 
- Feedback Contínuo - O STLC fornece feedback contínuo ao SDLC sobre a qualidade do software, permitindo ajustes e melhorias de forma contínua e continuada. 
Quais são as mais-valias do STLC ?
- Detecção precoce e antecipada de defeitos: ao realizar testes em cada fase do desenvolvimento, os erros e defeitos são identificados e corrigidos mais cedo, reduzindo o custo e o esforço para correção. 
- Qualidade melhorada: ao ter testes sistemáticos e abrangentes é possível garantir que o software corresponde aos requisitos de qualidade e funciona conforme esperado. 
- Redução de riscos: ao identificar de forma precoce potenciais problemas existe uma maior capacidade de mitigar possíveis riscos associados ao desenvolvimento de software. 
- Planeamento estruturado: ao fornecer uma abordagem estruturada para planeamento e execução de testes, é possível garantir uma cobertura mais ampla e completa dos requisitos. 
Como e Quando usar o STLC ?
Aplicação do STLC
- durante TODO o processo de desenvolvimento: o STLC deve ser aplicado logo desde o início do desenvolvimento (análise de requisitos) até à conclusão e fecho do projeto (manutenção e suporte). 
- em projetos de qualquer tamanho: independentemente do tamanho ou complexidade do projeto, o STLC pode ser adaptado à realidade e necessidades do mesmo, por forma a para garantir a qualidade do software. 
- ambientes ágeis: em metodologias ágeis, o STLC é iterativo, com testes realizados em cada sprint ou iteração. Portanto, é mesmo uma roda sempre em movimento, um verdadeiro ciclo em execução contínua e continuada. 
Implementação na Equipa
Mesmo que a prática de STLC não esteja formalmente estabelecida na equipa, você pode integrá-la da seguinte forma:
- Definição de Estratégia de Testes: propõe e documenta uma estratégia de testes alinhada com as fases do projeto. 
- Criação de Casos de Teste: desenvolve casos de teste e roteiros desde a fase de design até a implementação. 
- Automação de Testes: introduz a automação (com a devida análise para o caso em questão. Nem todos os testes dão para ser automatizados) para garantir testes contínuos e regressivos. 
- Comunicação: comunica regularmente os resultados dos testes e os feedbacks à equipa de desenvolvimento. 
- Feedback e Melhoria Contínua: participa nas reuniões de revisão de sprint (ou de projeto), fornece feedback concreto e válido, e propõe melhorias com base nos resultados dos testes. 
O SDLC e o STLC são frameworks essenciais para garantir a entrega de software de alta qualidade.
Enquanto o SDLC cobre todo o ciclo de vida do desenvolvimento de software, o STLC foca-se especificamente nos processos de teste, garantindo que a qualidade é mantida em cada etapa.
Integrar o STLC no teu dia a dia, mesmo em equipas que ainda não o utilizam formalmente, pode trazer benefícios significativos em termos de detecção precoce de defeitos, melhoria da qualidade e redução de riscos.

 
             
             
            