Search code examples
testingproject-planninglifecycle

What do people mean when they say (and write) lifecycle testing?


I've been with my current company for about four months now and I've noticed how several of our RnD scopes/documents use the term "lifecycle testing."

I've always thought that this term would mean the entire testing phase of a project, but the context of the term suggests that it instead is when the software is tested with "live" or "real" data in a staging environment as close to the production environment as possible.

This has led me to wonder if I have misunderstood the meaning of the phrase, in which case, can somebody explain what lifecycle testing is supposed to be or mean?


Solution

  • A lifecycle of software is it's behaviour in the following situations:

    • Startup. Does it load correctly? Is it fast at startup? (Depends on what kind of software)
    • Mid-life. Does it use much memory? Does it clean up memory? Does it do what it's ought to do?
    • Exeting. Does it cleanup resources correctly? Does it closes everything down well?

    Lifecycle testing is very important for server applications, where it's especially focussed on "mid-life" (it's not an official term btw). Server apps may never crash while doing something importantly, and if they do: they shouldn't bring down the complete system.

    The clue "lifetime" of being "live" or "real" isn't much true, it's more being "alive" than "live".

    For instance; I've build a Flash client-application which is a "billboard" application, displayed at a large screen, and I am lifecycle-testing it:

    • Graphics, does everything show up well? Not just the first minutes, but even 12 hours without restarting the app.
    • Auto-update, does that work?
    • etc.