Costos de desarrollo de pruebas de software
Parte 1: Pruebas de software, ¿es un coste o una inversión?
Hora de publicación: 2007-12-19 17:43 Autor: Fuente desconocida: Reimpreso de Internet
Muchas empresas de software creen que las pruebas de software son muy importantes, pero básicamente la mayoría de las Las empresas de software nacionales solo contratan simbólicamente a uno o dos probadores para que se encarguen de probar todos los proyectos. Porque hay demasiados factores que afectan las pruebas de software, como limitaciones de tiempo, escasez de recursos, limitaciones presupuestarias, etc. Entonces comenzamos a reducir la inversión en pruebas de software. Entonces no podemos evitar preguntarnos: ¿las pruebas de software son un costo o una inversión de software a largo plazo?
1. Introducción
A medida que el mercado del software madura, las personas tienen expectativas cada vez mayores sobre el papel del software. La calidad, el rendimiento, la confiabilidad y otros aspectos del software se están convirtiendo gradualmente en algo de la gente. preocupaciones. En la actualidad, la industria de software de China tiene serias deficiencias en el campo de las pruebas de funcionamiento y rendimiento del producto. Las empresas de software chinas han comenzado a darse cuenta de que la amplitud y profundidad de las pruebas de software determinan el futuro y el destino de las empresas de software chinas.
La prueba de software no es un proceso único de "búsqueda de errores" antes de la entrega del producto en el sentido tradicional, sino que recorre todo el proceso del software y es un proceso de control de calidad científico. En las empresas de software extranjeras maduras, un ingeniero de desarrollo de software corresponde a 1 o 2 ingenieros de pruebas de software, mientras que en las empresas de software nacionales, un promedio de 8 ingenieros de desarrollo de software corresponden a 1 ingeniero de pruebas de software, lo que supone un grave desequilibrio.
2. Situación actual de la industria del testing de software
La producción industrial a gran escala de software determina que el testing de software sea una parte indispensable de la producción. Cuando se trata de dotación de personal, el dicho estándar de cinco a uno es popular desde hace mucho tiempo. Desde el interior de la empresa, este ratio es mucho mayor en cualquier momento. En los últimos tiempos, la proporción de carga de trabajo de desarrollo y pruebas ha llegado incluso a dos a uno. La forma más sencilla de ganar la competencia entre productos maduros del mismo tipo es mejorar la calidad.
La industrialización a gran escala del software no está eliminando a los autónomos y a los pequeños talleres, sólo está reduciendo sus oportunidades y necesidad de tratar directamente con los usuarios finales. Hoy producen y empaquetan software sólo para esperar a que una gran empresa los adquiera. Para ello, en la fase final se requieren "pruebas de usuario final".
Paralelamente, el mercado de pruebas de software se ha convertido en un mercado único en la industria del software. En el área de Silicon Valley de Estados Unidos, todas las empresas de desarrollo de software o empresas con departamentos de desarrollo de software tienen unidades de prueba de software especializadas, en las que el número de probadores de software equivale a tres cuartas partes de los ingenieros de desarrollo de software. En estas empresas o departamentos, el puesto de gerente de control de calidad responsable de las pruebas de software a menudo es paralelo al del director de desarrollo de software. Se entiende que en la India, donde la industria del software se está desarrollando rápidamente, las pruebas de software también desempeñan un papel importante en las empresas de software.
¿Cómo se compara la industria nacional de pruebas de software con la de países extranjeros? En la actualidad, el desempeño del mercado nacional de pruebas de software es realmente vergonzoso. Hay muchas empresas de desarrollo de software en el mercado chino, pero las empresas de pruebas de software son raras. "Las pruebas de terceros orientadas al mercado son como Ning Xiner, que acaba de nacer. El mercado actual es casi insignificante".
¿Por qué el mercado nacional de pruebas de software es tan débil? ¿Por qué las empresas están empezando a prestarle atención ahora? En opinión del autor, la razón principal es, en primer lugar, que las empresas no comprenden suficientemente la importancia de las pruebas de software. Mucha gente piensa que un programa es básicamente exitoso si se puede poner en operación de prueba y no es necesario establecer un departamento de pruebas especial ni puestos de prueba.
Por otro lado, después de pagar por el desarrollo de software, las empresas de desarrollo de software no quieren pagar nuevos costos por las pruebas de software, y la Parte A del proyecto a menudo cree que el desarrollo de software calificado es responsabilidad de las empresas de desarrollo de software. responsabilidad. Incluso si los desarrolladores o clientes de algunos proyectos tienen la intención de realizar pruebas de software por parte de terceros, considerarán que a menudo se requiere que el desarrollador de software proporcione el código fuente durante el proceso de prueba y les preocupa que se infrinjan sus derechos de propiedad intelectual. . Ésta es otra razón importante por la que el mercado de pruebas de software no puede crecer. Además, las empresas de desarrollo de software no prestan atención al uso de fuerzas de prueba externas para las pruebas, que también es uno de los factores.
3. Probadores de software confundidos
Muchas veces, los recursos humanos y financieros invertidos en las pruebas estarán determinados por muchos factores.
Entre ellos, los probadores de software son una consideración muy importante. De hecho, el mayor gasto de costos para las organizaciones en pruebas de software son los probadores. Hoy en día, cuando las herramientas de software y los equipos de prueba están relativamente cerca, la competencia entre competidores en las pruebas de software se refleja principalmente en los probadores de software.
El reciente Worry-Free Index muestra que los ingenieros de pruebas de software se han convertido en uno de los talentos más demandados en 2007. La demanda para este tipo de puestos se concentra principalmente en las ciudades costeras desarrolladas, con Beijing y Shanghai. teniendo en cuenta las proporciones respectivas Desde la perspectiva de la distribución empresarial, las empresas privadas tienen la mayor demanda, representando el 19%, y las empresas europeas y estadounidenses de propiedad totalmente extranjera ocupan el segundo lugar, representando el 15%. En la actualidad, se ha puesto de relieve la escasez de talentos nacionales para realizar pruebas de software.
El autor conoce a un amigo A que ha sido ingeniero de pruebas profesional durante más de un año y todavía realiza pruebas de bajo nivel. A veces también escribo el código necesario para las pruebas, pero no he comenzado a diseñar casos de prueba para todo el proyecto. Actualmente, A está realizando pruebas de software para una conocida empresa de software. El proceso de trabajo es muy riguroso y claro, lo que naturalmente significa una repetición aburrida. El aburrimiento no sumergió la pasión de A por el trabajo. Encontrar un error le produjo una gran sensación de logro, especialmente cuando pensó que millones de personas lograrían sus objetivos con precisión todos los días utilizando software sin este error.
El futuro está muy claro en la mente de A, y se siente como elegir una carrera “a pedido”. Algunos medios han informado sobre la reciente demanda de ingenieros de pruebas de software en el lugar de trabajo, aunque la demanda general en la industria de TI aún es débil. En lugares como Beijing y Shanghai, la demanda de probadores representa casi un tercio del reclutamiento total. Por otro lado, A cree que es más ventajoso pasar de tester a gestor de proyectos de software.
Por ejemplo, el método de desarrollo de Microsoft originalmente estaba "basado en pruebas". Durante el proceso de prueba, se descubrió que había un pequeño parche en la esquina que no había sido pintado y el equipo de desarrollo agregó que parche basado en esta idea. La experiencia de las pruebas simplemente permite a las personas considerar los problemas desde la perspectiva del usuario y obtener una comprensión más profunda de los problemas que pueden surgir durante el desarrollo del programa. Todas estas son condiciones necesarias para convertirse en un excelente gerente de proyectos. Aunque puede pasar todo el día "siguiendo las reglas" para probar y escribir documentos de prueba repetidamente para un pequeño control, A considera que dichas repeticiones son una acumulación importante. A A le gusta una frase del nuevo libro "Montar en burro para encontrar un caballo" de Xu Xiaoping de New Oriental School: "Hacer hamburguesas repetidamente es McDonald's; repetir hacer café es Starbucks; repetir enseñar TOEFL es Yu Minhong; repetir hacer buenas obras es como Lei Feng."
En el análisis final, muchas empresas todavía no prestan suficiente atención al trabajo de prueba. Si la dirección no planea invertir demasiado en pruebas para fines de control de costos, por ejemplo, ¿qué debemos hacer si no queremos aumentar el salario de un ingeniero de pruebas que ha trabajado durante aproximadamente 2 años? Entonces tenemos que preguntar, ¿cuál es el costo del software? No solo los gastos incurridos durante el proceso de producción se denominan costos, sino que también se consideran costos los costos de servicio incurridos debido a defectos del producto en el futuro. ¡También deben computarse como costos! Como ingeniero de pruebas, debe aprender a utilizar los datos para hablar, recopilar datos de costos causados por defectos del producto y presentarlos a los líderes o a la gerencia conscientes de los costos para su revisión en momentos críticos para lograr la transformación del trabajo en carga de trabajo.
4. El costo de las pruebas
Los elementos del costo de las pruebas incluyen muchos aspectos. Si el código de prueba está escrito o no es solo una parte importante. El uso de objetos simulados no es un factor decisivo. Una mejor evaluación de las pruebas sería una combinación de código adicional, repetibilidad de las pruebas, cobertura de las pruebas e identificación del valor límite (la función de las pruebas en el diseño es un juicio de nivel superior).
Para pruebas que involucran persistencia de bases de datos, pruebas que involucran interacción de UI (navegador o cliente enriquecido) y pruebas de procesos de múltiples objetos y múltiples métodos (que también pueden reflejarse como interacción de UI, aquí se refiere a la naturaleza independiente). ), etc., así como algunos de los problemas mencionados anteriormente (no repetidos), son los problemas que tenemos que enfrentar en la práctica de pruebas de la vida real.
La solución a estos problemas implicará una mayor selección de situaciones específicas del proyecto y hacer el mejor juicio en función de la situación del proyecto y del equipo específicos. Este es el significado de costo.
En los primeros días del desarrollo de software, el desarrollo de software consistía simplemente en codificación e implementación.
Pero a medida que la industria del software creció, las empresas de desarrollo comenzaron a realizar pruebas antes del lanzamiento. Entonces, en este sentido, las pruebas de software son un costo. Pero en un sentido más general, las pruebas de software son en realidad una inversión para proporcionar calidad del software.
Las pruebas de software pueden parecer un coste, pero en realidad pueden ser una inversión que puede reducir gastos innecesarios en el futuro y, al mismo tiempo, ganar una buena reputación para la empresa. Las soluciones para lograr este objetivo incluyen principalmente: adoptar un enfoque de desarrollo basado en pruebas; garantizar que cada pequeño módulo funcional esté bien probado y establecer un entorno de integración de recursos sostenible y realizar pruebas generales confiables; Las pruebas de software se traducirán en última instancia en ahorros de costos. Ya sea desarrollo de productos, actualizaciones de software o mantenimiento de software.
Muchas estadísticas muestran que con cada paso adelante en el proceso de desarrollo, el coste medio de encontrar y reparar un defecto aumenta 10 veces. ¿Significa eso que buscar defectos no es importante? Por supuesto que no. Otro objetivo económico de las pruebas de software es detectar defectos lo antes posible y reducir los costos de reparación y servicio posventa. Obviamente, los defectos en cada producto lanzado no solo afectarán la reputación del producto y de la empresa, sino que también aumentarán directamente el costo del servicio posventa del producto. Ya sea enviando personas a la depuración en el sitio o desarrollando y lanzando parches, el costo es docenas o incluso cientos de veces más caro que el costo de reparación antes del lanzamiento.
5. Resumen
La necesidad de realizar pruebas de software ha sido plenamente aceptada por los tomadores de decisiones de la industria. Esto se debe a que la industria del software ha crecido hasta alcanzar un tamaño comparable al de otras industrias importantes. Después de más de diez años de desarrollo, el mundo de los talleres artesanales de unos pocos genios se ha transformado en el mundo de la producción industrial a gran escala. Debido a la popularidad de Java, también hemos visto el modelo de línea de montaje.
En la industria tradicional de producción industrial, las pruebas son una parte integral de la producción. Las pruebas de cada proceso, las pruebas de ensamblaje, las pruebas de fábrica y las pruebas destructivas son garantías importantes para la realización de los fines de producción.
Sin duda, el desarrollo de software enfrenta muchas dificultades, como tiempos de lanzamiento ajustados, alta presión del mercado e inversión excesiva. Éstas no son excusas para reducir la inversión en pruebas de software. Porque las pruebas de software son una parte muy importante del ciclo de vida del desarrollo de software. El autor cree que para algunas empresas u organizaciones basadas en productos, las pruebas de software pueden ser más adecuadas como inversión porque pueden ahorrar costos de ventas y costos de soporte técnico.