Wednesday 3 August 2016

BENEFICIOS Y DESAFÍOS DE LAS PRUEBAS AUTOMATIZADAS DE SOFTWARE

La agenda de software parecen siempre “realizable” en su comienzo, pero a medida que progresan lo deslizamiento ocurren típicamente. Una razón fundamental de esto es que la prueba de software esencial, incluyendo los requisitos de prueba, no comienza de forma simultánea con el desarrollo de código. Esta situación lleva a encontrar errores SHOWSTOPPER en el código o en el diseño final del ciclo de desarrollo acuerdo empresa de pruebas automatizadas de software. Éstos toman más tiempo para rectificar que si se hubieran encontrado más tempranamente.

PRUEBA TEMPRANA Y A MENUDO, DE FORMA AUTOMÁTICA

Empujar un producto inadecuadamente con el fin de cumplir con el programa no es una opción viable, ya sea que. Una percepción de mala calidad en el mercado va a permanecer mucho más tiempo que la decepción de una versión tarde que sea de una calidad decente.
Por lo tanto, las pruebas de software a fondo es un requisito clave para cualquier proyecto de software. Se deben comenzar temprano, y para asegurar la eficacia y eficiencia, deben ser pruebas automatizadas de software tanto como sea posible.

¿QUÉ SE PUEDE AUTOMATIZAR?

La automatización puede ser aplicada eficazmente a casi todos los aspectos del proceso de QA:
§  Unit tests dentro de los desarrolladores.
§  Control de funcionamiento de los componentes de software.
§  Las pruebas de software negativas que intentan forzar errores a través de las entradas no válidas.
§  Las pruebas de software de estrés para determinar la capacidad funcional del software y la plataforma.
§  Las pruebas de rendimiento para medir el cumplimiento de los requisitos del producto.
§  Las pruebas de UI / UX o la instrumentación para determinar el uso del software.
§  Las pruebas de regresión para detectar nuevos defectos en el código existente en cada nueva construcción.
§  Generación de casos y de script de pruebas de software para mejorar la cobertura de la prueba.

BENEFICIOS DE LAS PRUEBAS AUTOMATIZADAS DE SOFTWARE

Con respecto a la agenda de software, las pruebas automatizadas tienen una ventaja fundamental: se ahorra tiempo, lo que significa que reduce el riesgo de deslizamiento de lo programado, mejora la calidad y reduce los costos de corto y largo plazo. Cuanto mayor es el esfuerzo de automatización, las mayores las ventajas que se obtienen.

MÁS RÁPIDA GENERACIÓN DE CASOS DE PRUEBA Y UNA MEJOR COBERTURA

El desarrollo de casos de prueba es a menudo un proceso que consume tiempo se hace manualmente mediante la traducción de los requisitos de diseño y de código en scripts de prueba. La mayoría de casos de prueba pueden ser generados por las herramientas que utilizan anotaciones de código, análisis de ruta de ejecución, la aleatorización de las entradas o de generación de secuencia de comandos desde la grabación de las interacciones del usuario. Todos los métodos de generación de casos de prueba aumentan la cobertura de las pruebas de software.

MEJORA DE LA FIABILIDAD Y REPETITIVIDAD

Las pruebas automatizadas de software eliminan los errores que surgen de las pruebas de software que se ejecutan manualmente, tales como omisiones intencionales o no en los pasos de prueba, que pierden errores o que producen los que en realidad no existen. Cuando se detectan errores, por el bien de los desarrolladores, deben ser confiablemente repetibles.

HABILITACIÓN DE METODOLOGÍAS AGILE

La reducción de retardo temporal a lo largo del proceso de desarrollo de software es una característica esencial de la metodología agile. Cuanto más próximo en el tiempo que pueden existir los requisitos de, diseño, codificación y las pruebas, más rápido el desarrollo iterativo podrá tener lugar. Esto conduce a una mayor eficiencia en el trabajo entre todos los equipos que participan en la producción de software.

AHORRANDO DE TIEMPO EN EL PRÓXIMO PROYECTO

La capacidad de almacenar las pruebas en scripts o un código es no sólo un ahorro de tiempo para el proyecto actual. Estos se pueden reutilizar para la próxima revisión del producto o incluso para diferentes pero similares productos realizados más tarde.

LOS RETOS DE LA AUTOMATIZACIÓN DE PRUEBAS

