SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
@herbert_juliana | #testinguy
CHARLA
Juliana Herbert
julianash@ufcspa.edu.br
@herbert_juliana
13 y 14 de mayo, 2019
testinguy.org
@testinguy | #testinguy
PATTERNS PARA ENSEÑAR
TESTING A PERSONAS
QUE NO DESARROLLAN
SOFTWARE
@herbert_juliana | #testinguy
PresentaciónPresentaciónPresentaciónPresentación
Creo, de todo el corazón, que el conocimiento debe serCreo, de todo el corazón, que el conocimiento debe serCreo, de todo el corazón, que el conocimiento debe serCreo, de todo el corazón, que el conocimiento debe ser
compartido y jamáscompartido y jamáscompartido y jamáscompartido y jamás elitizadoelitizadoelitizadoelitizado y/o restricto a un grupo específicoy/o restricto a un grupo específicoy/o restricto a un grupo específicoy/o restricto a un grupo específico
de personas.de personas.de personas.de personas.
Investigadora Asociada
PEDECIBA Informática
@herbert_juliana | #testinguy
AgendaAgendaAgendaAgenda
I. Contexto del Trabajo
II. Testing de Software
III. Patterns
IV. Patterns Propuestos
V. Consideraciones Finales
@herbert_juliana | #testinguy
Contexto del TrabajoContexto del TrabajoContexto del TrabajoContexto del Trabajo
16 carreras de graduación.
12 programas de posgraduación.
¡Todos en el área de la salud!
www.ufcspa.edu.br
@herbert_juliana | #testinguy
Contexto del TrabajoContexto del TrabajoContexto del TrabajoContexto del Trabajo
Personas con
conocimiento
sobre las técnicas
de testing.
Personas con
conocimiento
sobre el dominio
(áreas de la salud).
Cursos para la divulgación del área de testing
– “Validación y Verificación de Software en el
Área de la Salud”.
Proyecto para la definición de riesgos y
criticidades en varios dominios del área de la
salud.
@herbert_juliana | #testinguy
AgendaAgendaAgendaAgenda
I. Contexto del Trabajo
II. Testing de Software
III. Patterns
IV. Patterns Propuestos
V. Consideraciones Finales
@herbert_juliana | #testinguy
Testing de SoftwareTesting de SoftwareTesting de SoftwareTesting de Software
“Testing es el proceso de ejecutar el programa con la intención de encontrar
errores.”
Glendford Myers, 1979
“Una investigación técnica hecha para identificar información relacionada a
la calidad del producto en testing.”
Cem Kaner, 2004
@herbert_juliana | #testinguy
Testing de SoftwareTesting de SoftwareTesting de SoftwareTesting de Software
Context-driven
Testing
@herbert_juliana | #testinguy
AgendaAgendaAgendaAgenda
I. Contexto del Trabajo
II. Testing de Software
III. Patterns
IV. Patterns Propuestos
V. Consideraciones Finales
@herbert_juliana | #testinguy
PatternsPatternsPatternsPatterns
“The Gang of Four”
1994
1977
@herbert_juliana | #testinguy
Estructura de Patterns Utilizada en este TrabajoEstructura de Patterns Utilizada en este TrabajoEstructura de Patterns Utilizada en este TrabajoEstructura de Patterns Utilizada en este Trabajo
2004 2012
Nombre del Pattern
Problema a ser Resuelto
Contexto
Ejemplo Motivacional
Fuerzas
Solución
Ejemplo con Solución Aplicada
Contexto Resultante
Racional
@herbert_juliana | #testinguy
AgendaAgendaAgendaAgenda
I. Contexto del Trabajo
II. Testing de Software
III. Patterns
IV. Patterns Propuestos
V. Consideraciones Finales
@herbert_juliana | #testinguy
PatternsPatternsPatternsPatterns PropuestosPropuestosPropuestosPropuestos
• Equilibrando Complejidad, Tiempo y Utilidad en Escenarios de Testing
• ¡No hay testing perfecto!
• ¡No hay un mundo perfecto para el testing!
• Defectos Similares en Situaciones Similares
@herbert_juliana | #testinguy
PatternsPatternsPatternsPatterns PropuestosPropuestosPropuestosPropuestos
NOME Equilibrando Complexidade, Tempo e Utilidade em Cenários de Teste
PROBLEMA
Para ensinar técnicas de teste de software caixa-preta, é importante caracterizar contextos através da
especificação de cenários nos quais o teste será realizado. Estes cenários devem ser simples o suficiente
para serem utilizados durante as aulas, e complexos o suficiente para mostrarem as características das
práticas e técnicas de teste. Ao mesmo tempo, devem ser representativos o suficiente para que o aluno
facilmente possa escalá-los a problemas reais.
Como definir cenários de teste simples o suficiente para serem utilizados em aula e complexos o
suficiente para facilmente serem escalados a problemas reais?
CONTEXTO
Cursos de técnicas de teste caixa-preta para profissionais sem conhecimento em desenvolvimento de
software têm a duração de 30 horas. Aproximadamente 10 horas são utilizadas para a apresentação de
conceitos sobre teste de software. Nas outras 20 horas, são realizados exercícios práticos aplicando os
conceitos utilizados, a partir de contextos compostos por cenários de teste definidos a partir de software
da área da saúde.
EXEMPLO MOTIVACIONAL
Alguns exemplos frequentemente utilizados na literatura e em cursos sobre técnicas de teste caixa-preta
clássicas tais como particionamento em classes de equivalência e análise de valores limite são o de um
programa que soma dois números inteiros e o de um programa que recebe três medidas de lados de um
triângulo e gera como saída o tipo do triângulo (isósceles, escaleno ou equilátero). Profissionais da área
da saúde que estão aprendendo estas técnicas dificilmente conseguem transpor os objetivos e a
dinâmica de utilização das técnicas a partir destes exemplos simples para o contexto de sistemas de
software críticos e complexos do domínio da saúde. Alguns exemplos: como aplicar as técnicas para um
software realiza a análise de um mapeamento genético ou de um software que auxilia na anamnese em
deficiências sensoriais, voltada a neurologia infantil? Por outro lado, professores ou instrutores que
ensinam as técnicas de teste normalmente não possuem este conhecimento avançado em domínios tão
específicos e complexos.
FORÇAS
É bastante frequente, na literatura, o uso de cenários de teste bastante simples. Ainda que sejam
didáticos, muitas vezes a simplicidade acaba passando ao aluno a ideia de que as técnicas são também
muito simples, não gerando valor em cenários da vida real.
Por outro lado, se cenários de um contexto real de aplicação são utilizados, a complexidade inerente à
situação torna a aplicação da técnica de teste recém aprendida muito difícil, o que também pode dar ao
aluno a impressão de que as técnicas de teste não são aplicáveis em cenários da vida real.
Também é importante considerar que as técnicas devem ser ensinadas de forma que os alunos não só
aprendam a utilizá-las, mas também desenvolvam a capacidade para entender quando estas podem ser
aplicadas com suas debilidades e seus pontos fortes, assim como para adaptá-las, caso necessário, para
situações específicas, sem perder o valor da sua essência nem ir contra os princípios que nortearam a
proposta da técnica.
SOLUÇÃO
Aproveite o fato de os alunos terem conhecimento de domínio e faça-os escolher o software e as
funcionalidades que serão submetidas ao teste.
Como os alunos do curso são profissionais que têm conhecimento de domínio de uma ou mais áreas da
saúde, e já utilizam alguns sistemas de software deste domínio, solicita-se, já no início do curso, que
estes próprios alunos selecionem o software que será testado. O software pode ser selecionado por
duplas de alunos, ou individualmente, deve ser da área da saúde. A partir da escolha do software, os
alunos identificam um conjunto restrito de funcionalidades que serão utilizadas para a aplicação das
técnicas de teste apresentadas.
O professor tem a responsabilidade de revisar a escolha do software, a identificação do subconjunto de
funcionalidades e a aplicação das técnicas, com o cuidado de equilibrar a complexidade a partir da
proposta dos alunos. Caso a aplicação das técnicas seja realizada de forma muito simplificada, ou esteja
sendo dificultada, o professor deve sugerir a ampliação ou a redução do escopo de teste.
EXEMPLO RESOLVIDO
O aprofundamento no conhecimento das técnicas de teste caixa-preta e sua aplicação em exemplos de
software fornecidos pelo próprio proporcionam uma interação de conhecimento entre
professores/instrutores e alunos. Por um lado, os professores/instrutores conhecem bem as técnicas de
teste, incluindo suas características relacionadas à análise de domínio. Por outro lado, os alunos
conhecem bem o domínio e o contexto de uso do software em teste. A integração destes conhecimentos
faz com que seja possível a utilização efetiva de técnicas de teste para a avaliação de atributos de
sistemas de software específicos da área da saúde, gerando valor para todos os envolvidos.
CONTEXTO RESULTANTE
Como a escolha do software a ser testado, para a aplicação das técnicas de teste propostas no curso, é
realizada pelos próprios alunos, estes tendem a escolher sistemas de software nos quais têm interesse.
Este é um fator de motivação para a realização dos testes, que ajudam nesta investigação das
funcionalidades do software.
Outro fator de motivação é que as funcionalidades do escopo de teste também são escolhidas pelo
aluno. Assim este é envolvido na problematização da situação.
Caso haja problemas na definição do escopo de teste, seja por este ser simples ou complexo demais, há
intervenção do professor, que deve realizar avaliações graduais do conteúdo apresentado. Os alunos
tendem a entender a intervenção do professor, já que estão realizando os testes de forma ativa, e não
apenas aprendendo as técnicas de maneira conceitual.
Ejemplo de descripción textual completa:
@herbert_juliana | #testinguy
Equilibrando Complejidad, Tiempo y Utilidad en Escenarios de TestingEquilibrando Complejidad, Tiempo y Utilidad en Escenarios de TestingEquilibrando Complejidad, Tiempo y Utilidad en Escenarios de TestingEquilibrando Complejidad, Tiempo y Utilidad en Escenarios de Testing
• PROBLEMA: ¿Cómo definir escenarios de testing suficientemente simples
para ser utilizados en el curso y suficientemente complejos para
fácilmente escalar a problemas reales?
• SOLUCIÓN: Aproveche el hecho de que los alumnos tengan conocimiento
de dominio y los haga elegir el software y las funcionalidades que serán
sometidas al testing.
@herbert_juliana | #testinguy
¡No hay testing perfecto!¡No hay testing perfecto!¡No hay testing perfecto!¡No hay testing perfecto!
• PROBLEMA: ¿Cómo no desmotivar a los alumnos con la imposibilidad de
testing exhaustivo?
• SOLUCIÓN: Presentar un template de plan de testing, con la estrategia
basada en riesgos, para ser utilizado en el proceso de testing del
software elegido.
@herbert_juliana | #testinguy
¡No hay un mundo perfecto para el testing!¡No hay un mundo perfecto para el testing!¡No hay un mundo perfecto para el testing!¡No hay un mundo perfecto para el testing!
• PROBLEMA: ¿Cómo enseñar a los alumnos la importancia de planificar y
documentar el testing, incluso en proyectos con fuertes restricciones de
presupuesto y de plazos?
• SOLUCIÓN: Enseñe al alumno a hacer la planificación del testing utilizando
niveles y formas de cobertura, además de hacerlo evaluar proyectos de
sus compañeros de clase.
Nivel 1 – Camino feliz.
Nivel 2 – Condiciones negativas y alternativas.
Nivel 3 – Por ejemplo, otros idiomas y otras plataformas.
Testing por profundidad.
Testing por alcance.
@herbert_juliana | #testinguy
Defectos Similares en Situaciones SimilaresDefectos Similares en Situaciones SimilaresDefectos Similares en Situaciones SimilaresDefectos Similares en Situaciones Similares
• PROBLEMA: ¿Cómo enseñar a profesionales que no son desarrolladores,
ni testers, la idea de clusters de defectos?
• SOLUCIÓN: Oriente la construcción de un catálogo de defectos que ayude
al alumno a entender el comportamiento de los defectos y la forma en
que éstos se agrupan en el software.
@herbert_juliana | #testinguy
AgendaAgendaAgendaAgenda
I. Contexto del Trabajo
II. Testing de Software
III. Patterns
IV. Patterns Propuestos
V. Consideraciones Finales
@herbert_juliana | #testinguy
Consideraciones FinalesConsideraciones FinalesConsideraciones FinalesConsideraciones Finales
• Difusión de la importancia Y del conocimiento técnico del testing.
• Importancia del conocimiento de dominios complejos.
• Los patterns ayudan a documentar soluciones para problemas que
normalmente no son considerados por las técnicas y estrategias de
testing.
@herbert_juliana | #testinguy
Referencias UtilizadasReferencias UtilizadasReferencias UtilizadasReferencias Utilizadas
Alexander, C. et al. A Pattern Language: Towns, Buildings, Construction. Center for
Environmental Structure Series (Book 2). Oxford University Press. 1977. 1171 p.
Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software.
Addison-Wesley Professional. 1994. 416 p.
Herbert, J. Patterns to teach software testing to non-developers. SugarLoafPLoP '16
Proceedings of the 11th Latin-American Conference on Pattern Languages of
Programming – Proceedings. 2016.
Kaner, C. et al. Testing Computer Software – 2 ed. John Wiley & Sons. 1999. 496 p.
Kaner, C. et al. The Domain Testing Workbook. Context Driven Press. 2013. 488 p.
Myers, G. J. et al. The Art of Software Testing – 3 ed. Wiley. 2011. 240 p.
@herbert_juliana | #testinguy
Juliana Herbert
julianash@ufcspa.edu.br
@herbert_juliana
13 y 14 de mayo, 2019
testinguy.org | @testinguy | #testinguy
¿PREGUNTAS?
¡MUCHAS GRACIAS!

