Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
but what would go in a test suite?

Anything that is important for your product. Here are a few points you may want to think about. Not all points are relevant in all cases though.

  1. Correctness is usually important, and one of the first things that are tested. This could range for simple things like "if I plug X and Y in this function, the result should be Z" (typically the things that are tested when "make test" of a CPAN module is run) to "if I push the red buttons after I disabled the blue switch, while standing on my head humming the national anthem, does it make a decent decaf".
  2. System resources. How CPU intensitive is it? How much memory does it use? If your product has always hummed along on a Sparc 5, but a new minor release suddenly requires a 6 processor 3800 than your customers won't be happy, even if the product passes all correctness tests. Besides CPU and memory usage, there's disk usage, I/O usage, shared memory usage, etc, etc to consider.
  3. Robustness. What does your program do when something unexpected happens, like a file that suddenly disappears, a network that goes down, a remote server that no longer answers, a disk that's no longer repsonsive? How does the program behave when it receives signals? What does it do when I cut-and-paste a million characters in a small text field? How does it behave on garbage input data? Or on no input data? What happens if the program crashes?
  4. User interface. If you have a GUI program with many screens, is the user interface consistent, or does each screen need its own manual? Is the user interface simple? Can I do things that need to be done often with one keystroke or mouse-click, or do I need control-alt-shift-meta-cokebottle all the time? Does your product confirm to the house style? Is each background the right shade of orange, or do you still have screens in green, the house style of 2001. Are all the logo's correct? [1].
  5. Regression tests. Adding a feature in one part of the software shouldn't have an effect on another, unrelated, part of the software. You can lose customers that way, because people do get upset if the software suddenly behaves differently. I'd be mighty upset if the next release of vi suddenly gave a different meaning to 'a'.
  6. Stress testing. Testing a single instance of a product is one thing, but what happens if two people use the product at the same time? Or 10? Or 1000? How does the product behave if run continuously for 24 hours? Or a week?
  7. Security. Can the software be used to comprise security in one way or the other? This not only means gaining unlawful access to the box the machine runs on, but also access to data (for instance, in a database).

[1] Don't laugh. I've worked for a company that was once threatened with legal action because a button displayed the old name of the product - a name that our company no longer had the right to use.

Abigail


In reply to Re: What goes in a test suite? by Abigail-II
in thread What goes in a test suite? by Marza

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-03-19 06:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found