Contribution to the Automation of Software Quality Control of Web Applications
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN CONTRIBUTION TO THE AUTOMATION OF SOFTWARE QUALITY CONTROL OF WEB APPLICATIONS TESIS DOCTORAL BONIFACIO GARCÍA GUTIÉRREZ Ingeniero de Telecomunicación 2011 DEPARTAMENTO DE INGENIERÍA DE SISTEMAS TELEMÁTICOS ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN UNIVERSIDAD POLITÉCNICA DE MADRID CONTRIBUTION TO THE AUTOMATION OF SOFTWARE QUALITY CONTROL OF WEB APPLICATIONS Autor: BONIFACIO GARCÍA GUTIÉRREZ Ingeniero de Telecomunicación Director: JUAN CARLOS DUEÑAS LÓPEZ Doctor Ingeniero de Telecomunicación 2011 Tribunal nombrado por el Magfco. y Excmo. Sr. Rector de la Universidad Politécnica de Madrid, el día 26 de julio de 2011. Presidente: _____________________________________________ Vocal: _________________________________________________ Vocal: _________________________________________________ Vocal: _________________________________________________ Secretario: _____________________________________________ Suplente: ______________________________________________ Suplente: ______________________________________________ Realizado el acto de defensa y lectura de la Tesis el día 9 de septiembre de 2011 en la E.T.S.I.T. habiendo obtenido la calificación de ________________________________________ EL PRESIDENTE LOS VOCALES EL SECRETARIO A mis padres Agradecimientos Uno de los conceptos claves de los que va a tratar esta tesis doctoral es la búsqueda de los diferentes caminos que se pueden recorrer para lograr un determinado objetivo. Esta idea no dista mucho de las vivencias de las personas. En estos últimos años he tenido que recorrer diferentes caminos, muchos buenos, otro no tanto, e incluso alguno terriblemente duro. Es por ello que llegados al punto en el que se cierra este ciclo, es el momento de echar la vista atrás y acordarme de todas las personas que han hecho posible este viaje. Quiero en primer lugar expresar mi agradecimiento más sincero a Juan Carlos Dueñas por hacer posible esta tesis. Hace casi 5 años me brindaste la oportunidad de trabajar en la universidad como investigador. Transcurrido este tiempo, me gustaría agradecer una y mil veces todo el apoyo y confianza que has depositado en mí. A parte de tu brillantez para dirigir esta tesis, por encima de todo quiero destacar tu calidad humana, tu cercanía y comprensión que me han ayudado siempre a superar los momentos difíciles. Puedo afirmar sin duda alguna que el mayor éxito que he conseguido en mi vida profesional es haber trabajado a tu lado. En segundo lugar, quiero expresar mi gratitud a todos los compañeros de laboratorio con los que he compartido tanto tiempo: Álvaro, Antonio, Bea, Chema, Marta, Félix, Freakant, Hugo, José Ignacio, José Luis, Laura, Lorena, Mar, Rodrigo, Rubén, Samuel y Sandra. Muchas gracias también a July, que es el auténtico motor del laboratorio. I would like to thank to the European partners which have made possible my research stay in VTT‐Espoo (Finland) during summer 2010. Thank you very much to Juha Pärssinen and Hannu Honka for making possible this journey. Special thanks to Arto Laikari and the rest of the group: Janne, Juha, Julia, Vesa, Jukla, Kari. Thank you to Anne Kontula for helping us during the stay. En esta ronda de agradecimiento no me puedo olvidar de los amigos de siempre. Aquellos con lo que siempre puedes contar para echarte unas risas, sin las cuales muchas veces no valdría la pena el esfuerzo: Álvaro, Amalia, Ana, Aurora, Barrix, Chechu, Fátima, Gari, Iván, Jesús, Kike, Laura, María, Marta, Miky, Riky, Santos, Tomate y Vanesa. El agradecimiento más especial es para mi chica, Vero. Muchas gracias por el cariño que me demuestras día a día, por tu apoyo y ayuda incondicional, y por compartir tantos momentos juntos. El agradecimiento más especial quiero que sea para mis hermanas: Yoly e Inma. Solo vosotras sabéis bien por todo lo que hemos pasado. Sólo me gustaría expresar el orgullo que tengo de ser vuestro hermano y espero estar ahí siempre para vosotras. Además, habéis traído al mundo (sin la inestimable ayuda de Mario y Rubén respectivamente) a las personillas más importantes que puede haber. Me refiero a Andrea, Silvia, y la recién llegada Laura. Su alegría es el medio más poderoso que conozco para encarar el futuro con optimismo. Por supuesto quiero acordarme también del resto de mi familia: abuelos, tíos, y primos. Por último, pero en el primer lugar de mi corazón, quiero acordarme de mis padres. No habría cosa que más me gustaría en el mundo que me hubieseis podido ver culminando esta etapa de mi vida. Seguro que os sentiríais muy orgullosos de mí, tanto como yo lo soy de ser hijo vuestro. Quiero daros las gracias por todo lo que luchasteis en vuestra vida por nosotros. Siempre os llevo conmigo, tened por seguro que de lo poco que puedo presumir es de ser hijo de Pablo y Dolores. PhD Dissertation Boni García Universidad Politécnica de Madrid Departamento de Ingeniería de Sistemas Telemáticos Abstract The Web has become one of the most influential instruments in the history of mankind. Therefore, web applications development is a hot topic in the Software Engineering domain. In this context, the software quality is a key concept since it determines the degree in which a system meets its requirements and meets the expectations of its customers and/or users. Quality control (also known as verification and validation) is the set of activities designed to assess a software system in order to ensure its quality. Therefore, the quality control process ensures the requirements of applications while reducing the number of defects. The two core activities in quality control are testing and analysis. On one hand, testing is a dynamic method, i.e., it assesses the responses of a running system. On the other hand, analysis is static, i.e., it assesses the software artefacts (e.g., source code, models, and so on) without its execution. Current web applications market is defined by fierce global competition. This market can be divided into three different positions: quality, cost, and time to market. In order to minimize costs and time to market in the development of web applications is a very common practice the reduction or elimination of quality control processes. This fact has a direct impact in the low quality of such applications. Automation of quality control activities help to improve the overall quality of software developed while reducing development time and costs. This PhD dissertation proposes a set of techniques to automate the quality control (testing and analysis) for web applications. The heterogeneous nature of web applications makes complex the quality control activities. Web applications are based on client‐server architecture. This dissertation is focuses on the client‐side of web systems, since it is the differentiating factor of such applications. According to the ISO‐9126 standard, quality in use is the quality perceived by users of the applications during phases of operation and maintenance of these applications. This type of quality is determined by its external quality (properties of the system during its execution) and internal quality (system properties statically). Thus, the quality use of web applications is always perceived from client‐side in web applications. The quality control process proposed in this dissertation is based on the automation of the navigation of web applications. Functional and non‐functional requirements of the system under test will guide the process. Regarding non‐functional requirements, testing and analysis will be made to the quality attributes considered the most important for web applications: performance, security, compatibility, usability and accessibility. The first step in this automation is defining the structure of the navigation. To achieve this aim, existing software artefacts in the phase of analysis and design of web applications under test will be reused as far as possible. Then, as the navigation is automated, there will be different kinds of tests and analysis in the various states of the navigation. The aggregation of the verdicts of the evaluation is stored in an automatically generated report will contain different defects and potential issues found. The processes and methods proposed in this dissertation have been implemented by means of reference architecture. In addition, several experiments and case studies have been conducted in order to assess the proposal. This work has been carried out in different national and international research projects mainly in the ICT‐ROMULUS, ITEA‐MOSIS and Factur@. xi PhD Dissertation Boni García Universidad Politécnica de Madrid Departamento de Ingeniería de Sistemas Telemáticos Resumen La Web se ha convertido en uno de los instrumentos más influyentes de la humanidad. El desarrollo de aplicaciones web es por tanto un tema de capital importancia en el mundo de la Ingeniería de Software. En este ámbito, la calidad de software es un concepto clave ya que determina el grado en el que un sistema cumple sus requisitos y satisface las expectativas de sus clientes y/o usuarios. El control de calidad (también conocido como verificación y validación) es el conjunto de actividades dirigidas a evaluar un sistema software con el objetivo de asegurar la calidad del mismo. El control de calidad es por tanto el proceso encargado de asegurar que se cumplen los requisitos de las aplicaciones al tiempo que se elimina (o se reduce al máximo) el número de defectos en las mismas. Las dos actividades básicas del control de calidad