Está en la página 1de 19

TEMA

PRUEBAS VALIDACIÓN Y VERIFICACIÓN DE SOFTWARE

ERIKA LIZETH BAQUERO MAYORGA

000114595

PRESENTADO A:

ALONSO GUEVARA PEREZ

CORPORACIÓN UNIVERSITARIA MINUTO DE DIOS

FACULTAD DE INGENIERÍA

BOGOTÁ

Herramientas de uso estático

Descripción lint

Herramienta que se emplea para identificar y corregir problemas de calidad


estructural posee la función que generar un mensaje descriptivo y un nivel de
gravedad para que se puedan identificar y hacer mejoras a las fallas, esta
herramienta comprueba los archivo origen, realiza búsqueda de errores en
precisión seguridad rendimiento accesibilidad.
Ejecución

Desde línea de comandos

Android estudio

Fingbugs

Herramienta de testing estatico que busca errores en código java tipo s de error
potenciales

PMD

es un analizador de código fuente. Encuentra fallas comunes de programación


como variables no utilizadas, bloques vacíos vacíos, creación innecesaria de
objetos, etc. Es compatible con Java, JavaScript, Salesforce.com Apex y
Visualforce, PLSQL, Apache Velocity, XML, XSL.

Además incluye CPD, el detector de copiar y pegar. CPD encuentra código


duplicado en Java, C, C ++, C #, Groovy, PHP, Ruby, Fortran, JavaScript, PLSQL,
Apache Velocity, Scala, Objective C, Matlab, Python, Go, Swift y Salesforce.com
Apex y Visualforce.

FXcop

Herramienta de análisis empleada para programación.net

Isolate code under test with Microsoft Fakes

Este testing maneja pruebas bajo control para el código maneja stubs y shims

El stubs reemplaza una clase con un pequeño sustituto que implementa la misma
interfaz. Para usar stubs, debe diseñar su aplicación de manera que cada
componente dependa solo de las interfaces y no de otros componentes.

Un shim modifica el código compilado de su aplicación en tiempo de ejecución


para que, en lugar de realizar una llamada a un método específico, ejecute el
código shim que proporciona su prueba.

JUnit

es un conjunto de clases que permite realizar la ejecución de clases Java de


manera controlada, para poder evaluar si el funcionamiento de cada uno de los
métodos de la clase se comporta como se espera. Es decir, en función de algún
valor de entrada se evalúa el valor de retorno esperado.

JUnit es también un medio de controlar las pruebas de regresión, necesarias


cuando una parte del código ha sido modificado y se desea ver que el nuevo
código cumple con los requerimientos anteriores y que no se ha alterado su
funcionalidad después de la nueva modificación.

Casos de prueba JUnit


Eclipse incorpora opciones para poder trabajar con JUnit desde él. Antes de nada,
debemos tener nuestro proyecto Java ya creado, o bien crearlo nuevo. Una vez
hecho esto, deberemos añadir la librería de JUnit al build path del proyecto. La
forma más rápida de hacer esto es pulsar con el botón derecho sobre nuestro
proyecto y seleccionar Java Build Path > Add Libraries ..., de forma que nos
aparecerá una ventana en la que podremos elegir la librería a añadir, siendo una
de ellas JUnit:

Una vez seleccionada la librería JUnit, nos aparecerá otra ventana en la que
podremos elegir tanto JUnit 3 como JUnit 4.
La principal diferencia entre ambas versiones es que en JUnit 3 los casos de
prueba se crean mediante herencia, y sobrescribiendo una serie de métodos,
mientras que en la nueva versión se hace mediante anotaciones, por lo que es
necesario utilizar Java 5 o posterior. También sería posible tener ambas librerías
en un mismo proyecto.

Vamos a centrarnos en el estudio de JUnit 4. Una vez añadida la librería, ya


podemos crear los casos de prueba de nuestro proyecto proyecto. Si creamos
un caso de prueba sin tener todavía añadida la librería JUnit, veremos que
Eclipse nos preguntará si queremos añadirla y si respondemos afirmativamente
la librería se añadirá automáticamente.

Integration Testing.

Intalacion de pluging para netbeans PMD

Una vez descargado, se procede a instalarlo en netbeans. Damos clic en Tools


→ Plugins y seleccionamos la pestaña Downloaded
Luego damos clic en install y esperamos a que el plugin se instale.
Finalmente, procedemos a actualizar el plugin y a resetear Netbeans para que
los cambios tengan efecto.

