QAustral

Un Blog de QAustral SA – Calidad de Software y Negocios

Home » Posts tagged "calidad" (Page 4)

Ideas creativas

Sir Ernest Rutherford, presidente de la Sociedad Real Británica y Premio Nobel de Química en 1908, contaba esta historia real.

QA

Hace algún tiempo, recibí la llamada de un colega. Estaba a punto de poner un cero a un estudiante por la respuesta que había dado en un problema de física, pese a que éste afirmaba rotundamente que su respuesta era absolutamente acertada. Profesores y estudiantes acordaron pedir arbitraje de alguien imparcial y fui elegido yo.

Leí la pregunta del examen y decía: “Establezca cómo es posible determinar la altura de un edificio con la ayuda de un barómetro”. El estudiante había respondido:

Llevo el barómetro a la azotea del edificio y le ato una cuerda muy larga. Lo descuelgo hasta la base del edificio, marco y mido. La longitud de la cuerda es igual a la longitud del edificio.

Realmente, el estudiante había planteado un serio problema con la resolución del ejercicio, porque había respondido a la pregunta correcta y completamente.

Por otro lado, si se le concedía la máxima puntuación, podría alterar el promedio de su año de estudio, obtener una nota más alta y así certificar su alto nivel en física; pero la respuesta no confirmaba que el estudiante tuviera ese nivel.

Sugerí que se le diera al alumno otra oportunidad. Le concedí seis minutos para que me respondiera la misma pregunta pero esta vez con la advertencia de que en la respuesta debía demostrar sus conocimientos de física.

Habían pasado cinco minutos y el estudiante no había escrito nada. Le pregunté si deseaba marcharse, pero me contestó que tenía muchas respuestas al problema. Su dificultad era elegir la mejor de todas. Me excusé por interrumpirlo y le rogué que continuara. En el minuto que le quedaba escribió la siguiente respuesta:

Tomo el barómetro, lo lanzo al suelo desde la azotea del edificio y mido el tiempo de caída con un cronómetro. Después aplico la fórmula:
Altura de caída = 0,5 x g x t^2 (donde g = aceleración de la gravedad constante = 9,8 m/seg2; y t= tiempo de caída). Y así obtenemos la altura del edificio.

En este punto le pregunté a mi colega si el estudiante se podía retirar. Le dio la nota más alta.

Tras abandonar el despacho, me reencontré con el estudiante y le pedí que me contara sus otras respuestas a la pregunta.

Bueno – respondió – hay muchas maneras. Por ejemplo, tomás el barómetro en un día soleado y medís la altura del barómetro y la longitud de su sombra. Si medimos a continuación la longitud de la sombra del Edificio y aplicamos una simple proporción, obtendremos también la altura del edificio.

Perfecto, le dije, ¿y de otra manera?.

Si, contestó, éste es un procedimiento muy básico para medir un edificio, pero también sirve. En este método, tomás el barómetro y te situás en las escaleras del edificio en la planta baja. Según subís las escaleras, vas marcando la altura del barómetro y contás el número de marcas hasta la azotea. Multiplicás al final la altura del barómetro por el número de marcas que hiciste y ya tenés la altura.

Este es un método muy directo. Por supuesto, si lo que querés es un procedimiento más sofisticado, podés atar el barómetro a una cuerda y moverlo como si fuera un péndulo. Si calculamos que cuando el barómetro está a la altura de la azotea del edificio la velocidad es cero, y si tenemos en cuenta la medida de la velocidad del barómetro cuando pasa por la perpendicular del edificio en trayectoria circular, de la diferencia de ambas velocidades, y aplicando una sencilla formula trigonométrica, podríamos calcular, sin duda, la altura del edificio.

En este mismo estilo de sistema, atás el barómetro a una cuerda y lo descolgás desde la azotea a la calle. Usándolo como un péndulo podés calcular la altura midiendo su periodo de precesión.

En fin, – concluyó – existen otras muchas maneras. Probablemente, la mejor sea tomar el barómetro y golpear con él la puerta de la casa del portero. Cuando abra, decirle: “Señor portero, aquí tengo un bonito barómetro. Si usted me dice la altura de este edificio, se lo regalo”.

En este momento de la conversación, le pregunté si no conocía la respuesta convencional al problema (la diferencia de presión marcada por un barómetro en dos lugares diferentes nos proporciona la diferencia de altura entre ambos lugares) evidentemente, dijo que la conocía, pero que durante sus estudios, sus profesores habían intentado enseñarle a pensar.