La automatización no es ciertamente un sustituto de las prácticas de prueba pobres dentro de la organización. No se garantiza la inexistencia de fallos ni tampoco es una garantía de una versión la calidad del producto.
Si la automatización de pruebas de software es nueva para una organización, el departamento de QA tendrá obstáculos para aclarar:
§  Las expectativas poco realistas probable que existan con respecto a cuánto tiempo se guardará en el calendario de pruebas.
§  No cuesta tiempo y dinero para analizar, adquirir, aprender, utilizar y mantener las herramientas de pruebas automatizadas de software.
§  Un nuevo nivel de experiencia puede ser necesaria dentro del equipo de QA para escribir código de automatización.
§  El software de prueba es como cualquier software, eso tiene fallos y éstos deben ser tratados.
La automatización de pruebas puede requerir cálculo adicional e infraestructura de red.
La respuesta simple en apoyo de las pruebas automatizadas de software es que se ahorra tiempo. A pesar de los costos iníciales, una vez establecido, el retorno de la inversión es rápida. El personal y los desarrolladores se vuelven más eficaces y conscientes de la calidad en un entorno en el que ambos son capaces de colaborar de manera eficiente.



Tuesday 5 July 2016

METODOLOGÍA DE LAS PRUEBAS AUTOMATIZADAS DE LAS APLICACIONES

Los directores de proyectos de software y desarrolladores de software que crean aplicaciones de hoy en día se enfrentan al reto de hacerlo dentro de una agenda cada vez más pequeña y con recursos mínimos. Como parte de su intento de hacer más con menos, las organizaciones quieren probar el software adecuado, pero lo más rápido y detenidamente posible. Para lograr este objetivo, las organizaciones están recurriendo a las pruebas automatizadas.
Frente a esta realidad y al darse cuenta de que muchas pruebas de software no se pueden ejecutar de forma manual, como la simulación de 1.000 usuarios virtuales para las pruebas de volumen, los profesionales de software son la introducción de las pruebas automatizadas para sus proyectos. Sin embargo, estos profesionales de software no saben lo que implica en la introducción de una herramienta de prueba automatizada para un proyecto de software, y no pueden estar familiarizados con la amplitud de aplicación que las herramientas de pruebas automatizadas tienen hoy en día.

LA METODOLOGÍA DE PRUEBA AUTOMATIZADA (ATLM)/ THE AUTOMATED TEST LIFECYCLE METHODOLOGY (ATLM).

Al utilizar el enfoque sistemático descrito en el ATLM, las organizaciones pueden organizar y ejecutar las actividades de prueba de tal manera que se maximice la cobertura de la prueba dentro de los límites de los recursos de prueba de software. Esta metodología de ensayo estructurado implica un proceso de múltiples etapas, apoyando actividades detalladas e interrelacionadas que se requieren para introducir y utilizar una herramienta de prueba automatizada:
§  Desarrollar el diseño de pruebas de software.
§  Desarrollar y ejecutar los casos de pruebas de software.
§  Desarrollar y gestionar los datos de pruebas y el entorno de pruebas de software.
§  Documentar, rastrear y conseguir un archivo acerca de emisión/ informes de problemas.
Claramente, el énfasis en las pruebas automatizadas representa un cambio de paradigma para la industria del software. Este cambio no se trata simplemente de la aplicación de herramientas y el rendimiento de la automatización de pruebas. Más bien, eso envuelve todo el ciclo de vida de prueba y el ciclo de vida de desarrollo del sistema. La implementación de ATLM se lleva a cabo en paralelo con el ciclo de vida de desarrollo del sistema. Para los profesionales de software hacer un salto con éxito a las pruebas automatizadas, deben adoptar enfoques estructurados de la pruebas de software. El ATLM es revolucionario en el hecho de que se promulga un nuevo enfoque estructurado, construyendo bloques para todo el ciclo de pruebas de software, lo que permite a los profesionales de la prueba de software abordar las pruebas de software de una manera metódica y repetible.
El crecimiento de la capacidad de prueba automatizado se ha debido en gran parte a la creciente popularidad del ciclo de vida de desarrollo iterativo e incremental, una metodología de desarrollo de software que se centra en minimizar el calendario de desarrollo al tiempo que proporciona frecuencia, e incrementa construcciones de software. El objetivo de este desarrollo incremental e iterativa es involucrar al usuario y el equipo de pruebas de software en todo el diseño y el desarrollo de cada generación con el fin de perfeccionar el software; asegurando con ello que refleje más de cerca las necesidades y preferencias del usuario y resolviendo los aspectos de mayor riesgo de desarrollo en poco tiempo.

