Guide complet : Sécurité informatique et tests logiciels

Classé dans Informatique

Écrit le en français avec une taille de 4,83 KB

La sécurité informatique

La sécurité informatique est le domaine qui met l'accent sur la protection de l'infrastructure informatique et de tout ce qui lui est associé, y compris les informations. Pour cela, il existe un certain nombre de normes, protocoles, méthodes, règles, outils et lois visant à minimiser les risques pour l'infrastructure ou l'information.

Qu'est-ce que la cryptographie ?

Elle peut être comprise comme un ensemble de techniques permettant de résoudre les problèmes de sécurité de l'information : l'authenticité, l'intégrité, la confidentialité et la non-répudiation.

Différence entre cryptographie symétrique et asymétrique

La principale différence est que, dans la cryptographie symétrique, la clé pour chiffrer et déchiffrer est la même, alors qu'en cryptographie asymétrique, il existe une clé pour chiffrer et une autre pour déchiffrer. Le chiffrement symétrique inclut les chiffrements par bloc, les flux et les fonctions de hachage.

Les niveaux de sécurité

Les utilisateurs finaux ne sont généralement pas conscients de la sécurité lorsqu'ils utilisent un système. Ces questions sont parfois perçues comme une nuisance, car la sécurité est souvent en opposition avec le confort et la facilité d'utilisation. C'est pourquoi les utilisateurs peuvent avoir une image négative de la sécurité, la jugeant gênante. Dans un environnement sécurisé, l'utilisateur doit effectuer des tâches parfois inconfortables (mots de passe, changements réguliers), ce qui peut limiter ses opérations et l'accès aux ressources.

Pourquoi tester le logiciel lors du développement ?

Parce que les processus de développement logiciel ont tendance à être chaotiques, il est nécessaire d'associer des processus d'assurance qualité pour répondre correctement aux exigences du client.

Le coût de correction d'un défaut découvert à un stade avancé (comme la mise en œuvre) est très élevé, tant en termes de budget que de calendrier. Pour cette raison, nous mettons en œuvre des tests dès le début du développement.

Le test consiste à exploiter le système logiciel dans des conditions contrôlées (normales ou anormales) pour évaluer les résultats. On peut appliquer volontairement des erreurs pour déterminer si des événements indésirables se produisent ou non.

Avantages des tests pour le développement logiciel

  • Réduction des défauts : Évite d'introduire des régressions lors de l'ajout de nouvelles fonctionnalités.
  • Documentation : Le code de test est souvent plus concis et facile à comprendre que le code source lui-même.
  • Réduction des coûts : Détecter les erreurs tôt évite des corrections coûteuses en fin de projet.
  • Facilitation du redéploiement : Les tests servent de critères d'acceptation, garantissant que les modifications respectent les spécifications.
  • Limitation du périmètre : Aide les programmeurs à se concentrer sur les fonctionnalités requises sans s'égarer.
  • Développement plus rapide : Permet de valider les fonctionnalités existantes et de se concentrer sur les nouvelles en toute sécurité.

Qui doit effectuer les tests ?

Les tests doivent être conçus et exécutés par des personnes différentes de celles ayant réalisé l'analyse, la conception et surtout le travail de programmation.

  • Analystes, concepteurs et développeurs : Ils ont un point de vue créatif et peuvent manquer certaines anomalies dans leur propre travail.
  • Testeurs : Ils se concentrent sur les règles métier et les exigences. Ils adoptent une approche critique pour trouver des failles dans la fonctionnalité réalisée par autrui.

Que sont les tests logiciels ?

Ce sont les processus qui permettent de vérifier et de garantir la qualité d'un produit logiciel. Ils servent à identifier les défaillances de mise en œuvre, de qualité ou d'utilisation.

Objectifs des tests

  1. Découvrir une erreur par l'exécution du programme.
  2. Un bon cas de test a une forte probabilité de découvrir une erreur non encore identifiée.
  3. Un test est réussi s'il découvre une erreur. Cela s'applique au code, mais aussi à la documentation et à l'aide.

Outils de test logiciel

Les outils de test aident les équipes à étudier les erreurs, vérifier la fonctionnalité et assurer la fiabilité du logiciel. Certains fournisseurs proposent des suites intégrées pour tout le cycle de vie, tandis que d'autres se spécialisent sur des étapes spécifiques du développement.

Entrées associées :