Más contenido relacionado

Similar a Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desarrollan Software

Aula tde 26 03-2015
Aula tde 26 03-2015Aula tde 26 03-2015
Aula tde 26 03-2015Aline Borin
 
TCC - Pós Engenharia de Software
TCC - Pós Engenharia de SoftwareTCC - Pós Engenharia de Software
TCC - Pós Engenharia de Softwarethiago.lenz
 
Tipos de softwares educativos
Tipos de softwares educativosTipos de softwares educativos
Tipos de softwares educativosIsaiana Riboli
 
Teste de usabilidade - Variantes do método básico
Teste de usabilidade - Variantes do método básicoTeste de usabilidade - Variantes do método básico
Teste de usabilidade - Variantes do método básicoLuiz Agner
 
Aula TDE dia 26 de Março
Aula TDE dia 26 de MarçoAula TDE dia 26 de Março
Aula TDE dia 26 de Marçonairafabieli
 
Forma de uso dos computadores em sala de aula
Forma de uso dos computadores em sala de aulaForma de uso dos computadores em sala de aula
Forma de uso dos computadores em sala de aulaLuciene Mozzer
 
Estudo da qualidade do ambiente virtual de aprendizagem moodle
Estudo da qualidade do ambiente virtual de aprendizagem moodleEstudo da qualidade do ambiente virtual de aprendizagem moodle
Estudo da qualidade do ambiente virtual de aprendizagem moodlecamilaflorentinofrancisco
 
TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...
TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...
TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...Felipe Nascimento
 
Logica programação
Logica programaçãoLogica programação
Logica programaçãoFIPA
 
Automação de Testes de Regressão - Selenium
Automação de Testes de Regressão - SeleniumAutomação de Testes de Regressão - Selenium
Automação de Testes de Regressão - SeleniumMaiele Ranzan
 
Diário de bordo da aula do dia 26 de março de 2015
Diário de bordo da aula do dia 26 de março de 2015Diário de bordo da aula do dia 26 de março de 2015
Diário de bordo da aula do dia 26 de março de 2015Cleocimara Fortes de Jesus
 
A aula de hoje dia 26 tecnologias
A aula de hoje dia 26 tecnologiasA aula de hoje dia 26 tecnologias
A aula de hoje dia 26 tecnologiasRaquel Stanga
 
Programa referencial de comunicação e tecnologias da informação
Programa  referencial de comunicação e tecnologias da informaçãoPrograma  referencial de comunicação e tecnologias da informação
Programa referencial de comunicação e tecnologias da informaçãosandra alfaiate
 
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Marvin Ferreira
 
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...Ricardo Rodrigues Nunes
 

Similar a Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desarrollan Software (20)

Aula tde 26 03-2015
Aula tde 26 03-2015Aula tde 26 03-2015
Aula tde 26 03-2015
 