En este entorno de cambios continuos y adiciones al software a través de cada una de las versiones de software, pruebas de software, el mismo adquiere un carácter iterativo. Cada nuevo desarrollo se acompaña de un número considerable de nuevas pruebas de software, así como la reanudación de scripts de prueba existentes, al igual que existe la modificación relativa a los módulos de software publicados anteriormente. Dados los continuos cambios y adiciones a las aplicaciones de software, especialmente las aplicaciones Web, las pruebas de software automatizadas se convierten en un importante mecanismo de control para garantizar la precisión y la estabilidad del software a través de cada versión.
El ATLM, invocado para apoyar los esfuerzos de la prueba que requieren herramientas de pruebas automatizadas, e incorporan un proceso de varias etapas. La metodología es compatible con las actividades detalladas e interrelacionadas que son necesarias para decidir si adquirir una herramienta de prueba automatizada. La metodología incluye el proceso de cómo introducir y utilizar una herramienta de prueba automatizada, abarca el desarrollo de pruebas y diseño de la prueba, las direcciones de prueba de ejecución y la gestión. La metodología ATLM representa un enfoque estructurado, que representa un proceso con la cual se acerca y ejecuta la prueba. Este enfoque estructurado es necesario para ayudar a dirigir el equipo de pruebas a distancia a los errores comunes del programa de prueba:
§  Implementación del uso de una herramienta de prueba automatizada sin un proceso de pruebas de software en el lugar, lo que resulta en un no-repetible programa ad hoc y no medible programa de pruebas de software.
§  La implementación de un diseño de prueba de software sin seguir ningún estándar de diseño, lo que resulta en la creación de scripts de prueba de software que no son repetibles y por tanto no reutilizable para las creaciones incrementales de software.
§  El intento de automatizar el 100% de los requisitos de las pruebas de software, cuando los equipos de pruebas automatizadas desarrolladas internamente no son compatibles con la automatización de todas las pruebas requeridas.
§  Con la herramienta equivocada o el desarrollo de un demasiado elaborado instrumento de prueba.
§  Iniciando implementación de la herramienta de prueba demasiado tarde en el ciclo de vida de desarrollo de aplicaciones, no dejando tiempo suficiente para la configuración de la herramienta y el proceso de introducción a las herramientas de prueba (curva de aprendizaje).
El proceso de pruebas automatizadas comprende seis procesos o componentes primarios:
1.    Decisión para automatizar las pruebas
2.    Adquisición de herramienta de prueba
3.    Introducción de proceso de prueba automatizada de
4.    Planificación de prueba, Diseño y Desarrollo
5.    Ejecución y Gestión de las Pruebas.
6.    Revisión y Evaluación de Programas de Prueba.
Vamos a cubrir más acerca de estos componentes en el próximo artículo.


Thursday 3 March 2016

Errores comunes de seguridad en el desarrollo de aplicaciones web

¿Qué errores de seguridad no deben hacer nunca durante desarrollo de aplicaciones web? Para ayudar a responder esta pregunta, estamos recopilando consejos de algunos expertos de empresa de seguridad informática y una lista de todas las cosas a continuación.


  1. Desarrollo de sus propios métodos de seguridad

    Algunos desarrolladores hacen suposición errónea de que un algoritmo de cosecha propia para el método de autenticación en realidad hará más seguro. Después de todo, los hackers nunca lo han visto antes, así que tendrían más problemas en romperlo. Esto es incorrecto.
    Desarrollar su propio método de autenticación o métodos de entrada es un error porque usted hará errores que hacker descubrirá dice James Keley, un experto de pruebas de penetración.
    ¿Por qué son las librarías existentes son más seguras? Porque se ponen a pruebas de penetración constantemente por la comunidad de seguridad. Como tales, son menos propensos a incluir grandes agujeros de seguridad que una persona pueda pasar por alto.
  2. El acceso a la base de datos directamente con la información suministrada por el usuario
