CNAM Audit et Contrôle



Documents pareils
CNAM DE LILLE U.E. GLG101 "TEST ET VALIDATION DU LOGICIEL" Willy ANDRZEJAK

THEORIE ET CAS PRATIQUES

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Vérifier la qualité de vos applications logicielle de manière continue

Modèle Cobit

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

La politique de sécurité

Architectures web/bases de données

Suite IBM Tivoli IT Service Management : comment gérer le système d information comme une véritable entreprise

Fiche méthodologique Rédiger un cahier des charges

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Module BD et sites WEB

Mini-Rapport d Audit basé sur la méthode d analyse MEHARI

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications

ACCORD-CADRE DE TECHNIQUES DE L'INFORMATION ET DE LA COMMUNICATION. PROCEDURE ADAPTEE En application des articles 28 et 76 du Code des Marchés Publics

Prestations d audit et de conseil 2015

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

serena.com Processus et réussite Accélérez avec Serena TeamTrack

Colloque Du contrôle permanent à la maîtrise globale des SI. Jean-Louis Bleicher Banque Fédérale des Banques Populaires

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Les modules SI5 et PPE2

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Développement spécifique d'un système d information

CQP Développeur Nouvelles Technologies (DNT)

UM2 - Master 2 Année Sensibilisation aux Tests de Projets Informatique - Managed Testing -

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Calendrier crim.ca/formation

L audit Informatique et la Qualité

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

Expertises Métiers & e-business. Technologies Microsoft & OpenSource. Méthodologies et gestion de projet

Refonte front-office / back-office - Architecture & Conception -

Concepts et définitions

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Comment optimiser les tests avec une démarche d automatisation simplifiée

DÉPARTEMENT FORMATIONS 2015 FORMATION-RECRUTEMENT CATALOGUE. CONTACTS (+226)

Chapitre 9 : Informatique décisionnelle

DotNet. Plan. Les outils de développement

PROFIL DE POSTE AFFECTATION. SERIA (service informatique académique) DESCRIPTION DU POSTE

Catalogue de Formations

Qu'est-ce que le BPM?

Business Intelligence avec SQL Server 2012

Nouvelles Plateformes Technologiques

Présentation du Programme Régional de Formations Qualifiantes

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Rapport de certification

COMPÉTENCES TECHNIQUES

MV Consulting. ITIL & IS02700x. Club Toulouse Sébastien Rabaud Michel Viala. Michel Viala

Comment assurer la conformité des systèmes informatiques avec les référentiels et normes en vigueur

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Cloud Computing et SaaS

2.La bibliothèque ITIL est composé de 2 ouvrages La bibliothèque : Dans sa version actuelle, ITIL est composé de huit ouvrages :

X2BIRT : Mettez de l interactivité dans vos archives

PARTENARIAT DE L OBSERVATOIRE TECHNOLOGIQUE

Cours 20410D Examen

Le génie logiciel. maintenance de logiciels.

Catalogue de critères pour la reconnaissance de plateformes alternatives. Annexe 4

Ingénieur Développement Nouvelles Technologies

Panorama général des normes et outils d audit. François VERGEZ AFAI

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Brève étude de la norme ISO/IEC 27003

Gestion du centre de données et virtualisation

D ITIL à D ISO 20000, une démarche complémentaire

ANALYSE DE RISQUE AVEC LA MÉTHODE MEHARI Eric Papet Co-Fondateur SSII DEV1.0 Architecte Logiciel & Sécurité Lead Auditor ISO 27001

Business & High Technology

Chef de projet H/F. Vous avez au minimum 3 ans d expérience en pilotage de projet de préférence dans le monde du PLM et de management d équipe.

Rendez-vous la liberté avec Rational Quality Manager

Approche Méthodologique de la Gestion des vulnérabilités. Jean-Paul JOANANY - RSSI

Notre Catalogue des Formations IT / 2015

LA QUALITE DU LOGICIEL

Gestion de parc et qualité de service

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows.

Expert technique J2EE

Armand PY-PATINEC 2010

Introduction à la B.I. Avec SQL Server 2008

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

«Audit Informatique»

Les risques HERVE SCHAUER HSC

Architecture Orientée Service, JSON et API REST

1 JBoss Entreprise Middleware

Pilot4IT Tableaux de Bord Agréger et consolider l ensemble de vos indicateurs dans un même portail.

Cours 20411D Examen

Offres de stages 2011/2012

W4 - Workflow La base des applications agiles

Rapport de certification

ITIL V Préparation à la certification ITIL Foundation V3 (2ième édition)

ITIL V Préparation à la certification ITIL Foundation V3 (3ième édition)

Annexe : La Programmation Informatique

Analyse,, Conception des Systèmes Informatiques

PERFORMANCE ET DISPONIBILITÉ DES SI

Transcription:

CNAM Audit et Contrôle EXPOSE REDACTEUR(S) : FRÉDÉRIC MOTHY APPROBATEUR(S) : REF.INTERNE : VERSION : DATE : STATUT : DIFFUSION : GLG102_AUDIT_CONTROLE-1_0 1.0 15/12/2008 PRESENTE EXTERNE N AFFAIRE : 0000000001 SYLIS FRANCE Région Nord 251, avenue du Bois 59831 LAMBERSART Cedex Tél. : +33 (0)3 20 30 45 45 Fax : +33 (0)3 20 30 45 00 Reproduction Interdite SYLIS France 1 / 26

