一、按照测试技术划分:
A、从软件内部结构和具体实现的角度划分:
A_1、白盒测试:基于程序本身的测试,着重于程序的内部结构及算法等内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。
A_2、灰盒测试:介于白盒和黑盒之间的测试。
A_3、黑盒测试:基于规格说明的测试,着重于最终用户的立场,检查I/O信息及系统性能是否符合规格说明书中有关功能和性能需求的规定。
B、从执行程序的角度:
B_1、静态测试:不运行程序,对程序和文档进行分析和检查,如走查、符合执行、需求确定等。
B_2、动态测试:通过人工或工具运行程序进行检查、分析程序的执行状态和外部表现。
二、按照开发阶段划分:
C_1、单元测试:最小单位的测试;以测试某个功能或代码块。……
C_2、集成测试:单元测试的逻辑扩展(多个单元模块的集合),对象:代码块、独立的应用、网络上的客户端或服务器端程序。……
C_3、确认测试:验证软件的功能、性能及其他特性是否符合用户的要求。……
C_4、系统测试:基于需求说明书查找所开发的系统与用户需求不符合或矛盾的地方,从而提出更加完善的方案。……
C_5、验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。……
C_6、回归测试:就漏洞修复完成后再对软件进行测试。……
三、按照测试性能划分:
D_1、累积综合测试:当一个新功能增加后,对应用系统所做的连续测试。它要求应用系统的不同形态的功能足够独立以可以在全部系统完成前能分别工作,或当需要时那些测试驱动器已被开发出来; 这种测试可由程序员或测试员来做。
D_2、端到端测试:类似于系统测试;测试级的“宏大”的端点;涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。
D_3、健全测试:典型地是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试努力。例:如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,目前不具备进一步测试的条件。
D_4、衰竭测试:软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。
D_5、接受测试:基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。
D_6、负载测试:测试一个应用在重负荷下的表现,例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败。
D_7、强迫测试:在交替进行负荷和性能测试时常用的术语。也用于描述象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。
D_8、性能测试:在交替进行负荷和强迫测试时常用的术语。在理想的“性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。
D_9、可用性测试:对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话的录象和其他一些技术都可使用。
D_10、安装/卸载测试:对软件的全部、部分或升级安装、卸载处理过程的测试。
D_11、恢复测试:对灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难的测试。
D_12、安全测试:测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况。
D_13、兼容测试:针对一个特定的硬件、软件、操作系统、网络等环境下的性能测试。
D_14、比较测试:与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力测试。
四、按照开发软件版本划分:
E_1、Alpha版本测试:此阶段主要是实现软件功能为主,通常在开发者内部交流,一般而言,该版本软件的BUG较多,需要继续修改。
E_2、Beta版本测试:相对Alpha版本已有很大改进,消除了严重的错误,但还存在一些BUG,需要经过多次测试来进一步消除。
E_3、RC版本测试:此阶段版本相对成熟,基本不存在导致错误的BUG,与即将发行的正式版相差无几。
E_4、Release版本测试:此阶段就是“最终版本”是最终交付用户使用的版本,即标准版。