Wednesday 10 July 2013

Android QA Automation

Hace mas o menos 3 años arranque con desarrollo de aplicaciones en Android. Hoy quiero aprovechar mi experiencia e introducirlos en otra rama, el testing.
Primeramente, necesitamos definir que tipo de test vamos a realizar, y que tipo de proyecto tenemos.
Básicamente, puedo agrupar dos tipos de proyectos Android:

  1. Lib: Se tratan de proyectos que, generalmente, no tienen interfaz gráfica y que son necesarios para otros proyectos. Por ejemplo: la librería de compatibilidad o librerias como AndEngine son proyectos librerias. Las librerias no se pueden instalar sino que deben ser usadas por proyectos del tipo aplicación. Para testear este tipo de proyectos se puede recurrir a hacer test unitario y, también a crear una aplicación "DEMO" que demuestre como funciona la librería. La automatización se hace sobre la aplicacion "DEMO" como si se tratase de un proyecto del tipo APP, pero verificando y validando la implementacion de la libreria.
  2. App: Estan compuestas por varios activities y generalmente usan librerias externas. Ademas de ejecutar unit test, se puede automatizar la UI mediante ADT o Robotium. Aqui vamos a tratar sobre este último

Robotium:

Como bien dice el sitio oficial del proyecto, Robotium es un framework de automatización de pruebas para aplicaciones nativas e híbridas. ( Uno de los problemas con los que me encontré a lo largo de mi experiencia en QA Android fue automatizar algunas webviews de aplicaciones híbridas con el framework oficial. En estos casos, Robotium pudo resolver mis problemas.)
Tip: Para desbloquear el emulador usando adb, se puede hacer mediante: adb shell input keyevent 82

Robotium hace en Android lo que Selenium hace en los Browsers (aunque el mapeo de elementos es mucho menos complicado que en selenium). Hasta tenemos un Robotium RC!!
Si bien seguimos usando el mismo framework para trabajar (ADT) estamos utilizamos otro instrumentador con el cual correr los tests (definido en el manifest)
La estructura de la clase de un test es la siguiente, conservando la nomenclatura de Junit3.

public class EditorTest extends
               
ActivityInstrumentationTestCase2<EditorActivity> {

 
private Solo solo;

 
public EditorTest() {
               
super(EditorActivity.class);
 
}

 
public void setUp() throws Exception {
        solo
= new Solo(getInstrumentation(), getActivity());
 
}
 
 
public void testPreferenceIsSaved() throws Exception {
 
                solo
.sendKey(Solo.MENU);
                solo
.clickOnText("More");
                solo
.clickOnText("Preferences");
                solo
.clickOnText("Edit File Extensions");
               
Assert.assertTrue(solo.searchText("rtf"));
               
                solo
.clickOnText("txt");
                solo
.clearEditText(2);
                solo
.enterText(2, "robotium");
                solo
.clickOnButton("Save");
                solo
.goBack();
                solo
.clickOnText("Edit File Extensions");
               
Assert.assertTrue(solo.searchText("application/robotium"));
               
 
}

   
@Override
   
public void tearDown() throws Exception {
        solo
.finishOpenedActivities();
 
}
}

Si quieren tener un poco mas de informacion, pueden visitar el sitio oficial https://code.google.com/p/robotium/wiki/Getting_Started o bajar el PDF con las instruciones aqui: -> https://robotium.googlecode.com/files/AndroidCalculatorTest.pdf 

Labels: , , , , , , , , ,

Ese blog de mierda

Sé que a veces (muchas) soy una persona que se la pasa criticando y puteando.
Hace mucho mucho tiempo que me embolé con algunas empresas y decidí aprovechar éste blog para quejarme y compartirte mi experiencia. (Quizás era eso o simplemente para mandarlos a cagar)
Después de un tiempo, parece que a estas empresas les molestó bastante que haya escrito algo, cuando creo yo que deberían haberse comunicado conmigo y ver de resolver las cosas (PONELE).
Tal es el caso que después de haber publicado el post sobre la bodega de mis alerces y sobre AJ Computacion recibí algunos mails....

Excelente Bodega de Junco y Madera

