Desafío Individual

PRUEBAS DE SOFTWARE

Las pruebas son el único instrumento que puede determinar la calidad de un producto software, es decir, es el único método por el que se puede asegurar que un sistema software cumple con los requerimientos.

Se puede determinar una dependencia directa entre la calidad de un sistema y el valor del mismo, por lo tanto, las pruebas dotan de valor a los productos software.

CALIDAD

Se refiere a la capacidad que posee un objeto para satisfacer necesidades implícitas o explícitas según un parámetro, un cumplimiento de requisitos de cualidad. Calidad es un concepto subjetivo. La calidad está relacionada con las percepciones de cada individuo para comparar una cosa con cualquier otra de su misma especie, y diversos factores como la cultura, el producto o servicio, las necesidades y las expectativas influyen directamente en esta definición.

Calidad también se puede definir como:

 


      • Aptitud para el uso.
      • Satisfacción del cliente.
      • Conveniencia al uso o conveniencia al propósito.
      • Conformidad con los requisitos.
      • Un producto libre de defectos.
      • Capacidad para satisfacer las expectativas del consumidor.
      • El cumplimiento o superación de las expectativas del cliente a un costo que le represente valor.
      • Grado a la excelencia.
      • Cumplir necesidades del cliente
    • CALIDAD DE SOFTWARE

      El concepto de calidad del software juega un papel importante tanto para el desarrollo como para la aceptación del software. Se evalúan y utilizan varias características para evaluar la calidad del software.

      En primer lugar, es importante abordar el concepto de calidad del software, porque la palabra calidad proviene originalmente del latín y puede traducirse allí como “amabilidad y calidad”, “propiedad”, “habilidad” y “bondad”. Hoy en día, sin embargo, el término calidad suele tener una connotación positiva.

      Calidad de software según ISO 9126

      La definición de la calidad del software puede basarse en varias características, este estándar no solo define las diversas características de la calidad del software, sino que también proporciona una buena definición de la calidad en sí misma:

      “El término calidad de software se entiende como la totalidad de las características y propiedades de un producto de software que deben relacionarse con su idoneidad para cumplir con requisitos específicos y previamente definidos”

      Características importantes de la calidad del software

          • Funcionalidad
          • Fiabilidad
          • Eficiencia
          • Usabilidad
          • Transferibilidad
          • Posibilidad de cambiar

      PRUEBAS DE SOFTWARE

      Las pruebas de software (software testing en inglés) son los procesos que permiten verificar y revelar la calidad de un producto software antes de su puesta en marcha. Son una serie de actividades que se realizan con el propósito de encontrar los posibles fallos de implementación, calidad o usabilidad de un programa u ordenador; probando el comportamiento del mismo.

      La prueba de software es un elemento crítico para la garantía del correcto funcionamiento del software. Entre sus objetivos están:

        1. Detectar defectos en el software.
        2. Verificar la integración adecuada de los componentes.
        3. Verificar que todos los requisitos se han implementado correctamente.
        4. Identificar y asegurar que los defectos encontrados se han corregido antes de entregar el software al cliente.
        5. Diseñar casos de prueba que sistemáticamente saquen a la luz diferentes clases de errores, haciéndolo con la menor cantidad de tiempo y esfuerzo.

       

      Principios de las pruebas de software

      Las pruebas se rigen por una serie de principios, una buena comprensión de estos facilitará el posterior uso de los métodos en un efectivo diseño de casos de prueba. 

      • La prueba puede ser usada para mostrar la presencia de errores, pero nunca su ausencia.
      • La principal dificultad del proceso de prueba es decidir cuándo dejar de probar.
      • Evitar casos de pruebas no planificados, no reusables y triviales a menos que el programa sea verdaderamente sencillo.
      • Una parte necesaria de un caso de prueba es la definición del resultado esperado.
      • Los casos de pruebas tienen que ser escritos no solo para condiciones de entrada válidas y esperadas sino también para condiciones no válidas e inesperadas.
      • El número de errores sin descubrir es directamente proporcional al número de errores descubiertos.

      Estas leyes que definen básicamente la aplicación de las pruebas de software ayudan a refinar el producto de software a través de las etapas involucradas.

      Etapas involucradas en las pruebas de software:

      • Planificación: Identificar los requisitos para las pruebas. Desarrollar la estrategia de pruebas. Identificar los recursos necesarios para realizar las pruebas. Generar el Plan de pruebas.
      • Diseño: Desarrollo de las pruebas. Identificar y describir los casos de prueba.
      • Implementación: Establecer el entorno de prueba. Desarrollar las clases de prueba, los componentes de prueba y los datos de prueba.
      • Ejecución: Ejecutar los casos de prueba. Evaluar la ejecución del proceso de prueba. Verificar los resultados. Investigar los resultados no esperados. Registrar los defectos.
      • Evaluación: Evaluar la cobertura de los casos de prueba. Evaluar la cobertura del código. Analizar los defectos. Determinar si se han alcanzado los criterios de las pruebas. Crear los informes de evaluación de las pruebas.

      Importancia de las pruebas de Software 

      Las pruebas de software es una de las actividades más importantes y fundamentales en el desarrollo de un proyecto, ya que posibilita los procesos, métodos de trabajo y herramientas necesarias para garantizar la calidad de cualquier desarrollo. Sin embargo, hoy en día continuamos encontrándonos con problemas a la hora de comprender el testing de software como una inversión.

      Con el fin de poder detectar a tiempo cualquier error y garantizar que el producto cumple con todas las premisas establecidas, las pruebas de software debe existir en todas las fases de un proyecto: desde la definición de los requerimientos en cliente, pasando por las reuniones de seguimiento, hasta la entrega del producto final. Es más, un proyecto carente de este proceso en todas sus fases acaba generando un mayor coste económico y un mayor esfuerzo durante la fase de pruebas. 

      Tipos de pruebas

      La clasificación de las pruebas según la forma en que se ejecutan se clasifican en:

      Pruebas manuales

      Este tipo de prueba involucra realizar verificaciones sin usar herramientas de automatización. Es la más primitiva de todos los tipos de prueba y ayuda a encontrar errores en el sistema de forma muy puntual.

      Pruebas automáticas

      A diferencia de las pruebas manuales, para este tipo de pruebas, se usa determinados software para sistematizar las pruebas y obtener los resultados de las mismas. En estos casos es requerido tener un conocimiento más técnico para poder dar uso de las distintas herramientas de automatización.

      Por otra parte, las pruebas también se dividen en distintos niveles, que van desde probar módulos individuales hasta pruebas de todo el sistema en su conjunto. Los distintos niveles de pruebas tenemos:

      Pruebas unitarias

      Es la vía  de comprobar el correcto funcionamiento de un módulo de código. Esto nos permite asegurar que todos los módulos del sistema desarrollado funcionen correctamente por separado.

      Pruebas de Integración

      Si hemos visto que todo individualmente funciona correctamente, ¿por qué debería fallar cuando se une? Pues sí, puede fallar al unir módulo que por separado funcionan correctamente. Para evitar esto, existen las pruebas de integración, cuyo objetivo es seleccionar módulos, a los que se aplicó las pruebas unitarias, y construir una estructura de programa que determine el diseño.

      Pruebas de sistema

      Estas pruebas están más allá del alcance del proceso del software y no las realizan únicamente los ingenieros de software. Se comprueba también el nivel de seguridad del sistema, se hacen pruebas de resistencia que permiten saber como responderá el sistema a situaciones anormales de recursos y pruebas de recuperación y de rendimiento.

      Pruebas de aceptación

      La prueba de aceptación son realizadas por el usuario o cliente para determinar si puede ser aceptado o no, su objetivo es comprobar si el software está preparado y lo pueden utilizar para realizar las funciones y tareas para las que se diseñó.

      Podemos concluir que las pruebas de software tienen el objetivo principal de encontrar errores presentes en el mismo; así buscamos reducirlos y mejorar la calidad del software, haciéndolo más robusto frente a fallos.



      VALIDACIÓN Y VERIFICACIÓN

      Los términos de validación y verificación son usados en muchos campos, y comúnmente suelen ser confundidos, pero en realidad tiene actividades muy diferenciadas aunque se debe reconocer que hay cierta relación entre ambas actividades sí que hay.

      La validación la debemos entender cómo una actividad de evaluar un resultado final, comprobar que cumple con lo inicialmente acordado; y la verificación está más encaminada a comprobar los requisitos definidos por el usuario.

      VALIDACIÓN

      VERIFICACIÓN

      Sirven para facilitar la detección temprana y la corrección de posibles errores que se hayan cometido en el proceso de desarrollo.

      Responde a las preguntas: 

      • ¿El producto hace lo que el usuario quiere/necesita?
      • ¿Estamos construyendo el producto concreto?

      Responde a las preguntas: 

      • ¿Lo que hace el producto, lo hace bien?
      • ¿Estamos construyendo el producto correctamente?

      La validación es un proceso más general. Se debe asegurar que el software cumple las expectativas del cliente.

      Se comprueba que el sistema cumple los requerimientos funcionales y no funcionales que se le han especificado.

      Busca probar que el software hace lo que el usuario espera a diferencia de lo que se ha especificado.

      Se  pretende comprobar que el software está de acuerdo con su especificación.

Si estás preparado para aceptar el desafío, simplemente haz clic en el botón “IR AL DESAFÍO”. No hay un límite de tiempo establecido, confiamos plenamente en tu capacidad. Este desafío tiene como objetivo evaluar tu agilidad mental, por lo tanto, no te preocupes, estamos aquí para ayudarte a avanzar al siguiente nivel.

Abrir chat
1
Hola 👋 ¿Necesitas ayuda?
Hola 👋
¿En qué podemos ayudarte?