In your test strategy/testing where would the installation testing (set-up/deployment with or without installer) belong? Is it a part of functional testing or non-functional testing?
|
|
As I indicated in this reply Accessibility Testing - Should it be considered functional testing or non functional testing? I like the following definitions from http://www.lessons-from-history.com/node/83 "a functional requirement specifies what the system should do" "a non-functional requirement specifies how the system should behave" We have always treated setup/upgrade testing as functional testing because we are essentially testing what the the installer engine should do. Of course, with complex installer packages with multiple configuration dialogs you also have a behavior element as well. You might also want to check out http://www.testingmentor.com/imtesty/2011/02/21/state-transition-testing-thinking-in-models/ for an example of testing flow, and also combinatioral testing for testing complex configuration matrices for setup/upgrade. |
|||
|
|
|
For me it's a non-functional requirement, even if the key users have some requests regarding the instalation folder location (for better integration with other software packages). UPDATE: The tests for the available features detection are still placed in the functional requirements area, given that:
A small example: the deployed software should detect and use a CUDA-enabled GPU. There will be 3 sets of tests:
|
|||||
|
|
I would agree with alexandrul's answer, with a few small caveats. First of all, it depends on what the installer does. If it's just a plain normal install, it would fall under non-functional. If there are options in the installer that greatly affect the functionality of the application (ie: add/don't add specific features), I would normally put it in my functional testing (back when I still considered the seperation of the two important). |
|||
|
|
|
Lyndon makes some good points, it does depend on what your installer does. When I have worked with them in the past, mostly I deal with SaaS and not so much with client apps anymore, but there were a few in my past jobs and we mostly had functional tests for them. The rationale was we were not just dealing with installs, although that was there, but we needed to deal with uninstalls - which is something most people forget. The expectation I have is when I uninstall a piece of software I expect my environment to reflect that software being completely gone, because if I reinstall it should be as if the software had never been there. If that is your requirements, some applications do want to leave something in place because of trial/buy versions and want to be sure that you are not reinstalling the trial version over and over again to avoid buying it. So in addition to what alexandrul notes I would also check:
|
|||||||||||||
|
|
I found it interesting the timing of your question with this well written blog on Installation Testing: http://lauralistar.wordpress.com/2011/07/18/software-installation-uninstallation-testing/ |
|||
|
|
|
Seems like if there are requirements around the installation, then it's a functional test. If there's a user story which includes the installation, then it's a functional test. Lacking those, it's a non-functional test which needs to be covered when considering all of those other non-functional aspects of the application under test. Also, Squirrel makes a good point in that it really doesn't matter as long as it's done. |
|||
|