miércoles, 23 de abril de 2008

SQA, SQC y Software Testing, ¿qué es qué?

Si queremos empezar por el principio, es necesario aclarar determinados conceptos básicos que tienden a usarse indistintamente, de forma equivocada, para referirse a lo mismo. Y digo "de forma equivocada" porque, evidentemente, no son lo mismo. Veamos algunas definiciones elementales.

De un modo general y basado en los estándares ANSI/IEEE:
  • Testing: es el proceso de ejecutar un sistema con la intención de encontrar defectos incluyendo una planificación previa a la ejecución de los Casos de Test.
  • Quality Control (QC): es un conjunto de actividades diseñadas para evaluar un producto.
  • Quality Assurance (QA): es un conjunto de actividades diseñadas para asegurar que el proceso de desarrollo y/o mantenimiento es adecuado para asegurar que un sistema cumplirá los objetivos para los que fue diseñado.
Si lo resumimos en una frase podríamos decir que el Testing es equivalente al QC y se definiría como el proceso que mide la calidad de un producto mientras que el QA sería el proceso que mide la calidad de los procesos usados para crear dicho producto.

De un modo más particular orientado al software:
  • Software Testing: es el conjunto de procedimientos usados para evaluar la calidad del software. Es una técnica de investigación empírica cuyo objetivo es proporcionar información acerca de la calidad de la aplicación bajo testeo con respecto al contexto en el que está previsto que funcione. El Software Testing conlleva la ejecución de la aplicación bajo condiciones controladas (tanto normales como anormales) y la evaluación de los resultados. Además, debe, intencionadamente, intentar provocar comportamientos erróneos para determinar si las cosas ocurren cuando no deberían o si las cosas no ocurren cuando deberían. El Software Testing está orientado a la detección.
  • Software Quality Control (SQC): es un conjunto de procedimientos destinados a monitorizar, evaluar y mejorar el producto que resulta del Ciclo de Vida del Desarrollo de Software.
  • Software Quality Assurance (SQA): es un conjunto de procedimientos formales destinados a monitorizar, evaluar y mejorar todos los procesos que conforman el Ciclo de Vida del Desarrollo de Software. Su principal objetivo es asegurar que en cualquier punto de este ciclo, cualquier estándar y procedimiento establecido se cumple y que los problemas se encuentran y se tratan adecuadamente, todo ello orientado a asegurar la producción de software de calidad que cumple con los requerimientos y estándares. El SQA está orientada a la prevención.
De todo esto podemos concluir que, mientras que el Software Testing y el SQC se encargan de controlar la calidad del software, el SQA se encarga de controlar la calidad de los procesos que dan como resultado dicho software.

Para terminar con las definiciones y a modo de anécdota, os dejo esta perla (de la traducción automática supongo) extraída de http://spanish.osstrans.net/software/testlink.html:

Testlink: "TestLink es un sistema que sigue basado tela de la gerencia y de la ejecución de la prueba construido para mejorar calidad de tu proceso de la verificación o de la prueba. La herramienta incluye la divulgación y los requisitos que siguen y coopera con los sistemas que siguen del insecto bien conocido.?"

----------------------------------------------------------------------------

If we want to start from the beginning, it is necessary to clarify some basic concepts that are usually taken, in a wrong way, as the same thing. And I said "in a wrong way" because, obviously, they are not the same thing. Let's see some basic definitions.

From a general point of view and based on the ANSI/IEEE standards:

  • Testing: is the process of executing a system with the intent of finding defects including test planning prior to the execution of the Test Cases.
  • Quality Control (QC): is a set of activities designed to evaluate a developed working product.
  • Quality Assurance (QA): is a set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet the objectives it was designed for.
Summarizing these concepts in a simple sentence we could say that Testing is equals to QC and it would be the process that measures the quality of a product while QA would be the process that measures the quality of the processes used to obtain this product.

