Jun 15 2007

Remember to define your pre-release Caveats

Recently I released a product to one of my customers for a preview (e.g. Alpha Release) and not too long after I starting getting calls with complaints regarding incomplete functionality... As you can image I stated it was Alpha and I might as well have been speaking elvish because they just didn't understand.  Lucky for me, this term was spelled out pretty clearly in the Software Requirements Specifications (SRS) I wrote at the beginning of the project which we all agreed to. This type of thing is crucial and you really need to define threshholds for your releases in writing and do as much as possible to make the definitions comprehensive.  Over the years I have found a lot of different definitions for caveats such as Alpha, Beta, Candidate Release, Etc...  However you define it, write it down and make sure everyone agrees.  Here is what I wrote in my SRS...

PRODUCT TESTING AND SOFTWARE PRERELEASE PROVISIONS

Testing shall occur using a test team coordinated by the customer as well as internal testing coordinated by the software development team. The team shall test the product(s) and evaluate its functionality and capabilities as they apply to the current state of the development life cycle. The pre-release test group(s) shall provide information concerning software changes (enhancements and defects) through the Configuration Control Board (CCB) and test event hot-wash meetings as applicable. For details on project test procedures and methods, refer to the project Test Plan.  The following pre-release testing phases are defined for this project:

  • Alpha Release testing is the first phase of testing in a software development process. This phase includes unit testing, component testing, and limited system testing. This is generally an internal test cycle and is accomplished using an Alpha Release of the product.
  • Beta Release testing is the phase of software testing in which a sampling of the intended audience uses the product(s). This phase of testing may also include a number of specialized tests designed to identify areas of the product needing improvement (Ex. Security, Performance, Scalability, etc…). Beta testing is considered "pre-release testing" and is accomplished using a Beta Release of the product.
  • Candidate Release testing (A.K.A. Production/Acceptance Test Releases) are software releases prior to the final production of the software. In this phase of testing all stated requirements should have been met. The customer’s acceptance testing is often conducted with this release and is accomplished using a Candidate Release of the product.

The aforementioned external tests are designed; among other things; to verify and/or validate the products development. For the purposes of this document, verification is meant to answer two primary questions with respect to the product being tested.

  • "Are we building what we were asked to build?"
  • "Are we building it right?"

Verification is accomplished as part of unit testing, integration testing, systems testing, Function Qualification Test (FQT), and more. For the purposes of this document, validation is meant to answer two primary questions with respect to the product being tested.

  • "Are we building what the operator needs?"
  • "Are we building the right thing?"

Validation is primarily accomplished as part of acceptance testing although valuable insight can be gained by including a diverse set of end-users in Beta testing.

The provisions below identify the scope of each pre-release product and the test phases they support.

Alpha Release
Alpha releases are software releases made prior to any Beta release or Beta test phase. This release of the product is not yet stable and will lack many features. Alpha software is only released to provide for targeted analysis, design reviews, prototyping, or early product demonstrations. Alpha releases shall not be used to fully assess any level of compliancy to stated requirements or goals; however this release may be used to validate the approaches selected. Alpha releases are internal releases and should never be released to third parties. After some testing and some revision, the product will assume beta status.

  • Alpha Test Phase
    Alpha releases are versions of a new product still in development and represents the first phase of testing in a software development process. This phase includes unit testing, component testing, and limited system testing. This is an internal pre-release test cycle. The first Alpha release marks the beginning of the Alpha Test Phase.

