Programa

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

DEPARTAMENTO DE CIÊNCIAS EXATAS

PROFESSOR(A): ROBERTO ALMEIDA BITTENCOURT

PERÍODO LETIVO: 2012.1

PROGRAMA DO MÓDULO ISOLADO

EXA 851 – QUALIDADE DE SOFTWARE

 

CARGA HORÁRIA/CREDITAÇÃO

60 horas / (T:30; P:30; E:00)

PRÉ-REQUISITOS

EXA 809 - Engenharia de Software

EMENTA

Planejamento da qualidade de software. Definição dos termos de qualidade. Metodologia de inspeção. Checklists. Metodologia de teste, ferramentas de teste. Gerenciamento de configuração. Problemas no processo de introdução de planos de qualidade. Métodos de medição. Modelos de histórico de faltas. Padrões para assegurar qualidade.

OBJETIVOS

Geral:

·         Ser capaz de realizar satisfatoriamente atividades de controle de qualidade do produto de software através do uso de metodologias, técnicas e ferramentas, embasando-se num referencial teórico e no estado-da-prática da área de engenharia de software.

Específicos:

·         Conhecer, compreender e aplicar as metodologias, técnicas e ferramentas de controle de qualidade do produto de software;

·         Julgar criticamente as diversas metodologias, técnicas e ferramentas de controle de qualidade do produto de software e escolher as mais apropriadas para diferentes contextos de desenvolvimento de software;

·         Através do embasamento neste curso e pela prática continuada, participar de (e até mesmo liderar) equipes de controle de qualidade de software em organizações ou equipes de produção de software.

 

CONTEÚDO PROGRAMÁTICO

1.      Introdução.

1.1.   Conceitos gerais de qualidade de software.

1.2.   Fundamentos e axiomas.

2.      Bugs.

2.1.   Relatórios de bugs (bug reports).

2.2.   Sistemas de acompanhamento de bugs.

3.      Revisão por pares.

3.1.   Espectro de revisões.

3.2.   Processo de inspeção.

3.3.   Planejando a inspeção.

3.4.   Examinando o produto.

3.5.   O encontro de inspeção.

3.6.   Fechamento do encontro.

4.      Testes no ciclo de vida do software.

4.1.   Testes de unidade.

4.2.   Testes de integração.

4.3.   Testes de sistema.

4.4.   Outros tipos de testes.

5.      Testes funcionais.

5.1.   Desenvolvimento dirigido por testes.

5.2.   Teste de classes de equivalência.

5.3.   Teste de valores-limite.

5.4.   Tabelas de decisão.

6.      Testes estruturais.

6.1.   Testes pelo fluxo de controle.

6.2.   Testes pelo fluxo de dados.

7.      Métricas de qualidade de software.

7.1.   Métricas clássicas.

7.2.   Métricas para sistemas OO.

8.      Qualidade de design.

8.1.   Design detalhado e arquitetural.

8.2.   Visões arquiteturais.

8.3.   Conformidade de design de detalhado.

8.4.   Conformidade de design arquitetural.

8.5.   Remoção de ciclos e violações.

8.6.   Reestruturação de design.

9.      Ferramentas de suporte à qualidade de software.

9.1.   Ferramentas de checagem de estilo.

9.2.   Ferramentas de descoberta de bugs.

9.3.   Ferramentas de testes funcionais.

9.4.   Ferramentas de mocking.

9.5.   Ferramentas de testes estruturais.

9.6.   Ferramentas de métricas de qualidade interna.

9.7.   Ferramentas de checagem de design.

9.8.   Ferramentas de controle de versões em qualidade de software.

9.9.   Ferramentas de automação de builds em qualidade de software.

9.10.                    Ferramentas de integração contínua em qualidade de software.

METODOLOGIA

A metodologia será um híbrido de aulas expositivas dialogadas, tutoriais de técnicas e ferramentas, trabalhos em equipe e seminários apresentados pelos alunos.

 A seguir apresentamos os alcances de cada uma destas estratégias metodológicas:

·         As aulas expositivas dialogadas têm como objetivo: introduzir conteúdos e práticas da área de qualidade de software, sensibilizar os futuros profissionais sobre os problemas resultantes de produção de software sem controle de qualidade, além de debater as diferentes abordagens de manutenção de qualidade, suas vantagens, desvantagens, alcance e limitações.