REDACTION DU DOCUMENT VERSION ACTION ACTEUR 1.0 Rédigé par Frédéric MOTHY EVOLUTIONS DU DOCUMENT VERSION DATE OBJET DE LA MISE A JOUR 1.0 15/12/08 Version initiale Reproduction Interdite SYLIS France 2 / 26

SOMMAIRE 1 Introduction... 4 2 Définition... 4 3 Principe d un Audit... 4 4 Les Acteurs d un Audit... 5 5 Les Différents Type d Audit Informatique... 5 6 Les étapes d un Audit Informatique... 5 6.1 Orientation et Planification...5 6.2 Evaluation...6 6.3 Synthèse...6 7 Le Coût d un Audit... 6 7.1 Comment est calculé le coût d un audit...6 7.2 Durée d un audit...6 8 Outils et Référentiels... 7 8.1 Outils de l auditeur...7 8.1.1 Les Normes... 7 8.1.1.1 ISO 27002... 7 8.1.1.2 ISO 27001... 7 8.1.2 Les Méthodes... 8 8.1.2.1 CRAMM... 8 8.1.2.2 EBIOS... 8 8.1.2.3 MEHARI... 9 8.1.2.4 OCTAVE... 9 8.2 8.2.1 Les Référentiels...10 COBIT...10 8.2.1.1 Présentation:...10 8.2.1.2 Modèle de référence:...10 8.2.2 ITIL...11 8.2.3 CMMI...12 9 Contrôle et Rapport d Audit... 13 9.1 Comment contrôler un projet informatique?...13 9.2 Les différents diagnostiques...13 9.3 Audit de Code d un projet informatique...14 9.4 Les différents outils de contrôle d un projet informatique...17 9.4.1 Les outils d aide à la réalisation des tests...17 9.4.2 Les outils de gestion de campagne de tests...18 9.4.3 Les outils de test de performance...19 9.4.4 Les outils de génération de tests fonctionnels (boite noire)...21 9.4.5 Les outils de génération de tests structurels (boite blanche)...22 9.5 9.5.1 Présentation de Microsoft Visual Studio Team System?...23 Définition : Usine Logiciel...23 9.5.2 Composition de Team System...23 9.5.3 Les points forts et les points faibles...23 9.5.4 Les différents types de test...24 A Principales fonctionnalités de l édition «Pour testeurs»...24 A. 1 Test de montée en charge...24 A. 2 Gestion des campagnes de test...24 A. 3 Test manuel...24 A. 4 Test web et test fonctionnel...24 B Les types de tests...24 B. 1 Test de montée en charge avec Visual Studio 2005 Team Test Load Agent...24 B. 2 Analyse statique de code...25 B. 3 Tests unitaires...25 B. 4 Couverture de code...25 B. 5 Analyse dynamique et Profiler de code...25 10 Conclusion... 25 11 Bibliographie... 26 Reproduction Interdite SYLIS France 3 / 26

1 Introduction Ce document a pour but d apporter un niveau d information complet par rapport aux audits et contrôles dans les phases d un projet et présente l ensemble des règles. 2 Définition Un Audit est : une mesure d'écart, une source permanente de progrès, une occasion de considérer les relations inter-services sous un autre angle et de façon objective, une formation continue à la démarche qualité et son système de management, une implication concrète de l ensemble des services de l entreprise dans la vie du système de gestion de la qualité. Par contre, il n est pas : un super contrôle, une surveillance déguisée, une occasion de régler ses comptes, une expertise technique ou un diagnostic du cœur de métier, une occasion de refaire des contrôles. 3 Principe d un Audit Le principe d'un audit informatique est de faire analyser, par un expert indépendant, l'infrastructure en place pour : estimer les risques technologiques susceptibles d'impacter les opérations de production définir les points à améliorer obtenir des recommandations pour faire face aux faiblesses de l entreprise L audit Informatique est un terme largement utilisé, il couvre donc des réalités souvent différentes, et certaines prestations réalisées sous le terme d «Audit Informatique» sont en fait des missions de Conseil. Reproduction Interdite SYLIS France 4 / 26

4 Les Acteurs d un Audit Les différents acteurs d un audit sont : La direction de l entreprise Le responsable informatique Les contrôleurs externes (commissaires aux comptes, administration fiscale, banques ) 5 Les Différents Type d Audit Informatique Les différents types d audit informatique sont les suivants : L'audit d'infrastructure informatique : C'est un bilan complet de votre architecture informatique. L'audit de sauvegarde : C'est un bilan complet de vos méthodologies et outils de sauvegarde informatique. L'audit éco-énergétique : C'est un audit permettant d'analyser les coûts engendrés par vos systèmes informatiques et vos systèmes d'impression et leur impact sur l'environnement. L'audit "Migration vers des logiciels libres" : Cet audit a pour but de vous aider dans votre migration de parc informatique vers des logiciels à codes sources ouverts. L'audit de site web : C'est un audit permettant d'analyser l'ergonomie de votre site web et son impact visuel sur vos visiteurs. 6 Les étapes d un Audit Informatique Un audit informatique se décompose en 6 étapes. 6.1 Orientation et Planification La première étape consiste à prendre connaissance de manière extrêmement fine des attentes du client. Il convient de bien comprendre ses besoins et de les reformuler. Avant de faire appel à un auditeur, établissez donc avec précision ce que vous attendez de l audit. Cette première étape est particulièrement importante dans la mesure où elle plante le contexte précis dans lequel l audit va être mené : autant d informations qui seront incluses dans le rapport d audit afin d en faciliter l interprétation, même plusieurs années après sa réalisation. Ensuite, une lettre de mission sera rédigée. En plus de définir la procédure à venir, elle a deux objectifs principaux : elle est le contrat qui lie l entreprise et l auditeur ; elle permettra d informer les différentes personnes impliquées de l arrivée d un audit dans l entreprise. Elle est dans le même temps -auprès des salariés- une légitimation de cet audit par la direction. Reproduction Interdite SYLIS France 5 / 26

