TestCase Developement

Looking at so many projects which runs into problemsscenarios related to DB, scenarios related to
because of client finding out defects in eitherexperience based on the domain, scenarios based on
production or client testing, though test execution playsthe technology etc.
big role but I feel test coverage plays a bigger role. ITest data - The test data should be extensive. We
agree exhaustive testing is not possible but the targetshould consider boundary value and equivalence
should be to test all possible path and bigger challengepartitioning where ever applicable. Normally what we
is to identify all the possible path. The conventional waydo is we find out the business data and forget about
of writing test cases is not enough to achieve a goodthe negative data and field level validation data. So the
test coverage. You need to have a different approachchecklist should have the check points for such data
matching today's application complexity. With myas well.
experience I feel if we do just reverse of what weNon-Functional - Non functional scenarios are basically
are doing in test case writing cycle will help.kind of negative scenarios and basic level of security
Normally once we complete writing test cases wescenarios like user click the browser back button, click
used to review the test cases based on the checkliston the refresh button, user copy the url and paste in
which contains all the types of test cases possible forthe address bar and access the application, user
this project. I feel we should have a robust checklistcloses browser without closing the application etc. The
which should be designed based on the domain andchecklist should cover those points as well.
technology used in developing the application. While weAbnormal Scenarios - Abnormal scenarios are those
start writing test cases instead of straightway writinglike if the LAN cable is disconnected, Internet is down,
the test cases if we first find out the scenarios andDB is down and Server is down etc. These should
then match those scenarios with the checklist thengive proper error message to user instead of
probably we will have a small test case writing cyclemisguiding the user.
and since the checklist is tailor made for the applicationDatabase checks - we normally forget the database
we hardly miss scenarios. But this approach of testchecks for the actions we are doing on the application.
case writing has a dependency on how good is yourFor every database action there should be a
checklist and how well it cover all the scenariosdatabase check to ensure the DB entry is happening.
possible in the application. The following points can beAnd also the negative test should not entering data
considered while preparing the checklist.into the DB.
Functionality - It should contain all the functionalityExperience - Experience plays a big role in preparing
scenarios, or the happy paths of the application whichthe checklist. With experience related to the domain
we say the positive scenarios. The positive scenariosand technology you can add check points which
can be found out from the SRS or Use cases. Wenormally happens to be defect with the corresponding
normally don't miss those scenarios as long as thetechnology and domain.
project modules are tightly coupled. If that's the caseSecurity - Apart from the authentication and
then we need to have knowledge on the completeauthorization related security issues the checklist
flow of the application to write all the positiveshould have check points for the security testing like
scenarios.SQL injection , CSS , LDAP ,XSS injections,
Negative Scenario - This is where we miss theconcurrency issues etc.
scenarios and having maximum challenge .Most of theAll these points I guess will help you in getting a good
associates not able to identify all the negativetest coverage provided the checklist is prepared well.
scenarios possible. So the checklist should containBut don't forget to do a monkey testing after each
check points for all types of negative scenarioscycle of testing and convert the monkey testing
possible for the application. Negative scenario may bedefects into test cases. I have implemented this
based on functionality, scenario based on data,approach successfully.