Testing de aseguramiento de calidad de sistemas digitales 2018-07-19T11:58:23+10:00

Testing de aseguramiento de calidad de sistemas digitales

Introducción

iTech Labs ha estado realizando pruebas de control de calidad para sistemas en línea durante muchos años para clientes de todo el mundo. Nuestras pruebas de control de calidad están destinadas a mejorar el testing interno de garantía de calidad del proveedor del software, el testing de aceptación del usuario del software, el testing de aceptación del usuario del cliente y/o el testing de certificación previa.

Estos servicios de testing de software rentables son ofrecidos por nuestros laboratorios de prueba de sofware en Australia, Europa y Asia.

Testing de garantía de calidad/Alcance de testing de aceptación de usuario de software

Este testing de garantía de calidad de software se lleva a cabo contra especificaciones o contra scripts de prueba proporcionados por el proveedor de software o el usuario final. Nuestro testing de garantía de calidad de software normalmente incluirá lo siguiente: facilidad de uso, confiabilidad, rendimiento, interrupciones, emulaciones, simulaciones y más, según sea necesario. El objetivo de nuestro Testing de garantía de calidad/Testing de aceptación de usuarios de software no solo cumple con las especificaciones, sino que también cumple con los requisitos comerciales del cliente.

Alcance de Testing previo a la certificación

El testing de precertificación se lleva a cabo principalmente en comparación con los estándares aplicables. Sin embargo, nuestro testing de software también incluirá: especificaciones, interrupciones, emulaciones, simulaciones y más según sea necesario. El objetivo de nuestro testing de precertificación es garantizar que el software esté preparado para el cumplimiento normativo, reduciendo así el tiempo y el costo que implican el posterior testing de cumplimiento del software.

Nuestro testing de software incluirán cualquier combinación de lo siguiente según sea necesario:

  • Testing de la unidad
  • Testing funcional
  • Testing de regresión
  • Testing de emulación
  • Testing de simulación
  • Testing de integración
  • Testing de rendimiento
  • Evaluaciones matemáticas/de estrategia
  • Evaluación de seguridad de aplicaciones
  • Testing de compatibilidad del navegador y sistema operativo
  • Testing móvil (iOS y Android)
  • Revisión del código fuente
  • Revisión de la documentación
  • Generación de scripts de prueba

Para obtener más información sobre el testing de control de calidad, visite nuestro sitio de control de calidad: www.itechqalabs.com

El Testing de prueba unitario asegura que encontremos problemas existentes al principio del ciclo de desarrollo. El objetivo del Testing unitario es aislar cada parte del programa y mostrar que las partes individuales son correctas. La detección temprana de errores y problemas de software garantiza que no se les dé la oportunidad de progresar e incrustar más profundamente en su programa. Esto le ahorra mayores pruebas e inversiones de desarrollo en el futuro, tanto de tiempo como de dinero. En el Testing unitario, cada módulo de software, junto con los datos de control asociados, los procedimientos de uso y los procedimientos operativos, se prueban para determinar si son aptos para su uso. También utilizamos sustitutos como trozos de métodos, simulacros de objetos y arneses de prueba para ayudar a probar un módulo de forma aislada.

Después del Testing unitario, se realiza el Testing de Regresión después de que se hayan corregido los errores, y el Testing de Integración después de la finalización exitosa del Testing unitario.

El Testing funcional se basa en las especificaciones y/o regulaciones gubernamentales aplicables. El Testing funcional ejerce la lógica del software para producir los resultados esperados para varias entradas, o simplemente, asegura que su software haga lo que se supone que debe hacer.

El Testing Funcional típicamente involucra lo siguiente:

  • Identificación de las regulaciones gubernamentales aplicables con que se espera que el software cumpla
  • Identificación de todas las funciones que se espera que el software realice
  • Creación de datos de entrada y determinación de salida
  • La ejecución de casos de prueba
  • Comparación de los resultados reales y esperados
  • Comprobación de si la aplicación funciona como se esperaba

El Testing funcional no implica probar una función o método: nuestro Testing funcional es aún más exhaustivo y prueba una porción de la funcionalidad de todo el sistema (también conocida como testing integral).

El Testing de integración se realizan para exponer cualquier defecto en las interfaces de su software, así como cualquier defecto en las interacciones entre los módulos en el sistema. El Testing de integración se lleva a cabo después de que se completen el Testing de la unidad.

Durante el Testing de integración, se ejercen todos los módulos y sus interfaces, y los casos de éxito y error se simulan a través de los parámetros apropiados y las entradas de datos. Se prueba el uso simulado de las áreas de datos compartidas y la comunicación entre procesos, y los subsistemas individuales se ejercen a través de sus interfaces de entrada.

El Testing de rendimiento determina cómo funciona su sistema en términos de capacidad de respuesta y estabilidad, bajo una carga de trabajo particular. También puede servir para medir, validar o verificar otros atributos del sistema, como escalabilidad, confiabilidad y uso de recursos. Tenemos años de experiencia en Testing de rendimiento para garantizar que su software se ofrezca a los clientes con el mayor nivel de calidad posible.