Al desarrollo de aplicaciones, en particular una aplicación web muchos desarrolladores no adecuadamente validan los datos que reciben de los usuarios. Este es un problema de sanidad de datos, ya que podría invalidar toda su base de datos, pero aún tiene mayores implicaciones de seguridad. Según consultores de empresa de seguridad informática, si no validen las entradas, los ataques de cross site scripting, inyección de SQL, desbordamiento de búfer y otros ataques comunes puedan suceder. Este es uno de los errores más comunes que se encuentran en cualquier aplicación web como los hackers pueden utilizar campos de entrada para inyectar código malicioso en su aplicación y acceder base de datos. Por supuesto, la mayoría de los usuarios nunca va a intentar nada malicioso, pero hay que acercarse a la entrada de datos con una mentalidad defensiva.
  1. Centrarse en los componentes y no el sistema completo
    Con grandes proyectos de desarrollo, donde varios desarrolladores trabajan en diferentes partes de una aplicación, hay una tendencia a centrarse en los componentes individuales en lugar de en el sistema completo. Cada parte puede ser segura, pero qué tan seguras estén juntas. Por lo tanto es importante comprobar la seguridad del sistema completo.
  2. Adición de seguridad en el desarrollo final
    Adición de seguridad en la fase final de su desarrollo de aplicaciones podría ser un problema. No es algo que simplemente puede añadir al término de desarrollo. Es una función de toda la arquitectura de aplicación según experiencia de expertos de servicios de pruebas de penetración.
  3. Permitiendo a los usuarios a crear contraseñas débiles
    Cada vez los hackers hackean una aplicación web y exponen las contraseñas de usuario, una cosa inmediatamente claro que los usuarios tienen horribles hábitos respecto a la seguridad. La contraseña más popular en la mayoría de instancias es 12345. Como desarrollador de aplicaciones web, no se puede permitir que los usuarios crean contraseñas débiles.

  4. El almacenamiento de contraseñas en texto plano
    El error más común los desarrolladores de aplicaciones web es no almacenar las credenciales de autenticación de forma cifrada en bases de datos. Las credenciales de autenticación deben ser almacenados de forma cifrada según consejos de expertos de pruebas de penetración.

¿Necesita ayuda para seguridad de aplicaciones web? Póngase en contacto con Webimprints, una empresa de seguridad informática para saber cómo podemos ayudarle.


Wednesday 20 January 2016

Errores que pueden hundir una investigación de forense cibernética

Es fácil ver cómo los servicios de auditoría informática (forense digital) utilizados durante una investigación de ataques cibernéticos son similares a los utilizados en la escena del crimen físico. En ambos casos, la evidencia debe ser asegurada y manejada adecuadamente, y deben tomar las fotografías o imágenes para capturar cómo la escena del crimen fue encontrada originalmente. Los expertos de empresa de seguridad de datos afirman que el analiza de tráfico de red y la aplicación puede revelar tanto como las huellas dactilares y manchas de sangre. Según expertos de servicios de auditoría informática, hay errores comunes que los detectives pueden hacer cuando investigan la escena del crimen. Evitar errores similares cuando hay un fallo de seguridad puede servir como guía para profesionales de forense que trabajan con empresa de seguridad de datos.


Error # 1: preservación de la escena del crimen inadecuada



Evaluar inmediatamente el estado de la escena del crimen, la definición de sus fronteras y limitar quién puede entrar todos son elementos importantes en la preservación de la escena del crimen.
Lo primero es lo primero: Los investigadores de servicios de auditoría informática deben evaluar la gravedad del ataque. ¿Qué información ha sido comprometida? ¿Cuánto tiempo ha sido el ataque pasando? Además, es importante evaluar qué evidencias son datos volátiles y qué información es de datos persistentes o no volátiles. Datos volátiles están destruidos cuando un sistema está apagado. Tenga cuidado de no cambiar metadatos de archivos al abrir, guardar o imprimir los archivos. Del mismo modo, tomar medidas para que los cachés no se cambien y los archivos temporales no se alteren.


Error # 2: Falta la única oportunidad para la imagen perfecta
Los detectives de empresas de seguridad de datos tienen una sola oportunidad de fotografiar una escena del crimen ininterrumpida durante su planteamiento inicial. Imagen forense es igualmente importante para descubrir la causa y remediar los ataques cibernéticos. Todos los datos del sistema deben ser capturados y retenidos en un dispositivo de almacenamiento independiente. Esto preserva el estado del sistema en el momento en que ocurrió el incidente, por lo que si se hacen cambios en el sistema después de que comience la investigación, la imagen exacta de la red se conserva para su análisis.

Error # 3: La falta de comunicación

