On Mon, 20 Jun 2005 14:58:52 +0000 (UTC), Marc BoyerIl me semble pourtant que la première et la deuxième partie de la
phrase ont le même sens?
Non,
Heu... si.
- celles qui arrivent lors du débugage
J'ai voulu dire: les bugs.
- celles qui sont susceptibles de se produire en utilisation
normales
J'ai voulu dire: les problèmes qui ne sont pas dûs à une erreur dans
le programme, mais à un problème runtime tel que par exemple une
entrée incorrecte.
Mais je suis moins confiant. Donc, laisser
des tests qui vérifient que le code reste dans un état cohérent,
même en mode release, je ne vois pas ce que ça a de choquant.
Mais moi non plus.
Pierre et Gaby ont eu la même réaction que toi: ça m'étonne. Ai-je
conseillé de retirer ces tests dans les versions release? Ai-je
conseillé d'utiliser assert() plutôt qu'un autre mécanisme?
Je n'ai pas du tout voulu déconseiller la mise en place de tests
redondants qui aideront à détecter les derniers bugs lorsque le
programme sera mis en production.
On Mon, 20 Jun 2005 14:58:52 +0000 (UTC), Marc Boyer
Il me semble pourtant que la première et la deuxième partie de la
phrase ont le même sens?
Non,
Heu... si.
- celles qui arrivent lors du débugage
J'ai voulu dire: les bugs.
- celles qui sont susceptibles de se produire en utilisation
normales
J'ai voulu dire: les problèmes qui ne sont pas dûs à une erreur dans
le programme, mais à un problème runtime tel que par exemple une
entrée incorrecte.
Mais je suis moins confiant. Donc, laisser
des tests qui vérifient que le code reste dans un état cohérent,
même en mode release, je ne vois pas ce que ça a de choquant.
Mais moi non plus.
Pierre et Gaby ont eu la même réaction que toi: ça m'étonne. Ai-je
conseillé de retirer ces tests dans les versions release? Ai-je
conseillé d'utiliser assert() plutôt qu'un autre mécanisme?
Je n'ai pas du tout voulu déconseiller la mise en place de tests
redondants qui aideront à détecter les derniers bugs lorsque le
programme sera mis en production.
On Mon, 20 Jun 2005 14:58:52 +0000 (UTC), Marc BoyerIl me semble pourtant que la première et la deuxième partie de la
phrase ont le même sens?
Non,
Heu... si.
- celles qui arrivent lors du débugage
J'ai voulu dire: les bugs.
- celles qui sont susceptibles de se produire en utilisation
normales
J'ai voulu dire: les problèmes qui ne sont pas dûs à une erreur dans
le programme, mais à un problème runtime tel que par exemple une
entrée incorrecte.
Mais je suis moins confiant. Donc, laisser
des tests qui vérifient que le code reste dans un état cohérent,
même en mode release, je ne vois pas ce que ça a de choquant.
Mais moi non plus.
Pierre et Gaby ont eu la même réaction que toi: ça m'étonne. Ai-je
conseillé de retirer ces tests dans les versions release? Ai-je
conseillé d'utiliser assert() plutôt qu'un autre mécanisme?
Je n'ai pas du tout voulu déconseiller la mise en place de tests
redondants qui aideront à détecter les derniers bugs lorsque le
programme sera mis en production.
writes:Je sais. Et c'est bien là le problème : ce logiciel était
conçu et développé pour l'Ariane IV. Où l'assert servait
bien, et était même nécessaire.
Il n'y a pas d'assert en cause.
Au choix une exception (mais le nom donne n'est pas une
exception predefinie d'Ada) ou une interruption (le nom est
bon, mais le rapport parlait d'exception).
Il y a differents problemes. Parmis ceux dont je me souviens:
- on a reutilise un composant sans verifier que les nouvelles
conditions d'utilisation ne sortaient pas de la zone acceptable
- on a lance qqch sans faire de tests (alors que lors de la
decision precedente, la justification etait que des problemes
eventuels seraient detectes par les tests)
- on a laisse le malfonctionnement d'un composant dont l'utilite
etait terminee generer la destruction de la fusee
- on a laisse sortir d'un composant en mode production des infos
de debug (sur un bus servant normallement pour des donnees)
kanze@gabi-soft.fr writes:
Je sais. Et c'est bien là le problème : ce logiciel était
conçu et développé pour l'Ariane IV. Où l'assert servait
bien, et était même nécessaire.
Il n'y a pas d'assert en cause.
Au choix une exception (mais le nom donne n'est pas une
exception predefinie d'Ada) ou une interruption (le nom est
bon, mais le rapport parlait d'exception).
Il y a differents problemes. Parmis ceux dont je me souviens:
- on a reutilise un composant sans verifier que les nouvelles
conditions d'utilisation ne sortaient pas de la zone acceptable
- on a lance qqch sans faire de tests (alors que lors de la
decision precedente, la justification etait que des problemes
eventuels seraient detectes par les tests)
- on a laisse le malfonctionnement d'un composant dont l'utilite
etait terminee generer la destruction de la fusee
- on a laisse sortir d'un composant en mode production des infos
de debug (sur un bus servant normallement pour des donnees)
writes:Je sais. Et c'est bien là le problème : ce logiciel était
conçu et développé pour l'Ariane IV. Où l'assert servait
bien, et était même nécessaire.
Il n'y a pas d'assert en cause.
Au choix une exception (mais le nom donne n'est pas une
exception predefinie d'Ada) ou une interruption (le nom est
bon, mais le rapport parlait d'exception).
Il y a differents problemes. Parmis ceux dont je me souviens:
- on a reutilise un composant sans verifier que les nouvelles
conditions d'utilisation ne sortaient pas de la zone acceptable
- on a lance qqch sans faire de tests (alors que lors de la
decision precedente, la justification etait que des problemes
eventuels seraient detectes par les tests)
- on a laisse le malfonctionnement d'un composant dont l'utilite
etait terminee generer la destruction de la fusee
- on a laisse sortir d'un composant en mode production des infos
de debug (sur un bus servant normallement pour des donnees)
Pierre et Gaby ont eu la même réaction que toi: ça m'étonne. Ai-je
conseillé de retirer ces tests dans les versions release? Ai-je
conseillé d'utiliser assert() plutôt qu'un autre mécanisme?
Dans ta phrase tellle que je l'ai lu, "Assert n'est donc à utiliser
que pour le débogage", oui, ces tests disparraissaient dans la version
release (le débogage et l'exploitation en production étant des
phases à mon sens différentes).
Pierre et Gaby ont eu la même réaction que toi: ça m'étonne. Ai-je
conseillé de retirer ces tests dans les versions release? Ai-je
conseillé d'utiliser assert() plutôt qu'un autre mécanisme?
Dans ta phrase tellle que je l'ai lu, "Assert n'est donc à utiliser
que pour le débogage", oui, ces tests disparraissaient dans la version
release (le débogage et l'exploitation en production étant des
phases à mon sens différentes).
Pierre et Gaby ont eu la même réaction que toi: ça m'étonne. Ai-je
conseillé de retirer ces tests dans les versions release? Ai-je
conseillé d'utiliser assert() plutôt qu'un autre mécanisme?
Dans ta phrase tellle que je l'ai lu, "Assert n'est donc à utiliser
que pour le débogage", oui, ces tests disparraissaient dans la version
release (le débogage et l'exploitation en production étant des
phases à mon sens différentes).
On Wed, 22 Jun 2005 06:32:23 +0000 (UTC), Marc Boyer
wrote:
Mais ce que j'avais voulu dire, c'est que, étant donné la possibilité
de faire disparaître les assertions à la compilation, il ne faut pas
utiliser assert() dans les situations où on veut être certain que le
test sera exécuté. Par exemple, il ne faut pas utiliser
assert(condition);
au lieu de
if ( ! condition) {
std::cerr << "messagen";
abort();
}
Ce n'est pas pareil.
Je suppose que nous sommes maintenant d'accord...
On Wed, 22 Jun 2005 06:32:23 +0000 (UTC), Marc Boyer
<Marc.Boyer@enseeiht.yahoo.fr.invalid> wrote:
Mais ce que j'avais voulu dire, c'est que, étant donné la possibilité
de faire disparaître les assertions à la compilation, il ne faut pas
utiliser assert() dans les situations où on veut être certain que le
test sera exécuté. Par exemple, il ne faut pas utiliser
assert(condition);
au lieu de
if ( ! condition) {
std::cerr << "messagen";
abort();
}
Ce n'est pas pareil.
Je suppose que nous sommes maintenant d'accord...
On Wed, 22 Jun 2005 06:32:23 +0000 (UTC), Marc Boyer
wrote:
Mais ce que j'avais voulu dire, c'est que, étant donné la possibilité
de faire disparaître les assertions à la compilation, il ne faut pas
utiliser assert() dans les situations où on veut être certain que le
test sera exécuté. Par exemple, il ne faut pas utiliser
assert(condition);
au lieu de
if ( ! condition) {
std::cerr << "messagen";
abort();
}
Ce n'est pas pareil.
Je suppose que nous sommes maintenant d'accord...
Il y avait un cachier des charges.
^^^^^^
Il y avait un cachier des charges.
^^^^^^
Il y avait un cachier des charges.
^^^^^^