El estudiante se llamaba Niels Bohr, físico danés, premio Nobel de física en 1922, más conocido por ser el primero en proponer el modelo de átomo con protones y neutrones y los electrones que lo rodeaban. Fue fundamentalmente un innovador de la teoría cuántica.

Software testing market resilient despite crisis: report

The worldwide market for computer software and systems testing services is projected to reach 56 billion dollars by 2013 despite taking a hit from the global economic crisis, a report said Wednesday.
More companies are outsourcing testing services, with India establishing itself as the favourite provider, the report by industry consulting firm Ovum said.

“Both the outsourced and in-house testing services markets will grow over the next four years but not at the heady rates seen over the last four years,” it said.

“Despite this slowing, testing services will grow at a compound annual growth rate of 9.5 percent from 2008 to 2013, faster than most other (information technology) services.”

Computer software and systems are tested in-house or by specialist companies to evaluate their capabilities and find errors, including potential bugs.

Alexander Simkin, a senior Ovum analyst and author of the report, said India is catching up with European and North American testers in terms of quality while continuing to offer cheaper rates.

“Indian testing services providers used to compete purely on price through labour arbitrage. That’s changing,” Simkin said.

“They are now climbing the value chain and offering the same capability as North American and European testers.”

However, the high demand has resulted in a skills shortage in India “so we could see increasing numbers of testing services jobs going to other low-cost territories such as China, Malaysia and North Africa,” Simkin added.

By physorg.com

Overview

For example, the audience for video game software is completely different from banking software.

Testing can never completely establish the correctness of computer software. Instead, it furnishes a criticism or comparison that compares the state and behaviour of the product against oracles—principles or mechanisms by which someone might recognize a problem. These oracles may include (but are not limited to) specifications, comparable products, past versions of the same product, inferences about intended or expected purpose, user or customer expectations, relevant standards, applicable laws, or other criteria.

Over its existence, computer software has continued to grow in complexity and size. Every software product has a target audience. For example, the audience for video game software is completely different from banking software. Therefore, when an organization develops or otherwise invests in a software product, it presumably must assess whether the software product will be acceptable to its end users, its target audience, its purchasers, and other stakeholders. Software testing is the process of attempting to make this assessment.

A study conducted by NIST in 2002 reports that software bugs cost the U.S. economy $59.5 billion annually. More than a third of this cost could be avoided if better software testing was performed

Wikipedia

Pruebas de software

Las pruebas de software se integran dentro de las diferentes fases del Ciclo del software dentro de la Ingeniería de software. Así se ejecuta un programa y mediante técnicas experimentales se trata de descubrir que errores tiene.
Para determinar el nivel de calidad se deben efectuar unas medidas o pruebas que permitan comprobar el grado de cumplimiento respecto de las especificaciones iniciales del sistema.
Las pruebas de software, testing o beta testing es un proceso usado para identificar posibles fallos de implementación, calidad, o usabilidad de un programa de ordenador o videojuego. Básicamente es una fase en el desarrollo de software consistente en probar las aplicaciones construidas. Únicamente un proceso de verificación formal puede probar que no existen defectos.

Hay muchos planteamientos a la hora de abordar el testeo de software, pero para verificar productos complejos de forma efectiva requiere de un proceso de investigación más que seguir un procedimiento al pie de la letra. Una definición de “testing” es: proceso de evaluación de un producto desde un punto de vista crítico, donde el “tester” (persona que realiza el testeo) somete el producto a una serie de acciones inquisitivas, y el producto responde con su comportamiento como reacción. Por supuesto, nunca se debe testear el software en un entorno de producción. Es necesario testear los nuevos programas en un entorno de pruebas separado físicamente del de producción. Para crear un entorno de pruebas en una máquina independiente de la máquina de producción es necesario crear las mismas condiciones que en la máquina de producción. Existen a tal efecto varias herramientas vendidas por los mismos fabricantes de hardware (IBM, Sun, HP etc.). Esas utilidades reproducen automáticamente las bases de datos para simular un entorno de producción.

