Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: how to begin with testing?

by gokuraku (Monk)
on Mar 23, 2009 at 18:48 UTC ( #752678=note: print w/replies, xml ) Need Help??

in reply to how to begin with testing?

The way I see this is you have two issues to be addressed, one is that you want automatic testing in some situations but overall you also want to have testing being accomplished on this application you have. There are a few different ways to go about this, but you do need first to generate an overall strategy, as someone mentioned, what is your goal? What do you want to achieve by "testing"?

Most QA organizations will generate documentation that notes the overall strategy, the what will be done, and plans that will note the how. You don't need anything that formal but having even a napkin with a sketch of what you want to do will be helpful because it will make sure that you have a way to see and accomplish your goals. Most testing examples are high level, because everyone's needs, environment and code is different. What I may be testing is different from someone else, we may use the same underlying techniques of unit and boundary testing, but the methods we use will be different. If you've been reviewing some information on testing so far I'll go with the premise that you already have the basics down and know that you need to test but need to come up with a how. One way to handle this, if you have a project that is open source, is to open it up for people to test. Getting general feedback from people willing to test your project will give you different views on how its used and if you don't have Users giving you feedback its a good way to get a view from outside your own. Looking at sites like the Software Testing Club, Test Republic or SQA Forums you may find a few souls willing to test out your product.

Automation on the other hand is something you really need to plan out, basically its a software project in itself. If you have web interfaces that need testing you need a GUI test run, if its web based and not complex there are plenty of open source web tools to use. There are quite a few books out there on automation, including Implementing Automated Software Testing a recent one by Elfriede Dustin. If you have a sufficiently complex project then look at a framework you can run so that if you check in code you can do a build and have the framework run your tests; very useful in Regression Testing.

Expect that you will probably need to adjust your tests, yes you will write them AFTER you write code, anyone who suggests otherwise is being disingenuous. Tests that are stale will be as useful as the day they were written, proper testing needs as much care as writing code. For the last part of your post, you only need as much of a framework for testing as will allow you to exercise the code you are trying to test. Most QA organizations would love to have a mirror of production for what code is released, its not always possible so you go for the most bang for your buck and time. Set up what will allow you to test your code in a real world environment, set up scripts or situations that will allow you to test your code and if you need it think as well about what you can do to provide stress and load on the system.

If this is just you my suggestion would be trying to get others to test for you, or provide beta code for people to use before you release. The more you can get people to help you out, the more eyes and different perspectives you can get.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://752678]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2018-06-20 19:37 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (117 votes). Check out past polls.