Il est tout à fait possible d'éliminer certains bogues récurrents du code ASP en adoptant des méthodes d'écriture simples et efficaces.

L'indentation du code permet de déceler facilement diverses étourderies comme le montre l'exemple ci-dessous.

<%
Set obj_Recordset = Server.CreateObject("ADODB.Recordset")
obj_Recordset.Open "Select * from Fiche","DSN=personnel"
With Obj_Recordset
  Compteur = .Fields.Count - 1
  Dim i
  Do While Not .EOF
    For i = 0 To Compteur
      .Fields.Item(i)
    %Next
    .MoveNext
  Loop
  .Close
  Set obj_Recordset = Nothing
%>

<%
  Set obj_Recordset = Server.CreateObject("ADODB.Recordset")
  obj_Recordset.Open "Select * from Fiche","DSN=personnel"
    With Obj_Recordset
      Compteur = .Fields.Count - 1
      Dim i
      Do While Not .EOF
        For i = 0 To Compteur
            .Fields.Item(i)
        Next
        .MoveNext
      Loop
      .Close
  End With
  Set obj_Recordset = Nothing
%>

L'adoption de méthodes de convention pour nommer des variables peut être utile afin d'éviter des erreurs de nommage.

Dim Compteur
Dim CompteurOk
Dim CompteurNom

Dim IntCompteur
Dim BoolCompteur
Dim StrCompteur

La déclaration Option Explicit permet d'éviter les dysfonctionnements dûs à des variables déclarées implicitement, c'est-à-dire sans avoir utilisé auparavant l'instruction Dim.

Option Explicit
Dim IntCompte_total, IntTVA
IntCompte_total = 1000000

'Le calcul provoque une erreur d'exécution critique 
'dûe à deux variables mal orthographiées.
'Autrement, le résulat aurait été 0 à lap lace de 196000
Response.Write "Le taux de TVA permet de récupérer la somme de " _
             & IntCompte_total & " Francs : " _
             & (IntCompt_total * inttva) / 100 & " Francs"

La conversion des variables dans des types de données adéquats au moyen de fonctions VBScript, donne le moyen de se prémunir contre les erreurs relatives aux affectations avec de mauvais types de données étant donné le type de variable courant dans les langages de script, soit Variant.

Dim IntResultat, BoolResultat, Chaine
IntResultat = Cint(Variable_Variant)
BoolResultat = CBool(Variable_Variant)
Chaine = CStr(Variable_Variant)

Une lecture attentive et réfléchie de son code afin de détecter toutes les erreurs éventuelles dûes à la saisie de l'utilisateur ou à la transmission de valeurs de pages en pages ou encore à l'existence des pages ou fichiers pointées par des instructions demeure la meilleure solution d'éradication des erreurs.

<!-- Une erreur évidente s'est glissée dans le script -->
<%
  Dim objError
  Dim objConnection
  Dim objRecordset

  Set objConnection = Server.CreateObject("ADODB.Connection")
  Set objRecordset = Server.CreateObject("ADODB.Recordset")

  objConnection.Open strConnection

  objRecordset.Open "select Nom, Prénom from Personnel", objConn

  objRecordset.Close
  objConnection.Close
  Set objRecordset = Nothing
  Set objConnection = Nothing
%>

Enfin, la dernière étape avant de mettre l'application à la disposition des clients, reste essentielle est impérative. Elle consiste à tester rigoureusement l'ensemble de l'application en se mettant à la place de l'utilisateur final en se soumettant au parcours que ce-dernier aura à subir. Par la même occasion, cela donnera un aperçu de la convivialité et de l'ergonomie du site...