Squish/Best Practices/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 7: Line 7:
Imagine que ha estado utilizando Squish por un tiempo, grabando y reproduciendo casos de prueba con ninguna o sólo pequeñas modificaciones en los scripts de tests. Ha acumulado a una cantidad significativa de casos de prueba y la mayoría de ellos comienzan con la realización de la misma secuencia de pasos, por ejemplo, acceder a un servidor remoto mediante la especificación de un nombre de usuario y una contraseña para luego hacer click en el botón OK en un cuadro de diálogo.
Imagine que ha estado utilizando Squish por un tiempo, grabando y reproduciendo casos de prueba con ninguna o sólo pequeñas modificaciones en los scripts de tests. Ha acumulado a una cantidad significativa de casos de prueba y la mayoría de ellos comienzan con la realización de la misma secuencia de pasos, por ejemplo, acceder a un servidor remoto mediante la especificación de un nombre de usuario y una contraseña para luego hacer click en el botón OK en un cuadro de diálogo.


El código luciría mas o menos como lo siguiente:<br /><code>def main():<br /> type(&quot;:Username_QLineEdit&amp;quot;, &quot;user&amp;quot;)<br /> type(&quot;:Password_QLineEdit&amp;quot;, &quot;mypassword&amp;quot;)<br /> clickButton(&quot;:OK_QPushButton&amp;quot;)</code>
El código luciría mas o menos como lo siguiente:<br /><code>def main():<br /> type(":Username_QLineEdit", "user")<br /> type(":Password_QLineEdit", "mypassword")<br /> clickButton(":OK_QPushButton")</code>


Ahora imagine que por alguna razón, un desarrollador va y cambia su aplicación para no utilizar una caja de textos en el campo de entrada del nombre de usuario, sino que en su lugar utiliza un QComboBox. Ahora tendrá que volver a grabar manualmente o como mínimo cambiar cada caso de prueba que interactue con este cuadro de diálogo de inicio de sesión.
Ahora imagine que por alguna razón, un desarrollador va y cambia su aplicación para no utilizar una caja de textos en el campo de entrada del nombre de usuario, sino que en su lugar utiliza un QComboBox. Ahora tendrá que volver a grabar manualmente o como mínimo cambiar cada caso de prueba que interactue con este cuadro de diálogo de inicio de sesión.
Line 15: Line 15:
En el siguiente ejemplo, se crea un función login(), después de haber registrado el primer caso de prueba que consiste en acceder a un servidor. Entonces, para todos los casos de prueba subsiguientes, solo es necesario llamar a la función login() desde el script del test.
En el siguiente ejemplo, se crea un función login(), después de haber registrado el primer caso de prueba que consiste en acceder a un servidor. Entonces, para todos los casos de prueba subsiguientes, solo es necesario llamar a la función login() desde el script del test.


<code>def login(username, password):<br /> type(&quot;:Username_QLineEdit&amp;quot;, username)<br /> type(&quot;:Password_QLineEdit&amp;quot;, password)<br /> clickButton(&quot;:OK_QPushButton&amp;quot;)
<code>def login(username, password):<br /> type(":Username_QLineEdit", username)<br /> type(":Password_QLineEdit", password)<br /> clickButton(":OK_QPushButton")


def main():<br /> login(&quot;user&amp;quot;, &quot;mypassword&amp;quot;)</code>
def main():<br /> login("user", "mypassword")</code>


Como un efecto secundario de la creación de este método, podemos parametrizar la llamada a la función, para que pueda probar el cuadro de diálogo de inicio de sesión con diferentes valores con sólo llamar con diferentes parámetro a login().
Como un efecto secundario de la creación de este método, podemos parametrizar la llamada a la función, para que pueda probar el cuadro de diálogo de inicio de sesión con diferentes valores con sólo llamar con diferentes parámetro a login().

Revision as of 06:36, 25 February 2015

this page in:

La forma recomendada de trabajar con Squish

Imagine que ha estado utilizando Squish por un tiempo, grabando y reproduciendo casos de prueba con ninguna o sólo pequeñas modificaciones en los scripts de tests. Ha acumulado a una cantidad significativa de casos de prueba y la mayoría de ellos comienzan con la realización de la misma secuencia de pasos, por ejemplo, acceder a un servidor remoto mediante la especificación de un nombre de usuario y una contraseña para luego hacer click en el botón OK en un cuadro de diálogo.

El código luciría mas o menos como lo siguiente:

def main():<br /> type(":Username_QLineEdit", "user")<br /> type(":Password_QLineEdit", "mypassword")<br /> clickButton(":OK_QPushButton")

Ahora imagine que por alguna razón, un desarrollador va y cambia su aplicación para no utilizar una caja de textos en el campo de entrada del nombre de usuario, sino que en su lugar utiliza un QComboBox. Ahora tendrá que volver a grabar manualmente o como mínimo cambiar cada caso de prueba que interactue con este cuadro de diálogo de inicio de sesión.

En lugar de crear casos de prueba usando sólo la función de grabación, que con el tiempo daría lugar a problemas como el descrito anteriormente, la manera recomendada de trabajar con Squish es grabar y refactorizar. Es decir, grabar un caso de prueba o una pieza de un caso de prueba y refactorizar en una o varias funciones que luego pueden ser llamadas por el script del test.

En el siguiente ejemplo, se crea un función login(), después de haber registrado el primer caso de prueba que consiste en acceder a un servidor. Entonces, para todos los casos de prueba subsiguientes, solo es necesario llamar a la función login() desde el script del test.

def login(username, password):<br /> type(":Username_QLineEdit", username)<br /> type(":Password_QLineEdit", password)<br /> clickButton(":OK_QPushButton")

def main():<br /> login("user", "mypassword")

Como un efecto secundario de la creación de este método, podemos parametrizar la llamada a la función, para que pueda probar el cuadro de diálogo de inicio de sesión con diferentes valores con sólo llamar con diferentes parámetro a login().