Manejo Plugin PMD EJEMPLO.

Para manejar el plugin, se procede a cargar un proyecto en Netbeans (en


nuestro caso usaremos el Proyecto_bases como código de prueba para el
plugin).
Damos clic derecho en Source Packages → Tools → Run PMD

Luego, se abre una pestaña PMD Output donde muestran las violaciones que el
código del proyecto contiene. En el ejemplo se encontraron un total de 271
violaciones.
Entre las violaciones más comunes se encontraron:

● Colocar métodos con más de un return.

● La no utilización de los parámetros de un método.

● No colocar las llaves de las sentencias.

● Duplicación de Strings.

System Testing

Herramientas con más uso:

Herramientas de gestión de pruebas

 Bugzilla Testopia

Testopia es un administrador de casos de prueba, el cual maneja


extensiones para interactuar con Bugzilla. Testopia está diseñado para ser
una herramienta genérica para el seguimiento de casos de prueba,
permitiendo a las organizaciones realizar las pruebas de software e integrar
reportes de defectos encontrados, así como el resultado del caso de prueba.

 FitNesse

Es un servidor web wiki , tiene una curva de entrada y aprendizaje muy


baja, lo que lo convierte en una excelente herramienta para colaborar, por
ejemplo, con las partes interesadas del negocio. Las páginas wiki creadas
en FitNesse se ejecutan como pruebas. Las especificaciones se pueden
probar contra la aplicación en sí, lo que resulta en un viaje de ida y vuelta
entre las especificaciones y la implementación.
 qaManager

qaManager es una aplicación basada en web independiente de la plataforma


para administrar proyectos de control de calidad de manera efectiva con una
instalación muy simple. qaManager tiene seguimiento de proyectos, gestión
de recursos, gestión TC, biblioteca en línea, alertas y más. Está desarrollado
por OpenXava.
 qaBook

 RTH (open source)


 Salome-tmf
 Squash TM
 Test Environment Toolkit
Test Environment Toolkit (TET) se proporciona como un producto de línea
de comandos no compatible y de código abierto. Es ampliamente utilizado
en muchas aplicaciones de prueba, incluido el programa de certificación
UNIX de The Open Group y el programa de certificación LSB de Free
Standards Group.

 TestLink
 Testitool
 XQual Studio
 Radi-testdir
 Data Generator

2) Herramientas para pruebas funcionales

 Selenium
 Soapui
 Watir (Pruebas de aplicaciones web en Ruby)
 WatiN (Pruebas de aplicaciones web en .Net)
 Capedit
 Canoo WebTest
 Solex
 Imprimatur
 SAMIE
 ITP
 WET
 WebInject

3) Herramientas para pruebas de carga y rendimiento

 FunkLoad
 FWPTT load testing
 loadUI
 jmeter

Herramientas comerciales:

1) Herramientas de gestión de pruebas

 HP Quality Center/ALM
 QA Complete
 qaBook
 T-Plan Professional
 SMARTS
 QAS.Test Case Studio
 PractiTest
 SpiraTest
 TestLog
 ApTest Manager
 Zephyr

2) Herramientas para pruebas funcionales

 QuickTest Pro
 Rational Robot
 Sahi
 SoapTest
 Test Complete
 QA Wizard
 Squish
 vTest
 Internet Macros

3) Herramientas para pruebas de carga y rendimiento

 HP LoadRunner
 LoadStorm
 NeoLoad
 WebLOAD Professional
 Forecast
 ANTS – Advanced .NET Testing System
 Webserver Stress Tool
 Load Impact

Herramientas de testing: el soporte para automatizar actividades de testing


3- System Testing:
Hacer búsquedas y referir por medio de sitios, paginas o documentos
académicos, científicos o de desarrollo que indiquen cual o cuales son las
herramientas mas utilizadas para el Testing de Sistema.

1. RANOREX STUDIO: herramienta de pruebas de de escritorio para entornos


web y móviles:
Características principales:
 Identificación fiable de objetos, incluso para elementos web con
identificadoreses dinámicos.
 Repositorio de objetos compartibles.
 Módulos de código reutilizables para reducir el mantenimiento de
pruebas.
 Pruebas entre navegadores y multiplataforma
 Pruebe en paralelo o distribuya en una cuadrícula de selenio con
Selenium WebDriver incorporado.

