views:

472

answers:

1

Dear Stackoverflow Readers,

I wanted to know what are the important considerations to keep in mind while doing Backend Testing.

My project does not have GUI basically it is all Backend related work. Complete Server Side is in Java and we are using Oracle Db.

I would really appreciate if you all can share some expert advice on what are the considerations to keep in mind while test Backend Testing.

Regards, Rachel

A: 

Since your question is very general, so must be my answer. Here are a few things to keep in mind:

  • You need to be able to return to a consistent starting point for every test run. Create a DB snapshot and have a mechanism to restore the DB from that snapshot before every run.
  • Your snapshot needs to be representative of the production database. Since you may not want to copy actual production data for privacy and security reasons, this probably means having a means to generate the data (and re-generate it when there are changes e.g. schema changes).
  • For regression testing, you need to have unit tests for all of the common use cases and hopefully many of the uncommon ones. JUnit is probably a good framework for this.
  • Consider including a code coverage tool to see how much of your persistence layer is touched by your unit tests. 100% code coverage doesn't mean that you exercise all decision paths, but it at least gives you an idea of how much your tests cover.
  • You need to test both throughput (are the inserts and selects happening fast enough for a single user?) and concurrency (do multiple users - more than you expect in production - accessing the same tables for both read and insert/update - cause performance issues or deadlocks? If there are deadlocks, are they properly resolving?)
Eric J.