Pré-compilation PL / SQL et contrôle de la qualité du Code dans un environnement de construction automatisé? [fermé]

nous construisons des logiciels en utilisant Hudson et Maven. Nous avons C#, java et last, mais pas des moindres sources PL / SQL (sprocs, packages, DDL, crud)

pour C# et Java, nous faisons des tests unitaires et des analyses de code, mais nous ne connaissons pas vraiment la santé de nos sources PL/SQL avant de les publier dans la base de données cible.

exigences

il y a deux choses que nous ne voulons pas tester dans la priorité suivante:

  1. les sources sont-elles valides, donc"compilables"?
  2. pour les paquets, en ce qui concerne une certaine base de données, compileraient-ils?
  3. qualité du Code: avons-nous des défauts de code comme des doublons, des méthodes trop complexes ou d'autres violations à un ensemble défini de règles?

aussi,

  • l'outil doit fonctionner sans tête (commandline, ant, ...)
  • nous voulons faire l'analyse partielle de la base de code (modifié sources uniquement)

outils

nous avons fait un peu de recherche et avons trouvé les outils suivants qui pourraient potentiellement aider:

  • Cast Application Intelligence Platform (AIP) : semble être un serveur qui saisit l'information sur "n'importe quoi". Je n'ai pas trouvé de version de console qui puisse être exportée dans un format lisible.
  • Crapaud pour Oracle : la version professionnelle inclut quelque chose appelé Xpert valide un ensemble de règles contre une base de code.
  • Sonar + PL/SQL-Plugin : utilise du Crapaud pour Oracle pour afficher le code-santé le sonar-way. Ceci est pour parcourir l'état actuel de la base de code.
  • Semantic Designs DMSToolkit : analyse très générale de la base du code source. Ligne de commande disponible?
  • Détecteur de Clones Semantic Designs : détecte les clones. Mais aussi via la ligne de commande?
  • Fortifier Analyseur de Code Source : Semble être axé sur les questions de sécurité. Mais c'est peut-être extensible? plus...

Jusqu'à présent, Le Crapaud pour Oracle avec Sonar semble être une solution élégante. Mais peut-être que nous manquons quelque chose ici?

des idées? D'autres produits? Expériences?

questions connexes sur SO:

  • Statique Outils d'Analyse de Code pour les Procédures Stockées?
  • https://stackoverflow.com/questions/839707/any-code-quality-tool-for-pl-sql
  • Existe-t-il un outil d'analyse statique pour Python, Ruby, Sql, Cobol, Perl, et PL/SQL?
22
demandé sur Community 2010-06-10 16:18:57

3 réponses

je pense que ce blog décrit le processus nécessaire:

http://www.theserverlabs.com/blog/?p=435

s'il vous Plaît vérifier les et laissez-moi savoir ce que vous en pensez.

6
répondu Hanno 2016-07-18 09:54:18

notre approche est de garder chaque objet de base de données (tables, vues, fonctions, paquets, sprocs etc) dans son propre fichier sous contrôle source et avoir un serveur d'intégration ( TeamCity , Hudson etc) faire une construction nocturne de la base de données - à partir de source - où il tombe et recrée le schéma avant de vérifier les erreurs de compilation dans la table de système user_errors . Cela vous permet de savoir quand quelqu'un a introduit des erreurs de compilation dans la construction.

la prochaine étape est d'utiliser quelque chose comme Pluton pour ajouter des tests unitaires à votre code PL/SQL et ajouter ceux-ci dans la tâche de construction nocturne. Pour nous, il a fallu disposer d'un échantillon d'ensembles de données d'essai (également sous contrôle de source) qui nous permettent de mettre la base de données dans un "état connu" aux fins d'essai.

Je n'ai rien trouvé qui nous aide beaucoup avec tout ce qui précède donc c'est principalement une collection de tâches Ant, des scripts shell personnalisés et wizardry, qui applique la DDL requise à une base de données vide et utilise DBMS_UTILITY.COMPILE_SCHEMA() pour compiler le schéma. Vous pouvez ajouter plus de choses de fantaisie plus tard, comme retracer des objets qui ne compilent pas ou échouent des tests à un soumettre dans le contrôle des sources, et l'émission "blâm mail".

je serais vraiment intéressé de voir si quelqu'un d'autre a une meilleure approche ou s'il ya un produit disponible sur le marché qui fait cela pour moi!

4
répondu ninesided 2010-08-13 10:49:52

notre DMS Software Reengineering Toolkit est la base pour les outils personnalisables arbitraires. Il a une face avant PL/SQL qui peut être utilisée pour construire des contrôles de qualité de code source arbitraires. Oui, il y a une version en ligne de commande.

il existe une variété de PL/SQL COTS tools basé sur DMS qui pourrait être utilisé pour vérifier la qualité:

  • Formatter - Cleanans up layout. Effet secondaire: statique vérification de la syntaxe légale PL /SQL
  • moteur de recherche de Code Source - permet une recherche rapide de la base de code source indexée. Calcule les mesures Halstead et Cyclomatiques comme un effet secondaire de la mise en place de l'indice.
  • CloneDR - recherche et rapports dupliqué code PL/SQL
  • de la Couverture de Test - détermine la partie de code PL/SQL n'est pas exécuté par des tests (ad hoc, de l'unité ou des tests fonctionnels)

tous ceux-ci ont commande ligne versions.

2
répondu Ira Baxter 2010-10-06 14:50:08