Articles in category: Software testing

Alessandro Lai Alessandro Lai avatar

7 minute read

In the latest months I wrote multiple times, in different projects, code migrating PHPUnit toward major version 6. This upgrade is harder than the previous one, since in this version it was introduced a big breaking change: all classes got (finally!) namespaced. This means that any usage of those classes in your project needs to be updated. It may seem a simple find & replace job, but since you need to introduce at least one use PHPUnit\Framework\TestCase line at the top of each one of your test classes, it’s a boring and a little more than trivial task; also, upgrading it in a single big jump may not be feasible or prudent, especially in the case of open source or distributed libraries, where backward compatibility and support for old PHP versions must be ensured.

Alessandro Lai Alessandro Lai avatar

11 minute read

A few days ago I stumbled on a strange tweet that was highlighting a controversy about scalar type hints. Scalar type hints & return types vs no scalar type hints & return types is #PHP's new spaces vs tabs — Cees-Jan ūüĒä Kiewiet (@WyriHaximus) 19 maggio 2017 After asking references about this, someone alluded to this very short video: “PHP Bits: Visual Debt” (it’s only 3 minutes, please watch it before continue reading).

Elviro Rocca Elviro Rocca avatar

9 minute read

In un precedente articolo abbiamo visto le impostazioni di base in Xcode per la scrittura dei test unitari: abbiamo evidenziato inoltre l’importanza e l’utilit√† intrinseca dei test, attraverso un semplice esempio riguardante un caso d’uso tipico. Nel presente articolo vedremo alcune tecniche un po’ pi√Ļ avanzate: implementeremo uno Stub Object in Swift; analizzeremo un altro caso di test asincrono; Lo Stub Object Uno Stub Object (per il resto dell’articolo, stub) rappresenta un’istanza di una certa classe, la quale mima una vera classe presente nella nostra code base: l’istanza si comporta esattamente come una equivalente istanza della classe mimata, tranne alcune differenze, ad esempio alcuni metodi possono essere sovrascritti per poter fornire un determinato output utile per i test.

Elviro Rocca Elviro Rocca avatar

8 minute read

Tra i molti strumenti utili presenti in Xcode, il testing framework XCTest √® certamente uno dei pi√Ļ rilevanti, non solo per l’importanza intrinseca dello Unit Testing in generale, ma soprattutto per la facilit√† con la quale √® possibile scrivere ed eseguire test direttamente dall’IDE out-of-the-box, senza la necessit√† di installare componenti di terze parti o impostare una particolare configurazione per i progetti. In effetti Xcode, al momento della creazione di un nuovo progetto, oltre a creare un target per il binario principale crea automaticamente anche un target di test, cio√® un bundle aggiuntivo che pu√≤ essere caricato nel bundle principale per poter fisicamente eseguire i test una volta avviata l’app.

Sergio Santoro Sergio Santoro avatar

3 minute read

Controllare il tasso di coverage dei test √® un’attivit√† frequente tra gli sviluppatori. Numerosi sono i fattori che hanno reso il code coverage popolare: √® una metrica facile da comprendere; si misura senza difficolt√†; √® oggettiva e imparziale; √® universale (applicabile a tutti i paradigmi di programmazione). Ma al di l√† di questi vantaggi, possiamo affermare che una test suite con un’alta percentuale di coverage sia realmente efficace? Quando un test √® efficace?