Escolar Documentos
Profissional Documentos
Cultura Documentos
1) Má-Qualidade de Software
Ocasiona perda de negócios, dados, tempo e dinheiro. Empresas podem sofrer com
os processos judiciais, custos, má-reputação e perda de clientes.
Um software sem qualidade causa projetos de software difíceis de planejar e
controlar, a funcionalidade dos programas nem sempre funcionam como planejado e podem
existir muitos defeitos nos sistemas.
2) Qualidade de Software
Resultam em prazos sob controle, satisfação dos usuários, diminuição de erros nos
projetos de software e melhora a posição competitiva da empresa.
Existem pontos de vistas diferentes em relação a qualidade de software, como:
- Melhor custo benefício,
- Características inerentes ao produto são melhores,
- Conformidade com as especificações,
- Atender as metas dos usuários
“Qualidade é o grau em que o sistema, componente ou processo atende os requisitos
especificados e as expectativas e necessidades do cliente ou do usuário.”
2) Teste de Sistema
Busca testar o sistema completo, é uma interação entre todos os componentes até a
interface. É um processo coletivo, componentes desenvolvidos por partes diferentes já
devem ser integrados e pode ser realizado pela equipe de devs ou equipe de testes.
São testes baseados em casos de uso/história de usuário.
7) Teste de Cenário
É feito baseando-se em cenários reais de uso típico do sistema e são testados
diferentes requisitos dentro de um mesmo cenário. As histórias de usuário e cenários
utilizados na elicitação de requisitos podem ser reutilizados para os testes.
8) Teste de Desempenho
São feitos uma série de testes em que se aumenta a carga progressivamente, assim
consegue identificar circunstâncias que sobrecarregam o sistema por meio de uma
combinação inesperada de eventos. Muito útil em sistemas distribuídos e baseado em
nuvem.
9) Teste de Usuário
É a etapa posterior ao teste de lançamento. São testes realizados por usuários finais
do sistema. Existem 3 tipos:
- Teste-alfa: pode ocorrer durante o desenvolvimento, e é selecionado um grupo de
usuários trabalhando em colaboração com a equipe de desenvolvimento.
- Teste-beta: teste de um lançamento inicial às vezes inacabado do sistema
- Teste de Aceitação: usuários finais testam o sistema com seus próprios dados e
definem se o sistema está pronto para entrega (aceito)
10) Testes de Sistema Web
Os sistemas web possuem diferentes arquiteturas de desenvolvimento, muitas vezes
diferindo na forma como os testes são conduzidos. Podemos utilizar testes do modelo de
interface, unitários, de segurança, de desempenho e de usabilidade.
1) Evolução do Software
Sua vida útil geralmente é bem longa, mas é necessário se adaptar a mudanças e evoluir
para permanecerem úteis. Em sistemas corporativos essa evolução pode ser custosa.
A maior diferença está entre a fase de evolução e de “em serviço”, na fase de evolução
acontecem grandes mudanças na arquitetura de adição de novas funcionalidades, já na
fase “em serviço” as mudanças são pequenas e essenciais.
5) Sistemas Legados
São sistemas antigos que ainda estão em funcionamento e possivelmente desempenham
papel fundamental na operação dos códigos, possuem pouca manutenção e mudança.
“Por que as empresas não substituem por equivalentes modernos?”
Ele é eficiente e eficaz ao núcleo do negócio, custo para substituí-lo é maior do que
o da manutenção, não existe documentação, mudanças no software implicam mudanças
em processos, riscos em desenvolver um novo sistema.
7) Manutenção de Software
Existem 3 tipos diferentes de manutenção:
i) Reparo de defeitos: corrigir bugs, inconsistências, erros de código, dados, projeto
ii) Adaptação a novas plataformas e ambientes: mudança de dependência, SO, hardware
iii) Adição de novas funcionalidades: mudança nos requisitos
8) Previsão de Manutenção
Para prever o número de pedidos de mudanças requer entender a relação entre o sistema e
o ambiente externo. Deve-se examinar a quantidade e complexidade de interfaces do
sistemas e também a quantidade de requisitos voláteis do sistema.
Quanto maior a complexidade de um sistema maior o custo de manutenção.
2) Limitações da Reengenharia
Mudanças podem não ser possíveis. Ao realizar mudanças na estrutura dos dados pode
levar a perda de informação ou inconsistências, se não for bem feito a manutenibilidade
pode piorar.
REUSO DE SOFTWARE - PARTE 1
2) Reuso de Conceito
Nem todo componente com funcionalidades genéricas são reusáveis. Muitas vezes a
implementação de um software ou componente é muito específica sendo caro sua
modificação.
I) Vantagens: desenvolvimento acelerado, o reuso agrega o conhecimento dos
especialistas que o desenvolveram, maior confiabilidade, menores custos de
desenvolvimento, menos risco para o processo e possui conformidade com padrões.
II) Desvantagens: criar/manter/usar uma biblioteca de componentes,
encontrar/entender/adaptar os componentes, maior custo de manutenção, falta de suporte
da ferramenta.
Porém, vai depender de alguns fatores para determinar a técnica ideal, como
cronograma de desenvolvimento e tempo de vida previsto para o projeto.
4) Frameworks de Aplicação
Framework é uma estrutura genérica que pode ser estendida para criar um
subsistema ou uma aplicação específica. Eles fornecem um esqueleto de arquitetura para a
aplicação e geralmente são flexíveis e configuráveis permitindo a adição de novos
componentes reusáveis.
Frameworks podem compor outros frameworks para formar um sistema, geralmente
isso acontece para implementação de parte isolada da aplicação. Os mais comuns são de
aplicativo web e em sua maioria segue o modelo MVC.
● Coletas e análise de erros (serve para melhor compreender como os erros são
introduzidos e qual atividade melhor se adequa para sua eliminação)
1) Revisão
Fazer uma revisão/análise de artefatos de software à procura de problemas. Tem como
objetivo melhorar a qualidade do software.
● Vantagens
- Diminui retrabalho
- Identificar vários defeitos de uma vez
- Treinamento da equipe
- Encontram defeitos que testes de unidade não encontram
● Desvantagens
- Algumas etapas tem custo maior de tempo e recurso
- Atividade a mais
- Não detecta todos os tipos de defeitos
- Dificuldade de medir o impacto
2) Teste de Software
É o processo de executar um programa com o objetivo de encontrar erros. Tem
como objetivo demonstrar que o software atende aos requisitos e encontrar situações que o
software se comporta de modo incorreto.
Teste fazem parte das atividades V & V: Validação (Estamos construindo o software
certo?) e Verificação (Estamos construindo o software da maneira certa?)
Um conjunto bem definido de testes garante que o software irá funcionar
corretamente a maior parte do tempo, porém não estará livre de defeitos.
TESTES AUTOMATIZADOS
● Dados de Teste: são a entrada para o teste e podem ser definidos manualmente ou
automaticamente.
2) Tipos de Testes
Teste Caixa-Preta: - não se sabe nada a respeito da lógica sendo testada
- utiliza especificação de um sistema para realizar o teste
- FUNCIONAL
Algumas estratégias comuns na definição dos casos de testes para encontrar defeitos:
- Teste de Partição: Identificação do grupo de entrada com características comuns
Escolher 1 exemplo de cada grupo para testar
- Caso II:
valorCompra: <50
qtdItens: >3
- Caso III:
valorCompra: >=50
qtdItens: -