TCC - Pós Engenharia de Software
TCC - Pós Engenharia de SoftwareTCC - Pós Engenharia de Software
TCC - Pós Engenharia de Software
 
Tipos de softwares educativos
Tipos de softwares educativosTipos de softwares educativos
Tipos de softwares educativos
 
Dissertação (12)
Dissertação (12)Dissertação (12)
Dissertação (12)
 
Teste de usabilidade - Variantes do método básico
Teste de usabilidade - Variantes do método básicoTeste de usabilidade - Variantes do método básico
Teste de usabilidade - Variantes do método básico
 
Aula TDE dia 26 de Março
Aula TDE dia 26 de MarçoAula TDE dia 26 de Março
Aula TDE dia 26 de Março
 
Forma de uso dos computadores em sala de aula
Forma de uso dos computadores em sala de aulaForma de uso dos computadores em sala de aula
Forma de uso dos computadores em sala de aula
 
Softwares Educacionais
Softwares EducacionaisSoftwares Educacionais
Softwares Educacionais
 
Estudo da qualidade do ambiente virtual de aprendizagem moodle
Estudo da qualidade do ambiente virtual de aprendizagem moodleEstudo da qualidade do ambiente virtual de aprendizagem moodle
Estudo da qualidade do ambiente virtual de aprendizagem moodle
 