Troisième phase : le recueil de toutes les informations nécessaires pour préparer la mission. Il s agit de récolter les éléments relatifs à la culture de l entreprise, au contexte général toujours en corrélation avec le système d information. Ensuite, des rendez-vous sont organisés avec les personnes concernées. En aucun cas il ne doit être technique : c est là la différence entre un audit et une mission d expertise. 6.2 Evaluation La cinquième étape consiste en la solidification de toutes les informations, soit par le croisement des entretiens, soit éventuellement par des contrôles sur le système avec des logiciels spécifiques. Par exemple, lors d un audit d applications, un audit par les données est efficace pour contrôler que les données sont bien entrées dans les applications, qu elles sont bien traitées par celles-ci et enfin que les rapports sont générés convenablement. 6.3 Synthèse Enfin, une réunion de synthèse est organisée entre l auditeur et les personnes intéressées. Il s agit de s assurer ensemble : que les questions de l auditeur ont été bien comprises ; que les réponses ont été bien interprétées. Le rapport est ensuite rédigé, de plusieurs manières (concis et plus complet), car il s adresse en général à plusieurs types de publics. Le rapport détaillé expliquera les attentes de départ, le contexte, les limites, les faiblesses constatées, leur importance relative et les solutions. Un rapport d audit doit être clair et didactique. 7 Le Coût d un Audit 7.1 Comment est calculé le coût d un audit Le coût d un audit se calcule en jours/homme. Un certain nombre de variables entre en compte dans ce calcul, telles que le nombre de sites concernés ou encore la complexité des problèmes rencontrés dans le système d information. Avec un prix moyen de la journée à environ 1000 euros, le Groupement national des professionnels de l informatique (GPNI) estime le coût global de la procédure entre 500 et 3000 euros. 7.2 Durée d un audit La durée minimum d un audit est de cinq jours. Reproduction Interdite SYLIS France 6 / 26

8 Outils et Référentiels 8.1 Outils de l auditeur 8.1.1 Les Normes 8.1.1.1 ISO 27002 La norme ISO 27001 a été créée en 2000 (ISO 17799), renommée en 2005. Objet: sécurisation de l information, confidentialité, intégrité, disponibilité Caractère facultatif => guide de recommandations 4 étapes dans la démarche de sécurisation: Liste des biens sensibles à protéger Nature des menaces Impacts sur le SI Mesures de protection 8.1.1.2 ISO 27001 La norme ISO 27001 a été créée en 2005. Objet: Politique du Management de la Sécurité de l Information Cette norme établit un Système de Management de la Sécurité de l Information : Choix des mesures de sécurité Protection des actifs Elle Utilise le modèle PDCA Act Plan Check Do 6 domaines de processus : - Définir une politique de sécurité - Définir le périmètre du SMSI - Evaluation des risques - Gérer les risques identifiés - Choisir et mettre en œuvre les contrôles - Rédiger Statement Of Applicability (charte du SMSI) Conditions remplies => certification ISO 27001 Reproduction Interdite SYLIS France 7 / 26

8.1.2 Les Méthodes 8.1.2.1 CRAMM La méthode «CRAMM» signifie «CCTA Risk Analysis and Management Method», elle a été créée en 1986 par Siemens en Angleterre. Cette méthode se décompose en 3 étapes : Identifier le software/ le hardware/ Les données Evaluer les menaces et vulnérabilités Choisir des remèdes. Cette méthode est lourde car elle s appuie sur 3000 points de contrôle. 8.1.2.2 EBIOS La méthode «EBIOS» signifie «Expression des Besoins et Identification des Objectifs de Sécurité», elle a été créée en 1995 par la DCSSI 1. Structure : Etude du Contexte Expression des besoins de sécurité Etude des Menaces Identification des Objectifs de Sécurité Détermination des exigences de sécurité Les intérêts de cette méthode sont : - Construction d une politique de sécurité basée sur une analyse des risques - L analyse des risques repose sur l environnement et les vulnérabilités du SI 1 La Direction Centrale de la Sécurité des Systèmes d'information Reproduction Interdite SYLIS France 8 / 26

8.1.2.3 MEHARI La méthode «MEHARI» signifie «Méthode Harmonisée d Analyse de Risques», elle a été créée en 1995 par le CLUSIF, remplaçant MARION. Les Phases de «MEHARI» sont les suivantes : Phase 1: Etablissement d un Plan Stratégique de Sécurité (Global) Phase 2: Etablissement de Plans Opérationnels de Sécurité réalisés par les différentes unités de l entreprise. Phase 3 : Consolidation des plans opérationnels (Global) Structure: Synoptique de la démarche MEHARI. P.S.S. Indicateur Tableaux de Bord P.O.E. Objectif Métriques Scénarios Plan d Actions P.O.S. Les intérêts de cette méthode sont : - Appréciation des risques aux regards des objectifs de sécurité - Contrôle et gestion de la sécurité 8.1.2.4 OCTAVE La méthode «OCTAVE» signifie «Operationnally Critical Threat, ASSET and Vulnérability Evaluation», elle a été créée en 1999 à l université aux Etats-Unis. Elle a pour but de permettre à une entreprise de réaliser par elle-même l analyse des risques de leur SI, sans aide extérieure (Consultant). Elle se déroule en 3 phases : Vue organisationnelle Technique Stratégie de sécurité Reproduction Interdite SYLIS France 9 / 26