En la escena del crimen física, la comunicación debe tener lugar entre el detective que investiga el juez de instrucción, el patólogo, los científicos del laboratorio del crimen y otros. Cada paso de la investigación requiere la comunicación entre varios grupos. Los expertos de  servicios de auditoría informática mencionan que la falta de comunicación podría conducir a problemas con la disposición de la investigación en una fecha posterior. Los forenses cibernéticos implican el delicado equilibrio de la comunicación rápida y frecuentemente con tomarse el tiempo necesario para descubrir los hechos. Proporcionar información demasiado rápido que luego resulta ser inexacta podría comprometer la credibilidad de la empresa de seguridad de datos y su capacidad para gestionar eficazmente la brecha.

Error # 4: No tener planes, políticas y normas

Los equipos de servicios de auditoría informática necesitan un conjunto de reglas y políticas antes de una investigación. ¿Cómo se manejarán la evidencia? ¿Qué procesos se deben seguir? ¿Qué leyes y reglamentos se dictan procedimientos de notificación? ¿Cuál es la política para los servicios de auditoría informática para asegurarse de que el proceso fue seguido correctamente?
Para los forenses cibernéticos,  el plan de respuesta a incidentes es un buen paso en la documentación de los procedimientos. Cada departamento dentro de la organización debe ser incluido, con responsabilidades claramente definidas, incluyendo las asignaciones para los elementos de acción específicos con plazos asociados.


Así, las empresas de seguridad de datos deben tener en cuenta estos errores antes de comenzar los forenses cibernéticos.

Friday 8 January 2016

¿Cómo proteger información de identificación personal (PII)?

Información de identificación personal (PII) vale 10 veces más que la información de tarjetas de crédito en el mercado negro, por lo que es imperativo contar con políticas y medidas de seguridad fuertes  que protegen los datos personales en su lugar. Como resultado, las empresas deben defenderse contra el robo cibernético mediante el desarrollo, la incorporación de fuertes protocolos de seguridad cibernética y las medidas para el almacenamiento y la transferencia de datos. A continuación se presentan formas en que las empresas y agencias gubernamentales pueden proteger su información de identificación personal para evitar una violación de datos.
Asegurar las aplicaciones antiguas y no usadas.
Aplicaciones muertos, o aplicaciones que alguna vez florecieron en la empresa a gran escala, pero ya no son compatibles, presentan una forma fácil para los hackers para explotar e implantar malware. Las organizaciones pueden tomar ayuda de empresas de seguridad informática para proteger su información personal y  actualizar periódicamente las aplicaciones cuando las nuevas versiones se liberan o eliminar por completo desde sus dispositivos cuando ya no están siendo actualizadas  por sus desarrolladores. Los departamentos de TI también pueden establecer y hacer lista de aplicaciones que son seguros para los empleados para descargar y utilizar. Además empresas pueden hacer pruebas de penetración de las aplicaciones para revisar el nivel de seguridad de las aplicaciones.
Equipar sistemas de usuarios con contraseñas fuertes de autenticación 



Según consultoría y empresa de seguridad informática, es muy fácil por un hacker sofisticado para romper en las bases de datos de del gobierno o las empresas si las contraseñas son fáciles de romper. Porque todos tenemos una multitud de contraseñas de diferentes sistemas, las personas tienden a utilizar las mismas contraseñas fáciles de recordar para una variedad de propósitos. Por esa razón es muy importante probar las contraseñas de los sistemas durante pruebas de penetración. Si la información se almacena en y se accede a través de teléfonos inteligentes, laptops etc, las empresas deben ser conscientes de los riesgos asociados al uso de la nube pública. Según recomendaciones de empresas de seguridad informática la gestión y el mantenimiento de las claves de cifrado son muy importantes.

Proporcionar la capacitación a los empleados sobre las mejores prácticas de seguridad informática

Según experto de empresa de seguridad informática, siempre tratar a los empleados exactamente cómo quiere que les traten a sus mejores clientes. Capacitación de los empleados envía el mensaje a los funcionarios que la gestión de los valora es muy importante para la empresa y están dispuestos a ofrecer empleados con todas las herramientas que necesitan para hacer un buen trabajo. Los empleados pueden tomar capacitación de seguridad informática o capacitación técnica de pruebas de penetración. Formación inculca en los empleados el valor de proteger la información del cliente y el empleado y, por supuesto, ayuda a disminuir la probabilidad de errores descuidados sobre información corporativa.