SwingPix Photo Organizer
Revised Test Plan
By:
Justin Berstler
Aju Mathew
Yinka Ogungbemi
Yinka Olabinjo
John Rountree
Mathew Schaffer
Submitted for Drexel
University’s Software Engineering Workshop II
Monday June 2, 2003
This document
is also available at
http://swingpix.sourceforge.net/docs/testplan/
SwingPix is a digital photograph
management system. Users can import photos from sources such as a hard drive or
digital camera and organize them into albums. The system provides basic image
editing utilities, such as color adjustments, cropping, resizing, rotating and
flipping. It also provides an easy
printing utility that allows users to conveniently print their pictures.
This document provides a basic plan for
testing the functional requirements for SwingPix, as specified in the
requirements document at www.swingpix.sourceforge.net/requirements.
It provides a numbered lists of tests to be performed against a SwingPix
system.
This plan provides one or more basic tests for each of the functional requirements. The more complicated requirements require multiple tests. Each test description consists of the following fields:
Test
Purpose |
A brief description of the purpose of the test and the
requirement it validates. |
Test
Method |
A numbered list of steps to perform |
Test
Input |
A description of the type of input to be entered by the
user. |
Expected
Output |
A description of what the result of the test should be. |
Repetition |
If test should be performed more than once, this section
indicates how it should be repeated. |
Input
Notes |
When you perform the test, enter the input you give
here. For example, for test #1, if you
create an album named ‘Foobar’, then enter ‘Created an album named Foobar’. |
Output
Notes |
Record the result of the test here. |
The testing should consist of however
many iterations are necessary to ensure that the requirements are met. Each
iteration should include the following steps:
1. Copy this
document to a file indicative of the test iteration. For example,
‘SwingPix-TestPlan-1.0-beta3.doc’.
2. For each
test that has not yet been run successfully:
a. Conduct
the test, entering the input you give into the ‘Input Notes’ field.
b. Record the
result of the test in the ‘Output Notes’ field.
c. Mark the
test as passing or failing, perhaps visually by changing the color of the name
of the test to red or green, or something.
3. If tests
fail, the tester should notify the appropriate developer, who should make the
changes to fix the bug in a separate environment, so as not to affect the
tester’s installation of the program.
4. After the
tests have been run, the group should meet and discuss the status of the
project, and particularly the status of any bugs that were reported in this
cycle.
5. After all
necessary code changes are complete, this beta cycle should be marked as
complete, and the cycle should be repeated until no more bugs are reported.
Note that at each cycle, only tests that failed previously should be run. The last cycle(s) should be regression tests, to ensure that the fix for one bug didn’t create another.
When evaluating the success or failure
of a test, the following points should be considered:
·
Did the system do the task as expected? For example, If I
delete an image, does the image get deleted?
·
Did the test cause any strange side effects? For example, If
I delete an image, does the system also spontaneously eject the CDROM or change
the desktop background image?
·
Did the test cause any heinous errors, such as segmentation
faults or crashing the system entirely?
·
Did the system perform the task in a reasonable amount of
time?
3. Test
Summary
In addition to any environmental
prerequisites that may be required by the SwingPix system (such as a Java
Runtime Environment, mouse, etc…), the testing environment should have the
following resources available:
·
Some digital photos on the hard drive.
·
Some digital photos on a digital camera.
·
A printer
Test Successful installation of
SwingPix on to a machine.
The following table maps each functional requirement to any
related tests:
Requirement
|
Related Tests
|
2.1.1 Create New Album |
1. New album Creation |
2.1.2 Import Images |
2. Import images from hard drive into existing empty
album. 3. Import images from hard drive into existing non-empty
album. 4. Import images from hard drive into a new album. 5. Import images from a Digital Camera. |
2.2.1 Delete Pictures/Album |
6. Delete picture 7. Delete multiple pictures 8. Delete album |
2.2.2 Rename images |
9. Rename image |
2.2.3 View Thumbnails |
10. View thumbnails |
2.2.6 Search image/album |
15. Search image 16. Search album |
2.3.1 Print picture(s) |
17. Print one copy of picture 18. Print multiple copies of picture 19. Print one copy of multiple pictures 20. Print multiple copies of multiple pictures |
2.3.2 Print thumbnails |
21. Print thumbnail sheet |
2.3.3 Save pictures for email |
22. Save pictures for email |
2.4.1 View images |
23. View one image 24. Goto next image 25. Goto previous image |
2.4.2 Save images operations |
26. Save image 27. Reverting to original |
2.5.1 Color adjustment |
28. Adjust brightness 29. Adjust contrast 30. Adjust saturation 31. Convert to black and white 32. Adjust multiple color attributes in a single edit |
2.5.3 Resizing operation |
35. Image resizing |
2.5.4 Rotation operation |
36. Image rotation (free) 37. Image rotation (common angles) |
2.5.5 Image flip operation |
38. Image flip (vertical) 39. Image flip (horizontal) |
4. Test
Description
Test
Purpose
|
Tests requirement 2.1.1: the ability to create a new
album. |
Test
Method |
|
Test
Input |
Pick any unused name for the album: __________ |
Expected
Output |
The name of the album just entered should now appear in
the Album List. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.1.2: the ability to import
images. In particular, this test
exercises the ability to import images into an existing album |
Test
Method |
|
Test
Input |
One or more pictures from the hard drive. |
Expected
Output |
The selected pictures should now appear in the photo
album. |
Repetition |
First import one image.
Then try importing several images at a time. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose |
Partially tests requirement 2.1.2: the ability to import
images. In particular, this test
exercises the ability to import images from the hard drive into an album that
already has some pictures in it. |
Test Method |
|
Test
Input |
One or more pictures from the hard drive. |
Expected
Output |
The selected pictures should now appear in the photo
album. |
Repetition |
First import one image.
Then try importing several images at a time. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.1.2: the ability to import
images. In particular, this test
exercises the ability to create an album and immediately import images into
it. |
Test
Method |
|
Test
Input |
Pictures from the hard drive. |
Expected
Output |
The selected pictures should now appear in the new photo
album. |
Repetition |
First import one image. Then try importing several images at a time. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.1.2: the ability to import
images. Exercises the ability to
import multiple images from a digital camera. |
Test
Method |
|
Test
Input |
One or more pictures from a digital camera. |
Expected
Output |
The selected pictures should now appear in the photo
album. |
Repetition |
First import one image.
Then try importing several images at a time. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.2.1: The ability to delete
images/albums. Exercises the ability
to delete one image. |
Test
Method |
|
Test
Input |
User selects a picture, clicks ‘delete’. |
Expected
Output |
The picture should be deleted from the album. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.2.1: The ability to delete
images/albums. Exercises the ability
to delete multiple images. |
Test
Method |
|
Test
Input |
User selects pictures and clicks ‘delete’. |
Expected
Output |
The pictures should be deleted from the album. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.2.1: The ability to delete
images/albums. Exercises the ability
to delete an album. |
Test
Method |
|
Test
Input |
User selects an album and clicks ‘delete’. |
Expected
Output |
The album should disappear from the list. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.2.2: The ability to rename
images/albums. Exercises the ability
to rename an image. |
Test Method |
|
Test
Input |
User selects an image and clicks rename. |
Expected
Output |
The image name is changed. |
Input Notes |
|
Output
Notes |
|
Test
Purpose
|
Tests requirement 2.2.3: The ability to view thumbnails. |
Test
Method |
|
Test
Input |
User selects a non-empty album, followed by an empty one. |
Expected
Output |
The thumbnails for the first album appear. When the empty album is selected, they
disappear. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Tests requirement 2.2.7: The ability to search for images
by their name. |
Test
Method |
|
Test
Input |
Image to search on. |
Expected
Output |
Any images that exist with the similar name should appear
in the result screen. |
Repetition |
Repeat several times with different search terms. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Tests requirement 2.2.7: The ability to search for albums
by their name. |
Test
Method |
|
Test
Input |
Album to search on. |
Expected
Output |
Any albums that exist with the similar name should appear
in the result screen. |
Repetition |
Repeat several times with different search terms. |
Input
Notes |
|
Test
Purpose
|
Partially tests requirement 2.3.1: The ability to print
pictures. This exercises the ability
to print one copy of one image. |
Test
Method |
|
Test
Input |
|
Expected
Output |
One copy of selected image should print. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.3.1: The ability to print
pictures. This exercises the ability
to print multiple copies of one image. |
Test
Method |
|
Test
Input |
|
Expected
Output |
Three copy of selected image should print. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.3.1: The ability to print
pictures. This exercises the ability
to print one copy each of several images. |
Test
Method |
|
Test
Input |
|
Expected
Output |
One copy of each of the three images should print. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.3.1: The ability to print
pictures. This exercises the ability
to print several copies each of several images. |
Test
Method |
|
Test
Input |
|
Expected
Output |
Three copies of each of the three images should print. |
Input
Notes |
|
Output
Notes |
|
Test Purpose
|
Tests requirement 2.3.2: The ability to print a
thumbnail sheet. |
Test Method |
|
Test Input |
User selects thumbnails |
Expected Output |
A thumbnail sheet should print. |
Input Notes |
|
Output Notes |
|
Test
Purpose
|
Tests requirement 2.3.3: The ability to save pictures for
email. |
Test
Method |
|
Test
Input |
User selects thumbnails. |
Expected
Output |
Corresponding images should be saved in a location for
emailing? |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.4.1: The ability to view
images. Exercises the ability to view
a single image in full-size view. |
Test
Method |
|
Test
Input |
User selects thumbnail. |
Expected
Output |
Corresponding image should display. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.4.1: The ability to view
images. Exercises the ability to go to
the ‘next’ image in full-size mode. |
Test
Method |
|
Test
Input |
User double clicks on thumbnail, then clicks next. |
Expected
Output |
After you click ‘next’, the image after the thumbnail you
clicked should display. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.4.1: The ability to view
images. Exercises the ability to go to
the ‘previous’ image in full-size mode. |
Test
Method |
|
Test
Input |
User double clicks on thumbnail, then clicks previous. |
Expected
Output |
After you click ‘previous’, the image before the thumbnail
you clicked should display. |
Actual
Output |
|
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.4.2: The ability save an
image. This only exercises the user’s
ability to explicitly save an image after editing it. It does not test any of the implicit save
operations that may need to occur to support requirement 2.4.3 (Reverting to
Original) |
Test
Method |
|
Test
Input |
User selects an image, and a path to save the image to. |
Expected
Output |
Image should be accessible from the path the user chose. |
Actual
Output |
|
Repetition |
Repeat once for each media type to be supported (hard
disk, floppy drive, etc…) |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.4.3: The ability to revert
back to the original state of the images, in the case of regrettable changes. |
Test
Method |
|
Test
Input |
User selects an image, modifies it, and then reverts to
original form. |
Expected
Output |
Image should return to its original state (at the time of
import). |
Repetition |
Repeat once for each type of edit (Color adjustment, crop,
resize, rotation, flip) |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.1: The ability to modify
an image’s color. Exercises the
ability to adjust the brightness of an image. |
Test
Method |
|
Test
Input |
User selects an image and adjusts its brightness. |
Expected
Output |
Brightness should be adjusted. |
Repetition
|
Repeat with several different values for the adjustment
(lower brightness, higher brightness) |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.1: The ability to modify
an image’s color. Exercises the
ability to adjust the contrast of an image. |
Test
Method |
|
Test
Input |
User selects an image and adjusts its contrast. |
Expected
Output |
Contrast should be adjusted. |
Repetition |
Repeat with several different contrast values. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.1: The ability to modify
an image’s color. Exercises the
ability to adjust the saturation of an image. |
Test
Method |
|
Test
Input |
User selects an image and adjusts its saturation. |
Expected
Output |
Saturation should be adjusted. |
Repetition |
Repeat with several different values for the saturation. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.1: The ability to modify
an image’s color. Exercises the
ability to convert an image to black and white. |
Test
Method |
|
Test
Input |
User selects an image and converts it to black and white. |
Expected
Output |
Image should be in black and white. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.1: The ability to modify
an image’s color. Exercises the
ability to adjust all of the color attributes at once, and then save changes. |
Test
Method |
|
Test
Input |
User selects an image and adjusts its brightness,
contrast, and saturation. |
Expected
Output |
Brightness, contrast, and saturation should be adjusted. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Tests requirement 2.5.3: The ability to resize an image. |
Test
Method |
|
Test
Input |
User selects an image and resizes it. |
Expected
Output |
Image should now be the size that the user set it to. |
Repetition |
Repeat for several different sizes. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.4: Rotation
operation. Exercises the ability to
freely rotate an image. |
Test
Method |
|
Test
Input |
User selects an image and rotates it at a specified angle. |
Expected
Output |
Image should now be
rotated at the correct angle |
Repetition |
Repeat for several different angles. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.4: Rotation
operation. Exercises the ability to
rotate an image at a common angle. |
Test
Method |
|
Test
Input |
User selects an image and rotates it at a specified angle. |
Expected
Output |
Image should now be rotated at the correct angle |
Repetition |
Repeat for several each common rotation angle. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.5: Flip operation. Exercises horizontal flip |
Test
Method |
|
Test
Input |
User selects an image and flips it horizontally. |
Expected
Output |
Image should now be flipped. |
Input
Notes |
|
Output
Notes |
|
Test
Purpose
|
Partially tests requirement 2.5.5: Flip operation. Exercises vertical flip. |
Test
Method |
|
Test
Input |
User selects an image and flips it vertically. |
Expected
Output |
Image should now be flipped. |
Input
Notes |
|
Output
Notes |
|