A very early version of a software product that may not contain all of the features that are planned for the final version. Typically,software goes through two stages of testing before it is considered finished. The first stage, called alpha testing, is often performed only by users within the organization developing the software. The second stage, called beta testing , generally involves a limited number of external users.