Desde Mis Alerces, se comunicaron diciendo algo mas o menos así:
Le comento que usted esta incurriendo en varios delitos, primero esta haciendo publico mails privados que no le fue cedida la potestad de publicarlos indicando datos de la empresa. 
Segundo lugar esta difamando y dejando que difamen en su propio sitio de forma anonima personas a las cuales avala con su publicacion, 
Tercero esta provocando un daño patrimonial porque alli mismo usted alienta la no compra de productos etc. 
Luego de consultar con abogados (obviamente no me iba a quedar de brazos cruzados) le respondo algunas cosas...
  1. Con respecto a los mails voy a decir dos cosas: La primera es que los emails no tienen la leyenda o firma que restringa su publicación. Y por otro lado, el art. 155 C.P. tiene como causal de justificación la existencia de un interés público (en este caso es que no te estafen a vos ó que no te pase lo mismo que a mi)
  2. En ningún momento difamo a la empresa, tan solo comento mi experiencia en cuanto al producto que recibí y al trato que brindaron (violando, de paso,  la ley de defensa del consumidor)
  3. En ningún momento aliento a la no compra. Lo único que hago es NO RECOMENDARLO.

Estas leyendo cualquier cosa

Por otro lado, también se comunico alguien de AJ Computación después de un post sobre Windows desatendidos.
Sinceramente debo confesar que este me hizo reír muchísimo mas que el anterior por un par de cuestiones que ahora les comento.

Extracto del email.
Yo no voy  a hacer las cosas como las haces vos, escudándote detrás de un blog, yo doy la cara, soy xxxxxx  y soy el Gerente técnico de AJ Computación, estuvimos viendo tu blog en la parte https://blog.cristianmarquez.me/2011/02/ojo-tecnicos-hay-tabla.html[..]. Yo te invito a que si tenés algún problema con la empresa, des la cara y lo hablemos personalmente, cara a cara, como verdaderamente se tratan los problemas y no acusando en forma casi anónima desde un blog como un cobarde.
AMO tener la oportunidad de responder a este tipo de mails. Me mató la forma con la que pretende solucionar un problema... "lo hablemos personalmente, cara a cara, como verdaderamente se tratan los problemas", aun sin saber que después que vi ese sistema fuimos (mi amigo y yo) a reclamar en la sucursal de Lima por el solo hecho de que vivo al lado!
Mi sitio web se llama CRISTIAN MARQUEZ.... Tanto tiempo estudiando y hoy me doy cuenta que mi significado de la palabra ANONIMA difiere del personal de AJ. (O por lo menos del Gerente)
However, sigamos...
Otra cosa que también decís es la tarifa que cobramos, decís que cobramos $300.- por hacerle un sistema a una notebook y que para vos es una estafa.
Yo te voy a contestar con una historia para que te des cuenta .... “Si vas a un kiosco y preguntas el precio de una gaseosa te van a decir ....la Switty Cola vale $10.- los dos litros, y la Coca Cola de dos litros vale $25.- ... vos sabes por que es esa diferencia entre una gaseosa y otra si las dos son dos gaseosas de cola ? la diferencia esta en la estructura que tienen atrás cada una de las empresas, la trayectoria sobre todas las cosas. En este caso es lo mismo con AJ ¿entandés? por eso cobramos $300.- nosotros somos la Coca Cola,
Lo único que les voy a pedir agradecidamente es que me digan donde dice que para mi el precio es una estafa. Por favor, el que encuentre esa linea de texto, esos bits apilados me avisa y le pago un asado. El cuento de la Coca Cola se los dejo como un bonus track para que se rian un rato nomás. Salven al nombre de la Coca.
Sigue.
Respecto a la piratería, nos acusas de piratas, y en el mismo blog decís que hiciste un Windows  desatendido a tu medida y a tu gusto.....¿eso no es piratería también? Cristian, termino un un dicho que esta muy ligado al significado de tu nombre....”El que este libre de pecado que tire la primera piedra” Quedo claro, no ?
Redoblo la apuesta. Le pago el asado y el fernet si encuentran en alguna parte que digan PIRATERÍA. Vamos.. es fácil. CONTROL+F y buscan eso. Gracias.

Finalmente se despide bien polite...
Suerte, y si querés discutir algo conmigo ya sabes donde encontrarme.
Espero que la próxima vez que leas algo aquí sea algo que tenga que ver con programación, con algo de android o linux y que no estés leyendo estas huevadas.
Y si, por otra parte no te gusta las cosas que escribo aquí, te pido mis mas sinceras disculpas, por ser tan criticón, por putear y mas que nada por ser un bloguero de mierda, con este blog de mierda.

Cristian

Labels: , , , , , , ,