8.2 Les Référentiels 8.2.1 COBIT 8.2.1.1 Présentation: La méthode «Control OBjectives for Information and related Technology» a été créée en 1996 par l ISACA / AFAI 2. Cette méthode contient les éléments suivant : Synthèse Cadre de référence Guide d audit Guide de management Outils de mise en œuvre Les Intérêts de cette méthode sont : Le lien entre les objectifs de l entreprise et ceux de technologies d information L intégration des partenaires d affaires L uniformisation des méthodes de travail La sécurité et le contrôle des services informatiques Le système de gouvernance de l entreprise 8.2.1.2 Modèle de référence: 2 L'AFAI, Association Française de l Audit et du Conseil Informatiques est le chapitre français de l'isaca. Créée en 1982, l'afai regroupe aujourd'hui plus de quatre cents membres représentant les auditeurs externes, les consultants et diverses fonctions au sein des entreprises : direction de l'informatique, de l'audit, de la finance et du contrôle de gestion. L'AFAI a pour objectif de développer les solutions de l'isaca, en informant les entreprises françaises et en participant à des projets tels que l'igsi. Reproduction Interdite SYLIS France 10 / 26

8.2.2 ITIL ITIL (IT Infrastructure Library) consiste en une série de livres définissant les processus de gestion des services technologiques (IT service management). ITIL a défini un processus «Gestion financière pour les services IT» qui a pour but d «assurer une administration rentable des biens IT et des ressources financières utilisées pour la fourniture des services IT». ITIL propose un exemple de catégorisation des coûts informatiques : Matériel (grands systèmes, stockage sur disques, réseaux, PC, portables, serveurs locaux) Logiciel (systèmes d exploitation, applications, bases de données, outils de contrôle de gestion) Ressources humaines (salaires, primes, coûts de transfert, frais, conseils) Locaux (bureaux, réserve, lieux sécurisés) Services externes (services de sécurité, de récupération en cas de sinistre, d approvisionnement à l extérieur) Transfert (dépenses internes provenant d autres centres de coûts au sein de l organisation) ITIL précise que d autres catégorisations peuvent être choisies ; l important est que tous les coûts soient identifiés. La catégorisation dans un «Cost Model» doit permettre : d analyser l évolution dans le temps de ses propres dépenses de comparer ses coûts avec ceux d autres organisations (internes ou externes). de servir de simple base pour l ABC (activity based costing) ITIL dénomme «Cost Model» ce que nous appelons le «Plan de comptes informatiques». Reproduction Interdite SYLIS France 11 / 26

8.2.3 CMMI Initialement élaboré pour pouvoir modéliser le développement logiciel, le CMM (Capability Maturity Model) a été "globalisé" par le SEI (Software Engineering Institute) et se nomme dorénavant CMM Integration. Il englobe les sous-modèles suivant : SE-CMM (pour System Engineering) ; SA-CMM (pour Software Acquisition) ; IPD-CMM (pour Integrated Product Development) ; SS-CMM (pour Supplier Sourcing) SW-CMM (pour Software). Il s'agit du CMM original. People CMM est en train d'être considéré pour le management des ressources humaines; Les bonnes pratiques préconisées par le modèle sont rassemblées en 24 macro-processus eux-mêmes regroupés en niveaux de maturité au nombre de 5 : Initial : Les facteurs de réussite des projets ne sont pas identifiés, la réussite ne peut donc être répétée. Piloté : Les projets sont pilotés individuellement. Standardisé : Les processus de pilotage des projets sont mis en place au niveau de l'organisation. Quantifié : La réussite des projets est quantifiée. Les causes d'écart peuvent être analysées. Optimisé : La démarche d'optimisation est continue. Reproduction Interdite SYLIS France 12 / 26

9 Contrôle et Rapport d Audit 9.1 Comment contrôler un projet informatique? L audit informatique se repose sur plusieurs composantes qui sont les suivantes : L examen de l'organisation du service, L examen des procédures liées au développement, L'examen des procédures liées à l'exploitation, L'examen des fonctions techniques, Les contrôles sur la protection et la confidentialité des données Lors d un audit informatique, plusieurs contrôles sont réalisés, ceux-ci sont : Le contrôle de la fiabilité Le contrôle de l environnement Le contrôle interne de la fonction traitée Le contrôle de cohérence Le contrôle hiérarchique Le contrôle de la fiabilité, se base sur : des entretiens avec le personnel informatique et certains utilisateurs des contrôles de documents ou d'états, pour validation des réponses. et sur des outils commerciaux bâtis autour d'un questionnaire d'audit, et d un logiciel d exploitation. Les jeux d'essai sont rarement utilisés dans l audit : lourdeur de mise en œuvre teste logiciels, mais pas le contenu des fichiers; manque d exhaustivité ; Décèle rarement des opérations frauduleuses L'examen du contrôle de l environnement : les procédures de développement et de maintenance; les procédures d'exploitation; les fonctions techniques; l'organisation du service et du projet 9.2 Les différents diagnostiques Les différents diagnostiques d un audit informatique sont : Diagnostique technique: architecture, outils, méthodes Diagnostique projet: aspects humains, organisationnels et qualité Diagnostique fonctionnel: ergonomie, cohérence, etc Diagnostique maintenance: évolutivité, modularité, dépendances système Propositions d'amélioration Diagnostique technique: architecture, outils, méthodes Une application ne peut être considérée comme fiable si, en dépit de logiciels de qualité, elle est utilisée en dépit de bon sens. Reproduction Interdite SYLIS France 13 / 26

