Question

Je suis sur le point d’apporter des modifications à un module Apache C existant pour corriger certaines failles de sécurité et mauvaises pratiques en général. Cependant, la fonctionnalité du code ne doit pas être modifiée (sauf dans les cas où elle corrige un bogue). Les tests de régression standard semblent être en ordre. Je voudrais savoir si quelqu'un connaît un bon moyen d'exécuter des tests de régression contre le code. Je pense à l’utilisation de C-Unit mais avec tous les liens avec l'APache Apache et les structures de statut, je me demandais s'il y avait un bon moyen de tester cela. Existe-t-il des frameworks pré-construits pouvant être utilisés avec C-unit par exemple?

Merci

Peter

Était-ce utile?

La solution

Je réfléchis depuis un moment à répondre à cette question, mais je me suis dit que quelqu'un d'autre pourrait proposer une meilleure réponse, car la mienne est plutôt insatisfaisante: non, je ne connais pas de cadre de ce type pour les tests unitaires.

Je pense que votre meilleur choix est d’essayer de refactoriser votre module C de manière à ce que ses dépendances sur la base de code httpd soient contenues dans une très fine couche de colle. Je ne m'inquiéterais pas trop des dépendances sur l'APR, qui peuvent facilement être liées au code de test de votre unité. Ce sont des choses comme utiliser l’enregistrement de requête que vous devriez essayer d’abréger un peu.

Je vais aller aussi loin et suggérer qu'une telle refactorisation est une bonne idée si le code est suspecté de contenir des failles de sécurité et de mauvaises pratiques. C’est généralement un très gros travail.

Vous pourriez également envisager d’effectuer des tests d’intégration plutôt que des tests unitaires (idéalement les deux), c’est-à-dire de générer un ensemble de requêtes et de réponses attendues du serveur, et d’exécuter un programme permettant de comparer les réponses réelles aux réponses attendues.

Donc, pas la réponse que vous recherchiez et vous avez probablement déjà pensé à quelque chose du même genre. Mais au moins, je peux vous dire d’expérience que si le module ne peut pas être remplacé par quelque chose de nouveau pour des raisons commerciales, il peut être rentable de le refactoriser à des fins de testabilité.

Autres conseils

J'ai passé un peu de temps à regarder les interwebs autour de vous car c’était une question qui m’intéressait moi-même. est tombé sur un article du wiki affirmant que

http://cutest.sourceforge.net/

a été utilisé pour les tests d’exécution d’apache portable c. pourrait être utile de vérifier cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top