2. TestComplete es la principal herramienta de pruebas de automatización
para aplicaciones de escritorio, móviles y web. Con TestComplete, puede
crear y ejecutar pruebas de interfaz de usuario funcionales a través de
sólidas capacidades de grabación y reproducción o mediante scripts en sus
idiomas favoritos, incluidos Python, JavaScript, VBScript y más.
3. QMetry Automation Studio(QAS) es una herramienta de
automatización de software líder basada en Eclipse IDE y los principales
marcos de código abierto, Selenium y Appium, de igual manera aporta
estructura, eficiencia y reutilización a los esfuerzos de automatización,
permitiendo crear escrips para facilitar la realización de las pruebas de
automatizacion.

4. Worksoft ofrece la plataforma de automatización continua Agile-plus-


DevOps más importante de la industria para aplicaciones empresariales
complejas; Considerado el "estándar de oro" para probar aplicaciones
empresariales SAP y no SAP, Worksoft Certify ofrece un soporte
inigualable para aplicaciones web y en la nube con optimizaciones
preconstruidas o plantillas prediseñadas para más de 250 aplicaciones web
y en la nube de uso común.
Características principales:
 Enfoque único y probado impulsado por el negocio y experiencia del
cliente.
 Capacidad para probar procesos empresariales complejos de extremo a
extremo para entornos de aplicaciones empaquetados y combinados
 La solución sin código que se puede aprovechar en todos los tipos de
usuario para garantizar la excelencia de los procesos empresariales para
aplicaciones de misión crítica
 Los principales SI del mundo han incorporado la automatización de
Worksoft en sus prácticas de pruebas de SAP
 Capacidad para admitir prácticas de pruebas de Agile-plus-DevOps
 Capacidades de documentación y descubrimiento automatizados
independientes
 Capacidades avanzadas de reconocimiento de objetos para SAP Fiori y
lanzamiento rápido de actualizaciones de versiones

5. ZeuZ Automation Solutionz es un sólido marco de automatización de


pruebas para aplicaciones web, móviles, de escritorio, de API y en la nube,
es una herramienta todo en uno sin script, fácil de usar, que permite a los
evaluadores crear flujos de trabajo complejos en todas las plataformas en
un solo paso. Admite pruebas continuas y se integra con herramientas de
CI/CD como JIRA, GIT, Jenkins, TeamCity y muchas más.
Características principales:
 Curva de aprendizaje baja, 100% sin script, compatible con IA.
 Una sola prueba puede cubrir todas o es una combinación de
aplicaciones web, móviles, de escritorio, API y en la nube.
 CI/CD listo, es decir, integrar con sus herramientas de DevOps favoritas.
 Informes y notificaciones enriquecidos, con capturas de pantalla y
registros.
 De extremo a extremo: administración manual de pruebas, errores,
requisitos y características.
 Herramientas rápidas de solución de problemas y depuración.
 Altamente personalizable con código personalizado y bibliotecas.

6. Unified Functional Testing (UFT) proporcionada por Hewlett-Packard


Enterprise es uno de los mejores software de pruebas de automatización
para pruebas funcionales, anteriormente se conocía como QuickTest
Professional (QTP). Reúne a desarrolladores y probadores que se unen
bajo un mismo paraguas y proporciona soluciones de pruebas de
automatización de alta calidad por lo cual hace que las pruebas
funcionales sean menos complejas y rentables.
Sus principales características:
 Incluyen compatibilidad entre navegadores y multiplataforma
 Pruebas distribuidas optimizadas
 Múltiples soluciones de pruebas
 Reconocimiento de objetos basado en imágenes y lienzo, flujos de
pruebas visuales.
 Es una herramienta con licenciamiento pago.

Referencias:
https://www.softwaretestinghelp.com/top-20-automation-testing-tools/
https://www.qasymphony.com/blog/100-plus-best-software-testing-tools/
https://www.cigniti.com/blog/list-of-top-100-software-testing-tools/

4- Complexity Analysis

Hacer búsquedas y referir por medio de sitios, paginas o documentos


académicos, científicos o de desarrollo que indiquen cual o cuales son las
herramientas más utilizadas para Análisis de Complejidad.

CyVis recopila datos de archivos de clase java o jar. Una vez recopilados los
datos sin procesar, se obtienen ciertas métricas como el número de líneas,
instrucciones, métodos, clases y paquetes. También se deducen otras métricas
como la complejidad ciclomática, una vez recopiladas las métricas, la
información estadística se puede ver como gráficos, gráficos y tablas. Se ha dado
mucha importancia a cómo se muestra la información en los gráficos. Se dibujan
de tal manera, que el usuario inmediatamente sabe dónde algo podría estar mal
o ineficiente en su software.