9.3 Audit de Code d un projet informatique Un audit de code doit se baser en principe sur un document d architecture créé lors de l étude du projet. Ce document doit posséder une partie concernant les normes de développement et les bonnes pratiques. Celles-ci peuvent spécifier : Les conventions de nommage Les conventions de styles Les commentaires Les types et classes Les constantes et enums La gestion des exceptions Les tableaux et chaînes de caractères Les délégués & events Le cycle de vie des objets Les applications multithread La configuration des projets Visual Studio.NET L Organisation des fichiers de code source Après avoir parcouru le code source de l application, l auditeur pourra rédiger un rapport qui détaillera les problèmes rencontrés qui ne respectent pas les normes décrites dans le dossier d architecture technique. Exemple de remarques : ces remarques peuvent être illustrées avec des extraits de code. 1. Il faut penser à signer les assembly avec un nom fort. 2. Il faut penser à marquer toutes les assembly avec l attribut ClsCompliant à true (simplement dans le assemblyinfo global) 3. Il faut penser à bien indenter le code. 4. S astreindre aux règles de nommage : private const string statechecked = "4"; private const string stateunchecked = "o"; Ou bien : public IList<InfosRechercheDossier> LDossiersAExporter { get { return ldossiersaexporter; } set { ldossiersaexporter = value; } } 5. Il est indispensable de commenter au format XML les méthodes des interfaces publiques des services. IList<CreditImpot> GetAllCreditImpot(int familleid); double GetTotalCreditImpot(int familleid); Reproduction Interdite SYLIS France 14 / 26