Guia do-colaborador-m3-apl
Guia do-colaborador-m3-aplGuia do-colaborador-m3-apl
Guia do-colaborador-m3-apl
 
TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...
TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...
TCC - Utilização de Metodologias Ágeis para Adaptação de um Processo de Desen...
 
Logica programação
Logica programaçãoLogica programação
Logica programação
 
Automação de Testes de Regressão - Selenium
Automação de Testes de Regressão - SeleniumAutomação de Testes de Regressão - Selenium
Automação de Testes de Regressão - Selenium
 
Diário de bordo da aula do dia 26 de março de 2015
Diário de bordo da aula do dia 26 de março de 2015Diário de bordo da aula do dia 26 de março de 2015
Diário de bordo da aula do dia 26 de março de 2015
 
000401207
000401207000401207
000401207
 
A aula de hoje dia 26 tecnologias
A aula de hoje dia 26 tecnologiasA aula de hoje dia 26 tecnologias
A aula de hoje dia 26 tecnologias
 
Programa referencial de comunicação e tecnologias da informação
Programa  referencial de comunicação e tecnologias da informaçãoPrograma  referencial de comunicação e tecnologias da informação
Programa referencial de comunicação e tecnologias da informação
 
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
 
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
 
Resenha crítica Fuzzy
Resenha crítica FuzzyResenha crítica Fuzzy
Resenha crítica Fuzzy
 

Más de TestingUy

Webinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalWebinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalTestingUy
 
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...TestingUy
 
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...TestingUy
 
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingWebinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingTestingUy
 
TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingUy
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoTestingUy
 
Meetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youMeetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youTestingUy
 
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...TestingUy
 
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterMeetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterTestingUy
 
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterMeetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterTestingUy
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
 
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?TestingUy
 
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?TestingUy
 
Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!TestingUy
 
Charla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactCharla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactTestingUy
 
Charla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsCharla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsTestingUy
 
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelCharla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelTestingUy
 
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...TestingUy
 
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...TestingUy
 
Charla TestingUy 2019 - Testing y discapacidad
Charla TestingUy 2019 - Testing y discapacidadCharla TestingUy 2019 - Testing y discapacidad
Charla TestingUy 2019 - Testing y discapacidadTestingUy
 

Más de TestingUy (20)

Webinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalWebinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcional
 
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
 
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
 
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingWebinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
 
TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
 
Meetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youMeetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with you
 
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
 
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterMeetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
 
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterMeetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
 
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
 
Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!
 
Charla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactCharla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con Pact
 
Charla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsCharla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbots
 
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelCharla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
 
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
 
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
 