PhpMetrics: es una herramienta diseñada para analizar codigo PHP con el fin
de poder identificar la complejidad del mismo, puede generar informes sobre
la calidad, complejidad y eficiencia de un código fuente.

5- Standards and Guidelines

 SONAR: Una herramienta de software libre y gratuita que permite


gestionar la calidad del código fuente; Al instalarla podremos recopilar,
analizar, y visualizar métricas del código fuente. Sonar es básicamente
la fusión de las siguientes herramientas Checkstyle y PMD, Findbugs,
Clover y Cobertura, entro otras, recopilando las mejores características
de cada una, por otro lado realiza un histórico de todas las métricas del
proyecto. Permite visualizar informes con resúmenes de las métricas.
algunos de los códigos fuente que analiza son ABAP, C, Cobol, C#,
Delphi/Pascal, Flex/ActionScript, Groovy, JavaScript, Natural, PHP,
PL/SQL, Visual Basic 6, Web y XML. La licencia es: LGPL
URL oficial: http://www.sonarsource.org.

 Google CodePro Analytix. Otra de las herramientas de calidad


software, ofrece un entorno para evaluación de código, métricas, análisis
de dependencias, cobertura de código, generación de Test unitarios se
encuentra disponible como plugin de Eclipse.
URL oficial:
http://code.google.com/intl/es-
ES/javadevtools/codepro/doc/index.html
https://developers.google.com/java-dev-tools/codepro/doc/

 Simian LITE software. Herramienta para detectar código duplicado la


compilacion y la sintaxis del mismo en desarrollos realizados con los
lenguajes: Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML y
Visual Basic, La licencia es libre si su uso está destinado a proyectos
OpenSource.
URL oficial: https://www.bsiusa.com/software/simian_lite/overview.php

6. Data-Flow Analysis
Navegar el siguiente sitio y colocar tres enlaces y su descripción al Análisis de
Flujo de Datos.
 SCAVis: es un entorno para el cálculo científico, el análisis de datos y la
visualización de datos para científicos, ingenieros y estudiantes, este
software es totalmente multiplataforma (100% Java) e integrado con
Java y una serie de lenguajes de scripting tales como Jython (Python),
Groovy, JRuby, BeanShell. Se especializa para realizar pruebas
estadísticas, minería de datos, cálculos numéricos, minimización de
funciones, álgebra lineal, sistemas de resolución de ecuaciones lineales y
diferenciales de igual manera también están disponibles la regresión
lineal, no lineal y simbólica. Se admiten elementos de cálculos
simbólicos mediante secuencias de comandos Octave/Matlab.
URL oficial: https://datamelt.org/
 Apache Spark: La característica más destacable de esta herramienta de
Big Data es su velocidad, siendo 100 veces más rápida que Hadoop.
Spark analiza datos por lotes y también en tiempo real, y permite la
creación de aplicaciones en diferentes lenguajes: Java, Python, R y
Scala, Apache Spark es un sistema de computación en clúster rápido y
de uso general, proporciona API de alto nivel en Java, Scala, Python y R,
y un motor optimizado que admite gráficos de ejecución general, por
otro lado es compatible con un amplio conjunto de herramientas de nivel
superior, como Spark SQL para SQL y procesamiento de datos
estructurados, MLlib para aprendizaje automático, GraphX para el
procesamiento de gráficos y Spark Streaming.
URL oficial: https://spark.apache.org/docs/latest/
 Apache Drill: Drill es un motor de consultaSQL de código abierto
Apache para la exploración de Big Data. Drill está diseñado desde cero
para admitir análisis de alto rendimiento en los datos semiestructurados
y en rápida evolución procedentes de aplicaciones modernas de Big
Data, al tiempo que proporciona la familiaridad y el ecosistema de ANSI
SQL, el lenguaje de consulta estándar de la industria. Drill proporciona
integración plug-and-play con las implementaciones existentes de
Apache Hive y Apache HBase.
URL oficial: https://drill.apache.org/docs/drill-introduction/

7- Boundary Value Analysis


Analizar como aplica el siguiente sitio al Análisis de Valores Límites
Fake Name Generator
https://www.fakenamegenerator.com

RTA: La técnica de valores limites que emplea este generador de avatares,