En general, los informáticos distinguen entre errores de programación (o “bugs”) y defectos de forma. En un defecto de forma, el programa no realiza lo que el usuario espera. Por el contrario, un error de programación puede describirse como un fallo en la semántica de un programa de ordenador. Éste podría presentarse, o no, como un defecto de forma si se llegan a dar ciertas condiciones de cálculo.
Una práctica común es que el testeo de un programa sea realizado por un grupo independiente de “testers” al finalizar su desarrollo y antes de sacarlo al mercado. Una práctica que viene siendo muy popular es distribuir de forma gratuita una versión no final del producto para que sean los propios consumidores los que la testeen. En ambos casos, a la versión del producto en pruebas y que es anterior a la versión final (o “master”) se denomina beta, y a dicha fase de testeo, beta testing.

Puede además existir una versión anterior en el proceso de desarrollo llamada alpha, en la que el programa, aunque incompleto, dispone de funcionalidad básica y puede ser testeado.
Finalmente y antes de salir al mercado, es cada vez más habitual que se realice una fase de RTM testing (Release To Market), dónde se comprueba cada funcionalidad del programa completo en entornos de producción.

Otra práctica es que el testeo se realice desde el mismo momento en que empieza el desarrollo y continúe hasta que finaliza.

Wikipedia

El éxito del tiempo organizado

El trabajo de manera freelance es un gran desafío para cualquier profesional que busca un desarrollo personal e intelectual en la actividad que realiza de una manera independiente. Muchas personas cuentan entre las ventajas de trabajar fuera de una relación de dependencia, con la libertad de los tiempos que uno puede disponer como profesional libre de horarios esquematizados. Por lo general un profesional que se desempeña de manera freelance, responde a objetivos y trabajos puntuales, sin embargo, en determinadas profesiones el tiempo que se contaba como un beneficio se convierte en uno de los principales desafíos a vencer. Lo trabajadores freelance disponen de la libertad de organizar sus tiempos de trabajo, de dispersión, de instrucción académica, y por mas que uno piense que es una tarea sencilla, es en verdad el mayor desafío que puede presentarse.

La indisciplina

Muchos trabajadores, sobre todos los relacionados con las áreas de sistemas informáticos, software, programadores y diseñadores gráficos; cometen el error de no tener una disciplina de trabajo armónicamente organizada. Lejos de ser incumplidores o de trabajar menos horas de las prometidas, la realidad es que se convierten en esclavos de sus trabajos sin darse cuenta, y no por ello obtienen más beneficios en capital o retribución por su tarea. Un ejemplo claro seria el de un desarrollador Web que realiza trabajos freelance. Normalmente si trabajara en relación de dependencia realizaría su tarea y posteriormente concluida la jornada laboral, partiría a su hogar o al cine, a realizar actividades deportivas o recreativas, o de estudio; sin embargo al no tener horarios marcados, la mayoría de los desarrolladores continúan trabajando en mejoras de sus proyectos, modificándolos o reinventándolos incluso momentos antes de realizar la entrega a su cliente. En una entrevista laboral para una compañía publicitaria, un informático expresaba signos de cansancio evidentes, el entrevistador pregunto si se sentía bien, y el entrevistado relato la siguiente situación; desde hacia varios días estaba desarrollando un sitio Web de turismo, una vez concluida la tarea observo que quizás los botones de navegación y las fotos de banner’s publicitarios se verían mejor en blanco y negro, por el estilo del sitio; inmediatamente comenzó a trabajar, y paso largas horas de la noche haciéndolo, logrando dormir solo dos horas antes de la entrevista.

Tiempos y compromisos

El organismo tarde o temprano sentirá la fatiga, al ocupar demasiado tiempo en un proyecto, nos perderemos la oportunidad de abrir nuevos horizontes y conseguir nuevos clientes. Al momento de presupuestar un trabajo es muy importante tener en cuenta los tiempos reales y no los que consideramos en nuestra cabeza. No debemos comprometernos con limites horarios que después no podremos cumplir; un proyecto por lo general puede demorar unas tres veces más de lo presupuestado. Por esta razón una forma de organizarnos y cuidarnos es prever estas situaciones.
Organizar los tiempos de trabajo no es fácil, pero sin lugar a dudas si un trabajador freelance logra disciplinarse lograra conseguir un excelente desarrollo personal, traduciendo sus esfuerzos en bienestar general para su persona.

By Marcelo Cusmai
www.qaustral.com

Capturan a joven que retiró $160 mil de cajeros automáticos

Las autoridades aseguran que el procesado había detectado, desde el año pasado, una falla en el sistema de cajeros automáticos que le permitía hacer retiros diarios de $900 desde su cuenta de crédito.

Escrito por Blanca Abarca con reportes de Suchit Chávez
Viernes, 03 julio 2009 14:56