Charla TestingUy 2019 - Testing y discapacidad
Charla TestingUy 2019 - Testing y discapacidadCharla TestingUy 2019 - Testing y discapacidad
Charla TestingUy 2019 - Testing y discapacidad
 

Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desarrollan Software

  • 1. @herbert_juliana | #testinguy CHARLA Juliana Herbert julianash@ufcspa.edu.br @herbert_juliana 13 y 14 de mayo, 2019 testinguy.org @testinguy | #testinguy PATTERNS PARA ENSEÑAR TESTING A PERSONAS QUE NO DESARROLLAN SOFTWARE
  • 2. @herbert_juliana | #testinguy PresentaciónPresentaciónPresentaciónPresentación Creo, de todo el corazón, que el conocimiento debe serCreo, de todo el corazón, que el conocimiento debe serCreo, de todo el corazón, que el conocimiento debe serCreo, de todo el corazón, que el conocimiento debe ser compartido y jamáscompartido y jamáscompartido y jamáscompartido y jamás elitizadoelitizadoelitizadoelitizado y/o restricto a un grupo específicoy/o restricto a un grupo específicoy/o restricto a un grupo específicoy/o restricto a un grupo específico de personas.de personas.de personas.de personas. Investigadora Asociada PEDECIBA Informática
  • 3. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Contexto del Trabajo II. Testing de Software III. Patterns IV. Patterns Propuestos V. Consideraciones Finales
  • 4. @herbert_juliana | #testinguy Contexto del TrabajoContexto del TrabajoContexto del TrabajoContexto del Trabajo 16 carreras de graduación. 12 programas de posgraduación. ¡Todos en el área de la salud! www.ufcspa.edu.br
  • 5. @herbert_juliana | #testinguy Contexto del TrabajoContexto del TrabajoContexto del TrabajoContexto del Trabajo Personas con conocimiento sobre las técnicas de testing. Personas con conocimiento sobre el dominio (áreas de la salud). Cursos para la divulgación del área de testing – “Validación y Verificación de Software en el Área de la Salud”. Proyecto para la definición de riesgos y criticidades en varios dominios del área de la salud.
  • 6. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Contexto del Trabajo II. Testing de Software III. Patterns IV. Patterns Propuestos V. Consideraciones Finales
  • 7. @herbert_juliana | #testinguy Testing de SoftwareTesting de SoftwareTesting de SoftwareTesting de Software “Testing es el proceso de ejecutar el programa con la intención de encontrar errores.” Glendford Myers, 1979 “Una investigación técnica hecha para identificar información relacionada a la calidad del producto en testing.” Cem Kaner, 2004
  • 8. @herbert_juliana | #testinguy Testing de SoftwareTesting de SoftwareTesting de SoftwareTesting de Software Context-driven Testing
  • 9. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Contexto del Trabajo II. Testing de Software III. Patterns IV. Patterns Propuestos V. Consideraciones Finales
  • 11. @herbert_juliana | #testinguy Estructura de Patterns Utilizada en este TrabajoEstructura de Patterns Utilizada en este TrabajoEstructura de Patterns Utilizada en este TrabajoEstructura de Patterns Utilizada en este Trabajo 2004 2012 Nombre del Pattern Problema a ser Resuelto Contexto Ejemplo Motivacional Fuerzas Solución Ejemplo con Solución Aplicada Contexto Resultante Racional
  • 12. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Contexto del Trabajo II. Testing de Software III. Patterns IV. Patterns Propuestos V. Consideraciones Finales
  • 13. @herbert_juliana | #testinguy PatternsPatternsPatternsPatterns PropuestosPropuestosPropuestosPropuestos • Equilibrando Complejidad, Tiempo y Utilidad en Escenarios de Testing • ¡No hay testing perfecto! • ¡No hay un mundo perfecto para el testing! • Defectos Similares en Situaciones Similares
  • 14. @herbert_juliana | #testinguy PatternsPatternsPatternsPatterns PropuestosPropuestosPropuestosPropuestos NOME Equilibrando Complexidade, Tempo e Utilidade em Cenários de Teste PROBLEMA Para ensinar técnicas de teste de software caixa-preta, é importante caracterizar contextos através da especificação de cenários nos quais o teste será realizado. Estes cenários devem ser simples o suficiente para serem utilizados durante as aulas, e complexos o suficiente para mostrarem as características das práticas e técnicas de teste. Ao mesmo tempo, devem ser representativos o suficiente para que o aluno facilmente possa escalá-los a problemas reais. Como definir cenários de teste simples o suficiente para serem utilizados em aula e complexos o suficiente para facilmente serem escalados a problemas reais? CONTEXTO Cursos de técnicas de teste caixa-preta para profissionais sem conhecimento em desenvolvimento de software têm a duração de 30 horas. Aproximadamente 10 horas são utilizadas para a apresentação de conceitos sobre teste de software. Nas outras 20 horas, são realizados exercícios práticos aplicando os conceitos utilizados, a partir de contextos compostos por cenários de teste definidos a partir de software da área da saúde. EXEMPLO MOTIVACIONAL Alguns exemplos frequentemente utilizados na literatura e em cursos sobre técnicas de teste caixa-preta clássicas tais como particionamento em classes de equivalência e análise de valores limite são o de um programa que soma dois números inteiros e o de um programa que recebe três medidas de lados de um triângulo e gera como saída o tipo do triângulo (isósceles, escaleno ou equilátero). Profissionais da área da saúde que estão aprendendo estas técnicas dificilmente conseguem transpor os objetivos e a dinâmica de utilização das técnicas a partir destes exemplos simples para o contexto de sistemas de software críticos e complexos do domínio da saúde. Alguns exemplos: como aplicar as técnicas para um software realiza a análise de um mapeamento genético ou de um software que auxilia na anamnese em deficiências sensoriais, voltada a neurologia infantil? Por outro lado, professores ou instrutores que ensinam as técnicas de teste normalmente não possuem este conhecimento avançado em domínios tão específicos e complexos. FORÇAS É bastante frequente, na literatura, o uso de cenários de teste bastante simples. Ainda que sejam didáticos, muitas vezes a simplicidade acaba passando ao aluno a ideia de que as técnicas são também muito simples, não gerando valor em cenários da vida real. Por outro lado, se cenários de um contexto real de aplicação são utilizados, a complexidade inerente à situação torna a aplicação da técnica de teste recém aprendida muito difícil, o que também pode dar ao aluno a impressão de que as técnicas de teste não são aplicáveis em cenários da vida real. Também é importante considerar que as técnicas devem ser ensinadas de forma que os alunos não só aprendam a utilizá-las, mas também desenvolvam a capacidade para entender quando estas podem ser aplicadas com suas debilidades e seus pontos fortes, assim como para adaptá-las, caso necessário, para situações específicas, sem perder o valor da sua essência nem ir contra os princípios que nortearam a proposta da técnica. SOLUÇÃO Aproveite o fato de os alunos terem conhecimento de domínio e faça-os escolher o software e as funcionalidades que serão submetidas ao teste. Como os alunos do curso são profissionais que têm conhecimento de domínio de uma ou mais áreas da saúde, e já utilizam alguns sistemas de software deste domínio, solicita-se, já no início do curso, que estes próprios alunos selecionem o software que será testado. O software pode ser selecionado por duplas de alunos, ou individualmente, deve ser da área da saúde. A partir da escolha do software, os alunos identificam um conjunto restrito de funcionalidades que serão utilizadas para a aplicação das técnicas de teste apresentadas. O professor tem a responsabilidade de revisar a escolha do software, a identificação do subconjunto de funcionalidades e a aplicação das técnicas, com o cuidado de equilibrar a complexidade a partir da proposta dos alunos. Caso a aplicação das técnicas seja realizada de forma muito simplificada, ou esteja sendo dificultada, o professor deve sugerir a ampliação ou a redução do escopo de teste. EXEMPLO RESOLVIDO O aprofundamento no conhecimento das técnicas de teste caixa-preta e sua aplicação em exemplos de software fornecidos pelo próprio proporcionam uma interação de conhecimento entre professores/instrutores e alunos. Por um lado, os professores/instrutores conhecem bem as técnicas de teste, incluindo suas características relacionadas à análise de domínio. Por outro lado, os alunos conhecem bem o domínio e o contexto de uso do software em teste. A integração destes conhecimentos faz com que seja possível a utilização efetiva de técnicas de teste para a avaliação de atributos de sistemas de software específicos da área da saúde, gerando valor para todos os envolvidos. CONTEXTO RESULTANTE Como a escolha do software a ser testado, para a aplicação das técnicas de teste propostas no curso, é realizada pelos próprios alunos, estes tendem a escolher sistemas de software nos quais têm interesse. Este é um fator de motivação para a realização dos testes, que ajudam nesta investigação das funcionalidades do software. Outro fator de motivação é que as funcionalidades do escopo de teste também são escolhidas pelo aluno. Assim este é envolvido na problematização da situação. Caso haja problemas na definição do escopo de teste, seja por este ser simples ou complexo demais, há intervenção do professor, que deve realizar avaliações graduais do conteúdo apresentado. Os alunos tendem a entender a intervenção do professor, já que estão realizando os testes de forma ativa, e não apenas aprendendo as técnicas de maneira conceitual. Ejemplo de descripción textual completa:
  • 15. @herbert_juliana | #testinguy Equilibrando Complejidad, Tiempo y Utilidad en Escenarios de TestingEquilibrando Complejidad, Tiempo y Utilidad en Escenarios de TestingEquilibrando Complejidad, Tiempo y Utilidad en Escenarios de TestingEquilibrando Complejidad, Tiempo y Utilidad en Escenarios de Testing • PROBLEMA: ¿Cómo definir escenarios de testing suficientemente simples para ser utilizados en el curso y suficientemente complejos para fácilmente escalar a problemas reales? • SOLUCIÓN: Aproveche el hecho de que los alumnos tengan conocimiento de dominio y los haga elegir el software y las funcionalidades que serán sometidas al testing.
  • 16. @herbert_juliana | #testinguy ¡No hay testing perfecto!¡No hay testing perfecto!¡No hay testing perfecto!¡No hay testing perfecto! • PROBLEMA: ¿Cómo no desmotivar a los alumnos con la imposibilidad de testing exhaustivo? • SOLUCIÓN: Presentar un template de plan de testing, con la estrategia basada en riesgos, para ser utilizado en el proceso de testing del software elegido.
  • 17. @herbert_juliana | #testinguy ¡No hay un mundo perfecto para el testing!¡No hay un mundo perfecto para el testing!¡No hay un mundo perfecto para el testing!¡No hay un mundo perfecto para el testing! • PROBLEMA: ¿Cómo enseñar a los alumnos la importancia de planificar y documentar el testing, incluso en proyectos con fuertes restricciones de presupuesto y de plazos? • SOLUCIÓN: Enseñe al alumno a hacer la planificación del testing utilizando niveles y formas de cobertura, además de hacerlo evaluar proyectos de sus compañeros de clase. Nivel 1 – Camino feliz. Nivel 2 – Condiciones negativas y alternativas. Nivel 3 – Por ejemplo, otros idiomas y otras plataformas. Testing por profundidad. Testing por alcance.
  • 18. @herbert_juliana | #testinguy Defectos Similares en Situaciones SimilaresDefectos Similares en Situaciones SimilaresDefectos Similares en Situaciones SimilaresDefectos Similares en Situaciones Similares • PROBLEMA: ¿Cómo enseñar a profesionales que no son desarrolladores, ni testers, la idea de clusters de defectos? • SOLUCIÓN: Oriente la construcción de un catálogo de defectos que ayude al alumno a entender el comportamiento de los defectos y la forma en que éstos se agrupan en el software.
  • 19. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Contexto del Trabajo II. Testing de Software III. Patterns IV. Patterns Propuestos V. Consideraciones Finales
  • 20. @herbert_juliana | #testinguy Consideraciones FinalesConsideraciones FinalesConsideraciones FinalesConsideraciones Finales • Difusión de la importancia Y del conocimiento técnico del testing. • Importancia del conocimiento de dominios complejos. • Los patterns ayudan a documentar soluciones para problemas que normalmente no son considerados por las técnicas y estrategias de testing.
  • 21. @herbert_juliana | #testinguy Referencias UtilizadasReferencias UtilizadasReferencias UtilizadasReferencias Utilizadas Alexander, C. et al. A Pattern Language: Towns, Buildings, Construction. Center for Environmental Structure Series (Book 2). Oxford University Press. 1977. 1171 p. Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional. 1994. 416 p. Herbert, J. Patterns to teach software testing to non-developers. SugarLoafPLoP '16 Proceedings of the 11th Latin-American Conference on Pattern Languages of Programming – Proceedings. 2016. Kaner, C. et al. Testing Computer Software – 2 ed. John Wiley & Sons. 1999. 496 p. Kaner, C. et al. The Domain Testing Workbook. Context Driven Press. 2013. 488 p. Myers, G. J. et al. The Art of Software Testing – 3 ed. Wiley. 2011. 240 p.
  • 22. @herbert_juliana | #testinguy Juliana Herbert julianash@ufcspa.edu.br @herbert_juliana 13 y 14 de mayo, 2019 testinguy.org | @testinguy | #testinguy ¿PREGUNTAS? ¡MUCHAS GRACIAS!