debe ser aplicada una serie de características propias a una región y genero
tales como nomenclaturas para los números de teléfono, ubicaciones
geográficas de acuerdo a la ciudad escogida, entre otras mas, dichas
características deben ser alojadas en bases de datos relacionadas que al
momento de diligenciar el formulario y realizar la consulta genera relaciones
entre las tablas limitando los valores de acuerdo a lo establecido como valores
principales; analizando el formulario las bases principales y que determina los
limites deben ser los valores preestablecidos en las casillas como género,
conjunto de nombres y país, estos datos son los que utiliza el software para
determinar las relaciones adecuadas entre las tablas y de esta forma generar
la identidad ficticia, es por ello que los nombres generados a simple vista no
tienen una coherencia estética.

8. State Transition Diagrams


Navegar el siguiente sitio y colocar tres enlaces y su descripción al tema de
Diagramas de Transición
de estados.
State Machine Diagrams
https://www.uml-diagrams.org/state-machine-diagrams.html

 CACOO: es una aplicación basada en la nube, es decir, tu equipo puede


colaborar desde cualquier lugar con una conexión wi-fi al internet.
Juntos pueden crear, editar y comentar en los diagramas en tiempo real,
visualizar y documentar cada paso en el ciclo de vida del proyecto con
esta aplicación es posible la interacción con el diagrama en tiempo real
para mejorar su análisis y comprensión.
URL: https://cacoo.com/es/features

 PlantUML: Una de sus ventajas es que se puede integrar con una gran
cantidad de aplicaciones lo cual lo hace muy bursátil para su uso de
forma que dibuja en el momento en el que escribes. También se puede
integrar en IDEs, como eclipse, en los que por medio de anotaciones se
pueden acompañar diagramas dentro de una clase java.
URL: https://plantuml.com/es/
 Open ModelSphere: es una herramienta de modelado de datos,
procesos y UML escrita en Java y distribuida como software libre
bajo la licencia GPL. Proporciona compatibilidad con la ingeniería
directa y inversa entre UML y esquemas relacionales.
URL: http://www.modelsphere.com/org/index.html

9- Orthogonal Array
Buscar tres opciones en línea de herramientas para Arreglos Ortogonales,
colocar los enlaces de descarga de estos sitios. Debe hacerse una descripción
de su uso.

DEVELVE: Es una herramienta de corporativa la cual cuenta con una versión


gratuita, esta herramienta permite el análisis de matrices ortogonales
construidas con una fracción de una matriz factorial completa pero mantiene la
ortogonalidad entre los factores. Los factores son independientes entre sí y en
equilibrio. Debido a esto, los factores se pueden evaluar independientemente
unos de otros. Estas matrices se utilizan a menudo en una configuración de
prueba DOE. Las interacciones no se incluyen en la matriz, pero la matriz se
puede construir para que sea posible (consulte Interacciones).
URL: https://develve.net/Orthogonal%20Array.html

10- Classification Trees


Buscar tres opciones en línea de herramientas para Arboles de Clasificación,
colocar los enlaces de descarga de estos sitios. Debe hacerse una descripción
de su uso.

scikit-learn 0.22.2: Los árboles de decisión (DT) son un método de


aprendizaje supervisado no paramétrico utilizado para la clasificación y la
regresión. El objetivo es crear un modelo que predice el valor de una variable
de destino aprendiendo reglas de decisión simples deduzcas de las entidades
de datos.
Por ejemplo, en el ejemplo siguiente, los árboles de decisión aprenden de los
datos para aproximar una curva sinusoidal con un conjunto de reglas de
decisión if-then-else. Cuanto más profundo sea el árbol, más complejas son las
reglas de decisión y el modelo más fino.
DecisionTreeClassifier es una clase capaz de realizar la clasificación de varias
clases en un conjunto de datos.
Al igual que con otros clasificadores, DecisionTreeClassifier toma como entrada
dos matrices: una matriz X, dispersa o densa, de tamaño que contiene los
ejemplos de entrenamiento, y una matriz Y de valores enteros, size , que
contiene las etiquetas de clase para los ejemplos de
entrenamiento:[n_samples, n_features][n_samples]

URL: https://scikit-learn.org/stable/install.html

11- Selenium IDE

- Generar un ejemplo utilizando Selenium


- Características y usos de la herramienta.

Barra para agregar la URL Barra de herramientas


del proyecto a analizar

Editor donde se ejecutarán


Panel donde se verán los las pruebas a realizar
casos de prueba

Panel donde se verán los


logs generados durante el
análisis

También podría gustarte