Beta Release
Beta releases are versions of a new product still in development, which is provided to external operators for testing. Beta releases are not produced until sometime after bug convergence has been observed. Bug convergence is the point at which the development team has made measurable progress against the active bug count; which is the point at which the rate of bugs resolved exceeds the rate of bugs reported. Many bugs are usually eliminated at the earlier Alpha stage of development and testing, however bugs will still be present in Beta releases. Beta testers use the software to do real work and report any bugs or badly implemented features they find. Beta releases may be used to assess levels of compliancy as it is related to the stated requirements and/or goals; however, it is often limited to a subset of requirements for which the beta was released. While Beta releases are; by definition; releasable to the “public” they should only be distributed to a limited number of expert operators in the earliest phases. Distribution of beta versions allows operator testing and feedback to the developer, so that any necessary modifications can be made before final product release. The term Beta release is given to a product that is not ready for public consumption, but is good enough for a wider testing scope. By the end of a beta test, all major bugs should have been discovered and repaired. Generally, beta testing is considered to be the final pre-release stage of the tests, and includes experienced testers external to the developing organization.

  • Beta Test Phase
    The Beta test release marks the beginning of the Beta Test Phase. Beta Testing is the second phase of testing in which a sampling of the intended audience tries the product out. Beta testing is considered an external pre-release test cycle.

Candidate Release
The Candidate Release (A.K.A. Production/Acceptance Test Release) is a software release made prior to the final production of the software. In this phase of development all stated requirements should have been met or mitigated to a final status. Candidate Releases are not produced until the project has observed a Zero-bug bounce. Zero-bug bounce is the point when development has resolved all bugs raised by testing and no active bugs remain. The customers acceptance testing is often conducted with this release, which may include a wide range of testing models (e.g. usability, security, performance, etc…) needed to fully validate the product. This is still considered a pre-release product pending final release approval from the customer.

  • Production Test Phase
    The Production test phase is the final phase of testing prior full release of the product in which the customer performs final acceptance testing. Particular attention is placed on media (re)production methodologies, software installation routines, and documentation.

Tags: ,

Comments

1.
Tyson F. Gautreaux Tyson F. Gautreaux United Kingdom says:

Some interesting information on kitchen gear, thank you! I found loads more like this over <a href="http://www.kitchenappliancereviews.org">at this site</a>

2.
Mann Mann United Kingdom says:

Thanks Funny enough, I actually had this on my mind a few days ago

3.
Maxime Maxime says:

Substantially, the post is actually the best on this worthy topic. I fit in with your conclusions and will eagerly look forward to your future updates. Saying thanks will not just be enough, for the tremendous lucidity in your writing. I will immediately grab your rss feed to stay abreast of any updates. Authentic work and much success in yourbusiness dealings!

4.
Teresa Utsey Teresa Utsey United States says:

Hey could anyone tell me their thoughts on a great download torrent service. What paid service would you recommend?

5.
Carroll B. Merriman Carroll B. Merriman says:

The Zune concentrates on being a Portable Media Player. Not a web browser. Not a game machine. Maybe in the future it'll do even better in those areas, but for now it's a fantastic way to organize and listen to your music and videos, and is without peer in that regard. The iPod's strengths are its web browsing and apps. If those sound more compelling, perhaps it is your best choice.

6.
william william says:

thank you for sharing this, I like your blog, good continuation

7.
shancock@seas.harvard.edu shancock@seas.harvard.edu says:

I don't normally comment on blogs, however I have to say that I rather enjoyed yours as it was illuminating.  I´ve bookmarked your blog and hope to explorer it further when I have a little more time.  Keep up the good work.  Well back to my dreaming of <a href="blogs.law.harvard.edu/.../a> or back to the books - I wonder which one is going to win out.  Smile

8.
burns anthony burns anthony United States says:

I would like to thank you for the endeavors you have made in writing this article. I am trusting the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own blog now. Actually the blogging is spreading its wings rapidly. Your write up is a fine representative of it.

9.
Lauryn Lauryn United States says:

You had some good ideas there. I made a search on the issue and noticed most peoples will agree with your blog.

10.
Emmanuel Emmanuel United States says:

You made tremendous great ideas here. I done a research on the subject and learnt most peoples will agree with your blog.

11.
Tish Forss Tish Forss People's Republic of China says:

Love this Ipod touch, does every thing Iphone does except phone calls. WIFI  remebers networks you have already visited.

Comments are closed