From a more particular, oriented to software point of view:

  • Software Testing: is the set of procedures used to evaluate the software quality. It is an empirical technical investigation conducted to supply information about the quality of the application under test with respect to the context in which it is intended to operate. Software Testing involves operation of a system or application under controlled conditions (both normal and abnormal) and evaluating the results. In addition, it should intentionally attempt to make things go wrong to determine if things happen when they should not or things do not happen when they should. Software Testing is oriented to detection.
  • Software Quality Control (SQC): is a set of procedures oriented to monitoring, evaluating an improving the product that results from the Software Development Life Cycle (SDLC).
  • Software Quality Assurance (SQA): is a set of formal procedures oriented to monitoring, evaluating an improving all the processes that take part in the Software Development Life Cycle (SDLC). Its main objective it to ensure that in every point of this cycle, any agreed-upon standards and procedures are followed and the problems are found and dealt with, all this with the objective of ensuring the development of quality software that accomplishes the requirements and the standards. SQA is oriented to prevention.
From all this we can conclude that while Software Testing and SQC are responsible for controlling the software quality, SQA is responsible for controlling the quality of the processes that produce this software.


Referencias/References:

http://www.realityinteractive.com/rgrzywinski/archives/000044.html
http://www.faqs.org/faqs/software-eng/testing-faq/section-9.html
http://www.softwareqatest.com/qatfaq1.html
http://en.wikipedia.org/wiki/Software_quality_control
http://en.wikipedia.org/wiki/Software_testing
http://en.wikipedia.org/wiki/Software_Quality_Assurance

viernes, 18 de abril de 2008

Informe de salarios de los profesionales de usabilidad/UPA Salary survey

Buenas, supongo que me toca a mí abrir fuego...
Hoy ha llegado a mis manos (vía Plantet Dev) el informe de la UPA (Usability Professionals' Association) sobre los salarios de los profesionales de este campo. Os dejo un enlace por si queréis hojearlo, pero básicamente ya os digo que en España siguen siendo, de los países supuestamente avanzados, los peor valorados.

Hi, I guess it's my turn to open fire...
Today I got (via Planet Dev) the UPA (Usability Professionals' Association) Salary Survey, regarding professionals on this matter. Here's the link to the survey if you want to take a look, but I can already tell you that in Spain these professionals are the less valued of all the 1st World Countries.

UPA 2007 Salary Survey

The Usability Professionals' Association website

jueves, 17 de abril de 2008

Los comienzos...

Bueno, comencemos por el principio. Para qué queremos este blog.

Supongo que es una forma de mantenernos en contacto como amigos, ex-compañeros de trabajo y "aficionados" al QA.

De esta manera, podemos compartir experiencias, consejos, herramientas, problemas, y encima otros puede que se beneficien de lo que nosotros contemos por aquí. Veremos cuanto dura.

Procuraremos poner los post en Inglés y en Español, en Ingles por es el idioma de Internet (mal que nos pese) y así llegará mas a quien quiera escuchar (leer), y en Español...por que es nuestro idioma y quizás llegue a mas gente que no sabe Inglés. El mantener los post en ambas lenguas será complejo, y tal vez primero se ponga en un idioma y tarde unos dias en aparecer en el otro. Paciencia.

No añadiré nada más, que ni soy persona de muchas palabras (ni falta que hace) ni quiero enrollarme con introducciones. Valga este post para inaugurar este blog sobre experiencias en el campo del QA.

Un abrazo,
Nando.

---------------------------------------

Ok, let's start from the beginning. What we want this blog for?

I suppose it is a way to keep us in touch as friends, ex-work mates and QA enthusiastics.

That way, we can share experiences, advices, tools and problems, and also others can use what we comment here as help. Let's see what happens.

We will try to post in English and Spanish. English because is the Internet language (whether we like it or not) so it will reach more people who is willing to listen. And in Spanish...because it is out own language and that way it will reach non English people. Keep the blog in both languages will be more complicated and that could take to some days delays to have each post in one of the languages. Be patient.

I will not add anything more, I am not a person of much words. Let's use this post to open this blog about QA experiences.

Hugs,
Nando.