·         Os tutoriais de ferramentas servem para introduzir rapidamente o uso de ferramentas de qualidade de software, reduzindo a curva de aprendizagem e realçando os aspectos mais importantes destas ferramentas no contexto deste curso.

·         Os trabalhos em equipe permitem a prática mais prolongada no uso de técnicas e ferramentas de qualidade de software, situadas em um contexto mais realista do que o apresentado em aulas expositivas ou tutoriais. Em cada trabalho, cada equipe deve gerar artefatos (inclusive um relatório do trabalho), que podem ser individuais e/ou para toda a equipe.

·         Os seminários apresentados pelos alunos devem analisar pelo menos três ferramentas com um foco específico em qualidade de software, comparar estas ferramentas entre si através de critérios bem definidos, além de escolher uma destas ferramentas para demonstração de seu uso em sala de aula, aplicando-a no contexto de qualidade de software.

 

MATERIAL UTILIZADO

Para as aulas expositivas dialogadas, tutoriais de ferramentas e seminários dos alunos:

·         Quadro branco, pincel, apagador, computador e projetor multimídia.

Para os trabalhos em equipe:

·         Práticas em laboratório de computação, com computadores e impressora, ou pelo uso dos equipamentos próprios dos alunos.

 

AVALIAÇÃO

O módulo será dividido em três unidades, para que o estudante possa refletir sobre sua situação em diferentes momentos do curso e, caso necessário, realizar correções de rumo no processo de aprendizagem.

Medidas da Unidade:

A medida de cada uma das três unidades será calculada de diferentes formas:

1.      Na I e na II Unidade, será a média ponderada dos trabalhos em equipe;

2.      Na III Unidade, será a nota da apresentação do seminário.

Média Parcial:

A média parcial será a média aritmética das medidas de cada unidade. Obtendo média igual ou superior a 7,0 (sete), o estudante pode ser aprovado, caso cumpra os requisitos de frequência.

Prova Final:

·         Não obtendo média parcial suficiente na avaliação do módulo, o estudante poderá fazer prova final, e a média final será calculada de acordo com o sistema de avaliação vigente na UEFS.

Aprovação no módulo:

Para ser aprovado no módulo, o estudante precisa cumprir os seguintes requisitos:

·         Ter frequência igual ou superior a 75% da carga horária efetiva ministrada no módulo, caso contrário haverá reprovação por frequência;

·         Ser aprovado na avaliação do módulo, caso contrário haverá reprovação por nota.

 

REFERÊNCIAS

LIVROS-TEXTO

PATTON, R. Software Testing. 2. ed. Sams, 2005.

JORGENSEN, P. C. Software Testing: A Craftman’s Approach. 2. ed. CRC Press, 2002.

HUMBLE, J.; FARLEY, D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley, 2010.

DELAMARO, M. E., JINO, M., MALDONADO, J. C. Introdução ao Teste de Software. Campus, 2007.

WIEGERS, K. E. Peer Reviews in Software: A Practical Guide. Addison-Wesley, 2001.

LAIRD, L. Software Measurement and Estimation: A Practical Approach. Wiley - IEEE Press, 2006.

 

LEITURA COMPLEMENTAR

BASANDRA, S. Agile Software Testing and Quality Assurance Questions and Answers. Basandra Books, 2012.

KANER, C., BACH, J., PETTICHORD, B. Lessons Learned in Software Testing. John Wiley, 2001.

KANER, C., FALK, J., NGUYEN, H. Q. Testing Computer Software. 2. ed. John Wiley, 1999.

MCCONNELL, S. Code Complete: A Practical Handbook of Software Construction. 2. ed. Microsoft Press, 2004.

GILB, T., GRAHAM, D. Software Inspection. Addison-Wesley, 1993.

RADICE, R. A. High Quality Low Cost Software Inspections. Paradoxicon, 2004.

LEON, A. Software Configuration Management Handbook. 2. ed. Artech House, 2004.

BERCZUK, S. P., APPLETON, B. Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley, 2003.

ORAM, A.; WILSON, G. Beautiful Code: Leading Programmers Explain How They Think. O’Reilly, 2010.

BECK, K. Test-Driven Development by Example. Addison-Wesley, 2003.

FENTON, N. E.; PFLEEGER, S. L. Software Metrics: A Rigorous and Practical Approach. 2. ed. PWS Publishing, 1998.

MCCONNELL, S. Software Estimation: Demystifying the Black Art. Microsoft Press, 2006.