Testing de carga
El testing de carga es la forma más simple del Testing de rendimiento. Por lo general, se realiza un Test de carga para comprender el comportamiento de su sistema con una carga esperada. Esta carga podría ser el número simultáneo esperado de los usuarios de la aplicación, realizando un número específico de transacciones dentro de la duración establecida. Si también se monitorean la base de datos y el servidor de aplicaciones, esta prueba puede indicar cuellos de botella en el software de la aplicación.

Testing de estrés
El testing de estrés se usa normalmente para comprender los límites superiores de la capacidad dentro de su sistema. Esta prueba se realiza con el fin de determinar la solidez de su software bajo una carga extrema y ayuda a determinar si su sistema funcionará adecuadamente si la carga actual supera con creces el máximo esperado.

Los Tests de compatibilidad de navegador y sistema operativo se llevan a cabo en las PC y los dispositivos móviles según sea necesario, para garantizar que su software funcione sin problemas y profesionalmente en todos los dispositivos relevantes. La compatibilidad con el navegador y el sistema operativo se prueba en todas las combinaciones de OS y navegadores requeridas.  Solo se realizan pruebas relacionadas con el front-end durante esta etapa.

Tenemos muchos años de experiencia probando diversas configuraciones de sistemas operativos y navegadores en PC y dispositivos móviles, y contamos con todo el equipo necesario para probar en la mayoría de los dispositivos, con el más alto nivel de precisión. Nuestro Testing de compatibilidad de navegador y sistema operativo también se puede adaptar para cumplir con sus requisitos individuales.

El testing de seguridad abarca todas las medidas tomadas a lo largo del ciclo de vida del código, para evitar lagunas en la política de seguridad de su software o cualquier vulnerabilidad del sistema subyacente. Estos pueden haber surgido a través de defectos en el diseño, desarrollo, implementación, actualización o mantenimiento de la aplicación, y son increíblemente fáciles de pasar por alto a través de los ojos internos o sin experiencia.

Las amenazas de seguridad de aplicaciones comunes se dan a continuación:

Categoría Amenazas/Ataques
Validación de entrada Desbordamiento de búfer; guiones entre sitios; Inyección SQL; canonicalización
Manipulación de software El atacante modifica el comportamiento en tiempo de ejecución de una aplicación existente para realizar acciones no autorizadas; explotado a través de parcheo binario, sustitución de código o extensión de código
Autenticación Escuchas en la red; ataque de fuerza bruta; ataques de diccionario; reproducción de cookies; robo de credenciales
Autorización Elevación de privilegios; divulgación de datos confidenciales; manipulación de datos; ataques de seducción
Gestión de configuración Acceso no autorizado a las interfaces de administración; acceso no autorizado a tiendas de configuración; recuperación de datos de configuración de texto claro; falta de responsabilidad individual; cuentas de proceso y servicio con privilegios excesivos
Información sensible Acceda al código o a los datos sensibles en el almacenamiento; escuchas en la red; manipulación de código/datos
Gestión de sesiones Secuestro de sesión; reproducción de sesión; ataque por desconocido
Criptografía Pobre generación de claves o administración de claves; cifrado débil o personalizado
Manipulación de parámetros Manipulación de cadena de consultas; manipulación de campo de forma; manipulación de cookies; manipulación de encabezado HTTP
Gestión de excepciones Divulgación de información; negación de servicio
Auditoría y registro El usuario niega haber realizado una operación; el atacante lanza una aplicación sin rastreo; el atacante cubre sus huellas

Las técnicas de testing de seguridad buscan vulnerabilidades o agujeros de seguridad en las aplicaciones. Estas vulnerabilidades dejan las aplicaciones abiertas a la explotación.

Las herramientas automatizadas asociadas con la detección de seguridad son: escáneres de vulnerabilidad, herramientas de prueba de penetración y herramientas de análisis de código.

El testing de regresión busca descubrir cualquier error de software en los módulos existentes de su sistema, después de que se hayan realizado cambios como mejoras, parches o cambios de configuración en un módulo relacionado. El propósito del testing de regresión es garantizar que los cambios de software no hayan introducido ningún nuevo error en los módulos relacionados de su software.

El testing de regresión se realiza para probar un sistema de manera eficiente, al seleccionar sistemáticamente el conjunto mínimo de pruebas apropiado, en lugar de volver a ejecutar pruebas completas previamente completadas. Esto le ahorra tiempo y dinero.

Las pruebas de regresión pueden realizarse manualmente o utilizando herramientas automatizadas.

En muchas aplicaciones críticas con supervisión reguladora, el código crítico debe revisarse de forma independiente y luego compilarse bajo la supervisión de un laboratorio de pruebas independiente. La Revisión del código fuente generalmente implica el uso de valores de entrada, lógica/ parámetros que determinan los valores de salida y la búsqueda de caballos de Troya y códigos maliciosos. Al igual que con la mayoría de los aspectos de nuestro servicio, las Revisiones de Código Fuente se pueden adaptar para cumplir con sus requisitos individuales. Ofrecemos análisis de software manuales y automatizados.

Nuestros consultores tienen una enorme experiencia en la revisión de códigos críticos y la realización de construcciones supervisadas remotas.