Squish/Best Practices/es

From Qt Wiki
Jump to navigation Jump to search

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

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():
 type(":Username_QLineEdit", "user")
 type(":Password_QLineEdit", "mypassword")
 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):
 type(":Username_QLineEdit", username)
 type(":Password_QLineEdit", password)
 clickButton(":OK_QPushButton")

def main():
 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().