I want to move to the next level in testing all my code, and writing tests before I code. One thing that's stopping me is I see some very difficult situations to test. How do I test something graphical? For example, I have routines that are generating charts and graphs in PNG format. How do I test these? How would I test a GUI interface for something? Also, how do I test routines with side effects? (i.e., routine prints to the screen rather than or in addition to returning a value).
I understand that writing my tests first and designing with testing in mind will go a long way toward making my code testable. I also understand that experience will go a long way toward teaching me to test anything. But so far I still just can't foresee how to do some of these things (or the ways I can imagine to do it are impractical).
Any sources people could point me to about more complicated testing like this, books, urls, periodicals, or forums, would be immensely appreciated. I need to see what path people took when they came this way before.
Break it Up (Score:1)
You have several options:
Re:Break it Up (Score:2)
You can test the building one automatically and the printing one by hand if you need to.
Ugh, no testing by hand, thanks. :) That's why the question "how do I test a routine that prints something" still exists after I design for testing and break the routine up. The other ideas were good, though; thanks.
J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
Testing Strategies (Score:2)
Question: How do I test something graphical? For example, I have routines that are generating charts and graphs in PNG format.
Answer: One way would be to pre-generate "known good" charts and graphs, save them in a test_data directory and, run your routines and see if the output files are the same.
Question: How would I test a GUI interface for something?
Answer: I've struggled with this and for the most part, I don't think there are good, generic answers. One suggestion that I've heard is to have t
quick and dirty GUI testing (Score:2)
Then create a checksum (md5 is kind of small but I liked to use sha1). Then you just need to create a checksum on the test image and compare checksums, and then you could flag an image for human review.
There was some other super simple things I came up with as well for images and rough UI testing.
Re:Testing Strategies (Score:1)
Redirecting "all output" is slightly more challenging if the legacy code doesn't have the hooks Ovid recommends, but not impossible. Although "pri
What kind of test (Score:2)
Do you mean test that the interface does what you think it will on the back end, or test that the interface is usable?