Latest posts

Stubbing Apple’s UI Tests

A couple of months ago we decided to revisit the automatic user interface test suites of our iOS app trying to approach the subject with a fresh set of mind. The existing code base we had consisted on a fairly large number of test cases that used the popular KIF testing framework which, at the […]



The test concept: cross browser, cross systems, cross environment!

Every software engineer has some existential doubts… Is possible to set-up a test into few steps? Is possible to set-up a test environment independent? …For example build the same test suite first in  development environment, preproduction  and finally into production…? Is possible execute a test suite in multiple and different browsers? …For example Firefox, Google […]



Building an in-house Test Lab

Building Android application is well-known to require quite a bit effort in the testing phase. Even though developers adopt all the best practices to optimize the user experience of their app on the larger audience possible testing on emulators won’t make 100% sure that your app will work at the same in one particular device. […]



git-goodness

Capire GIT dai nostri errori

PERCHE’ DI QUESTO ARTICOLO: Ho deciso di scrivere un articolo su GIT perché mi sono accorto che ancora oggi non tutti sanno bene come utilizzare questo strumento e ciò comporta il perpetrarsi di vari errori. Ecco quelli che tratterò in questo documento: commit che entrano “per sbaglio” nella branch di release commit che erano stati […]



Cross Environment BDD Tests with Behave

Behavior-driven development [^1] is a practice in software development in which developers, QA and business people collaborate together to define test cases in a natural language which non-technical people can understand, and then automate such tests to provide quick feedback on the behavior of the application during its development. To fulfill this objective, different specialized […]



Blue/Green deployment con AWS Elastic Beanstalk

Premessa Il blue-green deployment è una tecnica di rilascio di una applicazione che ha lo scopo di ridurre al minimo il downtime del servizio. Il rilascio di un aggiornamento può portare un disservizio a causa del processo di rilascio stesso (spegnimento del servizio, aggiornamento, riavvio). In questo caso il disservizio è prevedibile. Oppure può essere […]



Websocket in Go, implementazione di una web chat

L’applicazione è stata implementata utilizzando la libreria Gorilla WebSocket package. Per eseguire l’esempio aprire la pagina http://127.0.0.1:8080/ con un browser compatibile con il protocollo websocket. Server L’applicazione lato server definisce due tipi principali, hub e connection. Il server crea un istanza di tipo connection per ogni websocket. Il tipo hub definisce due canali che vengono […]



blogGO, un blog scritto in GO

Introduzione: Nell’articolo seguente andremo a realizzare passo dopo passo un blog. Utilizzeremo come linguaggio di programmazione GO, il nuovo linguaggio di casa google. Andremo quindi ad implementare le API che ci permetteranno di gestire l’intero blog (articoli, commenti, autori). Realizzeremo poi l’interfaccia web tramite Revel che si interfaccerà con queste API. Infine andremo ad analizzare le […]



Docker Logging for dummies: una semplice guida alla scelta

Il monitoring del software è la chiave per prodotti robusti ed efficienti. Docker sembra essersi affermata come tecnologia leader delle piattaforme di container, ma quali possibilità ci offre per il logging e il monitoring dei
processi isolati al loro interno?



New way of delivering software

Just like Amazon is trying to reinvent the way goods are delivered, the tech world is trying to do the same for software. It seems that today is simpler for an automatic system to create a clean and isolate environment for each artifact rather than try to coordinate and share resources between many of them. This moves us from package […]