6. Supprimer toutes les variables locales ou les paramètres inutiles : private DateTime? convertdatetimeexceltodatetime(string values) { DateTime dtetude = DateTime.Now; if (!string.isnullorempty(values)) { return DateTime.FromOADate(double.Parse(values)); } else { return null; } } 7. De même, ne pas créer de propriétés inutilisées, si seule la variable membre privée est utile: } private bool _genereaction; public bool GenereAction { get { return _genereaction; } set { _genereaction = value; } 8. Utiliser String.IsNullOrEmpty pour les comparaisons de chaînes vides : if (String.IsNullOrEmpty(textBoxPrenomUtilisateur.Text)) { if (messageerreur == "") textboxprenomutilisateur.focus(); C est valable aussi si les chaînes sont différentes : if (textboxcodepostal.text!= "") return true; 9. Les variables membres publiques sont interdites : public partial class CreerDossierForm : Form { #region définition des variables privées et accesseurs public Dossier _dossier; Reproduction Interdite SYLIS France 15 / 26

10. Eviter de catcher les exceptions génériques toujours spécifier une exception spécifique en fonction de ce que peut renvoyer le service concerné : try { total = _dossierservice.gettotalautresrevenus(idpersonne); } catch (Exception e) { MessageBox.Show(e.Message, "Erreur lors de la recherche du total des autres montants."); } 11. Penser à toujours mettre des contrôles de surface dans les méthodes publiques des services. Ne jamais présumer par exemple qu un objet est non null, et renvoyer une exception appropriée (catchée par les contrôleurs dans les IHMs) dans ce cas : public void DeleteDossier(Dossier dossier) { // Run within the context of a database transaction. IList<InfosRechercheDossier> listeinforecherche = GetInfosRechercheByDossierId(dossier.Id, dossier.loginutilisateur); 12. Il est plus facile de commenter au fur et à mesure que de tout commenter à la fin (considérations sur la maquette mises à part). Le code des IHMs est souvent celui qui est le plus «sioux» et le plus difficile à appréhender quand on le découvre. Tests Unitaires 13. Les tests doivent tous être indépendants et ne pas dépendre d un autre ou de l ordre d exécution des tests. 14. Les tests unitaires sont assez exhaustifs, mais il faut s astreindre à un code coverage de 100% sur les DLL d implémentation des services (notamment pour l ensemble des contrôles de surface pour obtenir du code le plus sécurisé possible). Packaging MSI 15. Rester professionnel et toujours penser à bien renseigner les attributs du projet MSI (ProductName, Title, etc ). Reproduction Interdite SYLIS France 16 / 26

Ce rapport qui diagnostique les problèmes peut comporter des propositions d améliorations. Par exemple : Dans cet exemple, la proposition d amélioration concerne un outil intégré à Microsoft Visual studio.net. Règles non prises en compte dans FxCop Une petite partie des remarques ci-dessus ont été mises en évidence par FxCop. Les règles suivantes ont été décochées pour l analyse de code : Design Rules : CA1020 CA1044 Globalization Rules : CA1300 CA1303 CA1304 CA1305 Naming Rules : CA1705 CA1706 Performance Rules: CA1807 CA1822 Usage Rules: CA2208 CA2209 9.4 Les différents outils de contrôle d un projet informatique Pour aider à contrôler ces projets informatiques, il existe différents outils sur le marché. Des sociétés se sont spécialisées dans la distribution de produits pour le test du logiciel, couvrant certains types de tests en fonction de leur spécialisation. 9.4.1 Les outils d aide à la réalisation des tests Ces outils sont également appelés «automates de tests», et présentent des fonctionnalités communes Capture et réexécution des scripts réalisés via une IHM. Sauvegarde des tests et des résultats associés. Génération de scripts de tests en fonction des langages et des plateformes. Liste des outils d aide à la réalisation des tests : Mercury Winrunner et QuickTest Pro de Mercury Quality Center Mercury Quality Center fournit un ensemble d'outils Web permettant de gérer et d'automatiser les tests de qualité logicielle dans un large éventail d'environnements applicatifs. Mercury Quality Center comprend des produits leaders tels que Mercury TestDirector, Mercury QuickTest Professional et Mercury WinRunner. Cette suite permet de créer un ensemble de tests, de le gérer en testant l'application tout au long du cycle de développement et de coordonner les résultats. Reproduction Interdite SYLIS France 17 / 26

QARun de Compuware Les outils de la gamme QACenter permettent aux entreprises de réaliser des tests de performances cohérents et fiables. Grâce à QARun, les programmeurs obtiennent les fonctionnalités d'automatisation dont ils ont besoin pour créer et exécuter des scripts de tests rapidement et de façon productive ainsi que pour vérifier les tests et analyser les résultats. Abbot (Open Source) Cette application permet d'enregistrer des actions via une interface (Costello) sur l'application testée. Ces scenarios de tests peuvent ensuite être rejoués à volonté. Une API Java est disponible pour automatiser ces tests avec Junit. 9.4.2 Les outils de gestion de campagne de tests Les principales fonctionnalités de ce type d outils sont : La définition de campagnes de test. L historisation des résultats. La gestion des tests de non-régression. Les outils de gestion des plans et campagnes de test servent à définir, organiser et conduire les campagnes de tests. Ils doivent donc s'interfacer avec tous les outils qui interviennent dans les tests. Les outils de gestion des tests ne sont donc pas des automates de test. Certains éditeurs de logiciels ont sorti des suites intégrées comprenant des outils de gestion de test et des automates afin d éviter l interfacage entre des outils d éditeurs différents. (Cf. Microsoft Visual Studio Team System) Liste des outils de gestion de campagne de tests : TestDirector de Mercury Quality Center Cet outil, complet comme ceux de la famille Mercury, prend en charge via une seule application Web l'intégralité de la procédure de test : gestion des besoins, planification, élaboration, organisation et exécution des tests, gestion des anomalies, analyse de l'état du projet Dans cette suite, «TestDirector» est un outil de gestion intégré qui organise et gère les processus de tests. «TestDirector» devient le point central de l'organisation, de la documentation et la structure dans chaque projet de test. «TestDirector» peut organiser une combinaison de tests manuels et automatiques, de régression, de charge, dans le même plan hiérarchique et visuel, ce qui permet de bien analyser la portée de tous les tests. Reproduction Interdite SYLIS France 18 / 26

Salomé TMF (Open Source) Salomé-TMF est un des rares outils libres de gestion de tests. Les principales fonctionnalités de Salomé-TMF sont : o Organisation du plan de tests sous forme d'arbre hiérarchique. o Organisation des tests en campagnes, pour l'exécution. o Possibilité d'intégrer et d'exécuter des tests automatiques (JUnit, Abbot, Beanshell). o Gestion des anomalies via Bugzilla ou Mantis. o Production de documents au format HTML. o Architecture pouvant inclure des plugins (connexion à Junit, planification des tests-cronexec-...). Test Manager de Soft Edition.Net Sous forme d'une application intranet «Test Manager» a pour but d aider les managers responsables d équipes de tests à créer, planifier et organiser leurs différentes sessions. C est aussi une gestion documentaire et un apport méthodologique pour vos équipes de tests. Liste des fonctions de Test Manager : 1. Aide à la création et à l organisation de vos documents de test 2. Aide à la création de vos plans et stratégies de tests 3. Dimensionne, organise et créez vos campagnes de tests 4. Délivre des rapports précis à votre Top Management pour le suivi 5. Suivi de la production, des campagnes et de la couverture fonctionnelle 6. Etablit le lien entre vos documents de tests et vos spécifications 7. Donne un statut précis et en temps réel pour toutes vos campagnes de tests 8. Point d intégration avec vos Demandes de fonctionnalités 9. Point d intégration avec vos Anomalies (Bugs) 9.4.3 Les outils de test de performance Les outils de test de performance proposent souvent : Le test de montée en charge. La simulation d'un environnement spécifique. L évolution agressive de l'accès aux ressources. Les tests de performances d'une application sont souvent menés pour des sites Web ou Intranet. En effet, lors du développement de sites Web, il y a souvent des exigences quant aux performances d accès au site (afin d éviter des temps d accès trop longs). Liste des outils de test de performance : WAPT de SoftLogica «WAPT» est un outil de test de charge pour applications Web et intranet. Il enregistre des scénarios de tests puis permet de les rejouer à volonté en faisant varier : le nombre d'utilisateurs, l'intervalle entre chaque test, etc. Reproduction Interdite SYLIS France 19 / 26

Mercury LoadRunner de Mercury Quality Center «LoadRunner» est le produit de «Mercury» chargé des tests de stress et de montée en charge. «LoadRunner» permet : Obtenir un tableau précis des performances système de bout en bout. Vérifier que les applications nouvelles ou mises à niveau répondent aux besoins de performances spécifiés. Identifier et éliminer les goulets d'étranglement des performances pendant le cycle de vie du développement. Siege (Open Source) Un outil Open Source permettant de simuler nombre de connexions sur un site web. Reproduction Interdite SYLIS France 20 / 26

JMeter (Open Source) du groupe Apache «JMeter» est un outil de test de performance pour ressources statiques ou dynamiques. Cet outil peut simuler de lourdes montées en charge sur une application serveur ou sur un réseau. Il est codé à 100% en Java, interface graphique en Swing. «JMeter» permet de mesurer les performances de : Sites Internet Serveurs FTP Bases de données (via les drivers JDBC) Scripts Perl Objets JAVA (applets) 9.4.4 Les outils de génération de tests fonctionnels (boite noire) L objectif des outils de génération de tests fonctionnels est de vérifier la conformité du fonctionnement d un système vis-à-vis des exigences de l utilisateur (plus globalement du cahier des charges). Ces outils évitent la création «manuelle» de scripts de tests, qui prend du temps et qui n est pas forcément parfaite. Les éditeurs proposent donc des outils les plus complets possibles, en offrant un maximum de fonctionnalités automatiques (génération de scripts de tests, de rapports des résultats attendus et atteints ou non, etc.) et d indicateurs graphiques pour une utilisation conviviale, aisée et rapide. Liste des outils de tests fonctionnels : Leirios Test Generator de LEIROS Créé en 2003, Leirios est un éditeur de logiciels de génération automatique de tests. Prix de la meilleure innovation technologique de Capital-IT 2007 et Prix de l Entreprise d Avenir 2006 pour la Région Est, Leirios est un essaimage du Laboratoire Informatique (CNRS/INRIA) de l Université de Franche-Comté. «Leirios Test Generator» (LTG) : 1. Une modélisation fonctionnelle est effectuée à partir des Spécifications Techniques de Besoins par l utilisateur. 2. Le modèle fonctionnel résultant (B, Statecharts ou UML) est utilisé par le «générateur de tests LTG» pour créer les cas de tests. L utilisateur paramètre simplement ses critères de couverture. 3. Le «générateur de scripts LTG» compose alors les scénarios de tests. 4. Les scripts ainsi créés sont exécutés dans l environnement dédié (banc de test). Conformiq Test Generator de Conformiq Software «Conformiq Test Generator» peut être utilisé dans les champs d'application suivants : Test de fonction, de système et d'acceptance Test de régression (tests quotidiens automatiques des structures) Test d'intégration (simulation de parties du système) Interface de test (JPOS, COM, J2EE, HTTP, SQL, OPC) Test de protocole / plate-forme (TCP/IP, IPSec, GSM, Symbian) Reproduction Interdite SYLIS France 21 / 26

Visual WebTester de Softbees C est un outil de tests automatisés : tests fonctionnels, test de régression test d'usabilité pour applications Web. evalid de Software Research Il vérifie la conformité aux spécifications fonctionnelles des sites Web. Multiples modes de synchronization possibles. HTTP/HTTPS, JavaScript, XML, Applets Java, Flash, ASP, JSP et ActiveX supportés. 9.4.5 Les outils de génération de tests structurels (boite blanche) Ces outils permettent de valider ce que fait le logiciel testé. Ils sont donc complémentaires aux outils de tests fonctionnels qui vérifient, eux, ce que doit faire le logiciel. C est pourquoi des éditeurs ont créé des suites comprenant ces deux types de tests. Rational Test RealTime de IBM C est une solution multiplateforme permettant de tester les composants et d'analyser l'exécution du code C, C++, Java et Ada. Il est totalement compatible avec les outils tiers novateurs (Mathworks Simulink, Microsoft Visual Studio et TI Code Composer Studio). xunit, JUnit, PHPUnit, CPPUnit, PyUnit, JUnit Le développement piloté par les tests (Test-Driven Developpement ou TDD) est devenu une évidence implacable. Le principe du TDD est donc, avant même d'écrire le code d'une fonctionnalité, d'écrire le test pour ce futur code. Une fois le test écrit, le code de la fonctionnalité devra toujours passer correctement le test avant de pouvoir valider celle-ci. Reproduction Interdite SYLIS France 22 / 26

9.5 Présentation de Microsoft Visual Studio Team System? 9.5.1 Définition : Usine Logiciel Une usine logicielle peut être définie comme l'ensemble des outils mis en œuvre dans le cadre d'un développement logiciel, ainsi que les démarches associées à l'utilisation de ces outils. Cela ne se limite pas à la production du code source, mais à tous les éléments qui participent à la bonne réalisation du projet (tests, documents, suivis, versions,..). 9.5.2 Composition de Team System Microsoft Visual Studio Team System comporte : D une part, les outils nécessaires à la création d applications : Application Web Form (site web ou client Léger) Application Win Form (programme windows ou client lourd). D autre part, des outils de test : Tests unitaires Couverture de code Gestionnaire de tests Tests web Tests de montée en charge. Puis, des outils de mesure de qualité : Analyse statique Analyse dynamique (mémoire et temps d exécution) Et enfin des outils pour gérer le projet : Gestionnaire de version Fiches de suivi (tâches, bugs, etc...) Portail Tableaux de bord. 9.5.3 Les points forts et les points faibles Evidemment, ces outils ne sont pas innovants par eux-mêmes car ils existent déjà des outils équivalents sur le marché de l open source, du monde java (Junit) et dans le monde.net (Nunit). Ces différents outils peuvent dans certains cas avoir des fonctionnalités plus avancées et d une plus grande maturité. L avantage de Team System se situe dans l intégration de ceux-ci qui permet une prise en main plus rapide et une plus grande intuitivité, qui écarte l étape de sélection et d intégration d outils divers. Team System met à disposition un référentiel unique et centralisé de toutes les données et métriques liés au projet et permet ainsi de relier celles-ci entre elles (tests, compilation, tâches, scénarios de tests, etc..). C est un «outil clé en main». Les outils de gestion de projet ne sont pas limités au monde Microsoft.Net et peuvent être utilisés par des projets Java. D ailleurs, il existe plusieurs plugins pour Eclipse. Reproduction Interdite SYLIS France 23 / 26

9.5.4 Les différents types de test Visual Studio Team Edition for Software Testers propose un ensemble cohérent de fonctionnalités intégrées dans Visual Studio pour assurer la qualité des applications ou des services Web : tests manuels, tests d interfaces Web, tests unitaires, tests de performance, tests génériques (réutilisation de vos tests existants). Ces tests sont organisés en campagnes qui ciblent des fonctionnalités ou des versions des applications. Les projets de tests sont intégrés dans les solutions de développement et gérés en configuration. A Principales fonctionnalités de l édition «Pour testeurs» A. 1 Test de montée en charge Le test de montée en charge simule des utilisateurs virtuels pour valider la capacité à supporter la charge de vos applications web. Les utilisateurs virtuels suivent différents scénarios enregistrés directement depuis le navigateur. A. 2 Gestion des campagnes de test On organise les tests (de montée en charge, unitaires, manuels, web) pour déterminer lesquels sont exécutés, dans quel ordre et à quel moment. Permet de créer des campagnes de tests spécifiques à une version et un contexte particuliers. A. 3 Test manuel Il permet de documenter et de suivre l exécution de tests qui ne peuvent être automatisés. Le scénario est décrit dans un document Word ou texte. A. 4 Test web et test fonctionnel C est l enregistrement d un parcours dans un navigateur pour simuler un utilisateur. Il est possible de «variabiliser» les données, d utiliser des jeux de tests. B Les types de tests B. 1 Test de montée en charge avec Visual Studio 2005 Team Test Load Agent Team Test Load Agent permet de faire les tests de montée en charge, en répartissant les utilisateurs virtuels sur de multiples machines (PC ou serveurs). Avec Visual Studio Team Edition for Testers, vous créez les scénarios de tests et ensuite vous orchestrez vos campagnes de test de montée en charge en pilotant les agents Team Test Load Agent. Les résultats obtenus sont consolidés en un point central, facilitant ainsi l analyse. Visual Studio Team Test Load Agent est commercialisé par processeur, indépendamment du nombre d utilisateurs simulés. Avec cette édition de Visual Studio Team System, les développeurs augmentent la qualité du code qu ils produisent. Ils peuvent valider le respect des règles de codage, auditer le fonctionnement de leur application, créer des tests unitaires et connaître la couverture du code. L ensemble de ces fonctionnalités est intégré dans l outil de développement et est très simple à prendre en main en fonction de ses besoins. Reproduction Interdite SYLIS France 24 / 26

B. 2 Analyse statique de code L analyse de votre code à la compilation permet d assurer le respect des conventions de codage : règles de nommage, règles d architecture, failles de sécurité potentielles. Pour le code «managé», il s agit d une évolution de l outil FxCop ; pour le C++, c est un nouvel outil. B. 3 Tests unitaires Microsoft Visual Studio Team System génère automatiquement des tests unitaires qui invoquent les méthodes des classes et vérifient les valeurs de retour. Les outils fournis permettent d injecter des jeux de données. Ces tests sont exécutés automatiquement dans Visual Studio ou sur le serveur de compilation. B. 4 Couverture de code Microsoft Visual Studio Team System détecte le code parcouru par les tests unitaires. Un taux de couverture minimum doit être atteint pour que les tests unitaires soient réellement utiles. Les résultats sont affichés d une part graphiquement dans la méthode analysée, d autre part de façon statistique sur le serveur. Il est possible d exécuter des séries de tests unitaires. B. 5 Analyse dynamique et Profiler de code Microsoft Visual Studio Team System Analyse les performances des applications pour identifier les goulets d étranglement. Cette analyse est basée soit sur un échantillonnage statistique, soit sur une instrumentation complète du code. Cette deuxième méthode complète l échantillonnage par une analyse beaucoup plus fine sur des ensembles plus restreints. 10 Conclusion La majeure partie des outils de l audit informatique se base sur la structure du «Cobit». L audit informatique s est imposé et s inscrit dans l avenir des entreprises. La normalisation est synonyme de développement et de crédibilité. Nous pouvons remarquer un essor de ce métier. Celui-ci recrute. Reproduction Interdite SYLIS France 25 / 26

11 Bibliographie Titre Auteur Editeur Audit des projets informatiques Henri Ly Hermes Science Publications Audit Comptable Audit Informatique Hugues Angot De Boeck L'audit qualité interne Christophe Villalonga Dunod Les nouvelles pratiques de l'audit qualité interne G. Krebs, Y. Mougin AFNOR Mémento d'audit interne P. Schick Dunod Reproduction Interdite SYLIS France 26 / 26