Un joven, acusado de retirar a diario un promedio de $900 con su tarjeta de crédito en diferentes cajeros automáticos de San Salvador, fue enviado a prisión mientras se desarrollan las investigaciones judiciales correspondientes.

El imputado, identificado como Josué Adonais García Mejía, fue detenido el lunes pasado. El Juzgado Décimo de Paz de San Salvador lo procesa por el delito de hurto en perjuicio de un banco que opera en Centroamérica.

Se estima que García desembolsó $160 mil desde el año pasado hasta la fecha en que la institución bancaria interpuso la denuncia y se concretó la captura.

De acuerdo con las autoridades, el procesado detectó una falla en el sistema de cajeros automáticos, lo cual le permitió hacer los retiros en diferentes sucursales bancarias desde su cuenta de tarjeta de crédito.

El imputado efectuaba los retiros, los cuales nunca figuraron en su estado financiero.

¿Por qué Testing de Software & Quality Assurance?

Hay dos grandes tendencias de la industria que suman presión al desarrollo de software. La primera es acelerar los ciclos de liberación. En segundo lugar, mientras que las fallas son más frecuentes y los ciclos más cortos, el costo del fracaso ha aumentado drásticamente. Años atrás, cuando productos al servicio del cliente se encontraban en la vanguardia, el número previsto de usuarios se conocía con bastante antelación, ya que todos los usuarios eran empleados.
Una organización puede atenuar un fallo del sistema con una copia de seguridad manual. Sin embargo, como el desarrollo y el acceso a tecnología ha evolucionado, estos sistemas se dirigen ahora a poblaciones de usuarios mucho mas grandes. Las fallas se hicieron más frecuentes, y los fallos en el sistema común no significa que las indicaciones para resolverlo pueden ser adoptadas a todos. Hoy en día con aplicaciones de comercio electrónico, las fallas o avisos pueden ocurrir dos o tres veces por mes. Actualmetne, la base de usuarios es un número grande pero desconocido de clientes, no empleados. Los fallos de los sistemas son muy visibles y puede motivar a los clientes correr a la competencia.
Estas tendencias tienen graves consecuencias para los gestores de proyectos. El alto costo del fracaso significa que el despliegue de Testing de software no es simplemente una opción. Además, deben cubrirse todos los aspectos de necesidades de calidad de validación, y no sólo uno o dos. En la aceleración de los ciclos de liberación existe la necesidad de conducir pruebas automatizadas en las que las simulaciones son fáciles de crear, mantener y reutilizar. Hay mucho que hacer en muy poco tiempo para contar con métodos manuales.
Un enfoque continuo de la calidad que se inició a principios del ciclo de vida del software, puede reducir los gastos de elaboración y mantenimiento del software de manera significativa. Esto reduce considerablemente los riesgos asociados con el despliegue de software de mala calidad.

by Spintrum

Cual es el orden sugerido de ejecucion de tests?

Testing no es solamente ejercitar el software para detectar defectos o fallas, Testing se aplica a cada una de las etapas conocidas del desarrollo de Software

Por lo general pensamos que ejecutar pruebas es todo el testing cuando en realidad eso solo representa el 40% del testing. Porque se da tanta importancia a una sola actividad cuando los errores se pueden encontrar antes y con menor costo. Yo creo que es una cuestion de cultura el no ver mas alla de lo que creemos importante.
Testing no es solamente ejercitar el software para detectar defectos o fallas, Testing se aplica a cada una de las etapas conocidas del desarrollo de Software. Cada etapa, documento involucrado, porcion de software, planeamiento es testeable y debe ser testeado antes de ejecutar los System Tests.
Ademas involucrar los testers en etapas tempranas del desarrollo trae muchos beneficios, como ahorro del tiempo de ejecucion de tests, familiarizacion con el futuro sistema.
El ciclo elemental de Testing cuenta con las siguientes etapas:

> Planeamiento y Control
> Analisis y Disenio.
> Ejecucion e implementacion
> Evaluacion y reportes
> Actividades de cierre

Cada una de estas actividades internas al area de testing estan relacionadas con las etapas del desarrollo del software para “testearlas” y encontrar fallas antes de tener el codigo listo.
Solo dento de la etapa de ejecucion se realizan los test de:
* Component Testing (Mas conocidos como UniTests)
* Integration Testing (Mediante distintas metodologias, Bigban, Funcional, etc…)
* System Testing (Functional y No Funciona)
* User Acceptance Testing

by Sergio