Cette activité est essentielle pour minimiser les risques associés à la technologie. Les logiciels doivent être vérifiés et faire l'objet de tests rigoureux avant d'être utilisés durant une période électorale et ce, en isolation, autant qu'avec les systèmes de communication et l'équipement. Une fois les tests exécutés avec succès, les logiciels devront faire l'objet d'un entretien sur une base régulière pour garantir leur bon fonctionnement lorsqu'ils seront mis à l'épreuve.
La rigueur appliquée à ces trois tâches dépendra du degré d'importance qu'on attachera au système de technologie concerné. En ce qui concerne le système utilisé pour une activité électorale critique comme le vote électronique, la vérification, les mises à l'essai et l'entretien devront être effectués avec beaucoup plus de rigueur.
Bien que ces activités en rapport avec l'équipement, les logiciels et les systèmes de communication fassent l'objet de fichiers différents, elles sont souvent interreliées et peuvent nécessiter qu'on les effectue conjointement.
Vérification des logiciels
Il est conseillé de faire effectuer la vérification des systèmes de grande importance comme le vote électronique par des autorités indépendantes. Pour les systèmes de moindre importance, la vérification peut s'effectuer à l'interne.
Les procédures de vérification des logiciels peuvent inclure les tâches suivantes :
- exécuter les mises à l'essai des logiciels pour s'assurer qu'ils fonctionnent selon les normes et qu'ils accomplissent les fonctions pour lesquelles ils ont été mis en application, y compris la vérification des codes;
- disposer d'une documentation suffisante;
- confirmer que les logiciels peuvent fonctionner dans des conditions normales et même extrêmes;
- s'assurer que les mesures de sécurité adéquates ont été prises et mises en application;
- s'assurer que les mesures appropriées de contrôle de la qualité ont été prises.
Des vérifications des codes de logiciels peuvent être nécessaires particulièrement lorsque dans le cas des logiciels de systèmes importants comme le vote électronique ou un système de publication des résultats de l'élection. Elles doivent être effectuées par des spécialistes indépendants à l'extérieur de l'organisme. La vérification des logiciels peut comprendre les fonctions suivantes :
- s'assurer que les codes sont logiques;
- s'assurer que les codes sont de conception modulaire, c'est-à-dire qu'ils se composent de modules individuels capables d'être vérifiés et mis à l'essai de façon indépendante;
- s'assurer qu'il n'existe pas de codes cachés qui sont en mesure d'effectuer des tâches non autorisées;
- s'assurer que les codes sont simples et faciles à comprendre;
- s'assurer que les codes se prêtent facilement à la vérification, c'est-à-dire qu'ils permettent de vérifier la circulation des données à l'intérieur d'un module et d'un module à l'autre;
- confirmer que les codes sont suffisamment robustes pour reconnaître immédiatement les erreurs et les corriger, erreurs qui pourraient occasionner la perte de données;
- veiller à ce que les codes offrent les mesures de sécurité nécessaires pour reconnaître et empêcher les tentatives d'accès non autorisées;
- confirmer que le système peut fonctionner sans avoir à établir des procédures complexes et obscures;
- s'assurer que les logiciels peuvent être facilement installés en période critique;
- s'assurer que l'entretien des logiciels n'est pas indûment complexe et qu'ils offrent la possibilité de déceler et de corriger facilement les erreurs après qu'ils ont été installés; et
- découvrir s'il est possible de modifier les logiciels et d'y ajouter de nouvelles fonctions.
Mise à l'essai des logiciels
Une fois la vérification des logiciels terminée, il est nécessaire d'effectuer des tests dans le but de confirmer que les logiciels fonctionnent adéquatement et qu'ils satisfont totalement les besoins de l'organisme.
Pour un système aussi essentiel que le vote électronique, il est très important d'établir un programme structuré de mise à l'essai pour s'assurer que tous les élements du système ont fait l'objet de tests. Il est recommandé d'effectuer au moins les tâches suivantes :
- développer un ensemble de critères auxquels les tests devront répondre;
- effectuer des tests fonctionnels pour s'assurer que les logiciels répondent aux critères;
- faire des évaluations de la qualité pour déterminer si le fonctionnement est adéquat;
- faire des essais dans diverses conditions les plus réelles possible;
- mener des essais périodiques pour s'assurer que les systèmes continuent de fonctionner adéquatement;
- exécuter des tests de haut volume pour déterminer la capacité des systèmes en situation critique comme en période électorale;
- saisir des données connues pour vérifier qu'elles sont identiques à la sortie comme à la saisie.
Entretien des logiciels
Une fois tous les logiciels vérifiés, mis à l'essai et mis en oeuvre, il faut continuer d'en assurer l'entretien. Les méthodes d'entretien varient selon le type et la complexité d'un système de technologie. Plusieurs fabricants de logiciels incluent un programme d'entretien recommandé et les fonctions d'entretien peuvent même faire partie du contrat de vente.
Le but des tâches d'entretien est de s'assurer que les logiciels continueront de fonctionner de la manière démontrée lors de la mise à l'essai parce que s'ils se détériorent, ils n'offriront pas le rendement espéré.
Les logiciels doivent continuer d'être évalués par des tests pour déterminer si des tâches additionnelles d'entretien sont requises. Lorsqu'ils sont fonctionnent pendant une longue période, il est bon d'élaborer des procédures permettant d'obtenir une rétroaction des utilisateurs afin de signaler les besoins d'entretien ou de modifications.
Lorsque des modifications sont apportées aux logiciels, il est important d'entreprendre une nouvelle série de vérifications et de tests pour s'assurer que les modifications ont atteint le niveau de fonctionnement souhaité.
Référence : Performance and Test Standards for Punchcard, Marksense, and Direct Recording Electronic Voting Systems, [Unites States] Federal Election Commission, US Government Printing Office, Washington DC, January 1990