(1)底层测试:单元测试
(2)接口测试:集成测试(完成系统内单元之间接口和单元集成为一个完整系统的测试。)
(3)系统层次:系统测试
(4)用户层次:验收测试(验证是否是用户真正所需要的产品特性,验收测试关注用户环境、用户数据,而且用户也参与测试过程中。)
(1)单元测试:包括组件测试、模块测试等。
(2)程序测试
(3)系统测试
(4)文档测试:包括需求文档、设计文档、用户手册等。
(5)Web应用测试、客户端测试
(6)数据库测试、服务器测试
(1)传统软件测试流程:一般分为需求评审、设计评审、单元测试、集成测试、系统测试、验收测试、a测试、b测试等。
(2)敏捷测试流程:一般分为测试需求分析、迭代测试计划、持续的单元和系统测试、验收测试等。
(1)功能(正确性)测试:验证每个功能是否按照事先定义的要求那样正常工作。
(2)压力(负载)测试:用来检查系统在不同负载条件下的系统运行情况,特别是高负载、极限负载下的系统运行情况,以发现系统不稳定、系统性能瓶颈、内存泄露、CPU使用率过高等问题。
(3)性能测试:测定系统在不同负载条件下的系统具体的性能指标。
(4)可靠性测试:检验系统是否能保持长期稳定、正常的运行,如确定系统平均故障间隔时间。可靠性测试包括强壮性测试和异常处理测试。
(5)灾难恢复性测试:在系统崩溃、硬件故障或其他灾难发生之后,重新恢复系统和数据的能力测试。
(6)安全性测试:测试系统在应对非授权的内部/外部访问、有意攻击时的系统防护能力。
(7)兼容性测试:测试系统在不同运行环境(网络、硬件、第三方软件等)下的实际表现。
(8)回归测试:为保证软件中新的变化(新增加的代码、代码修改等)不会对原有功能的正常使用有影响而进行的测试。
(9)安装测试:在一个真实的或近似的用户环境中,验证系统是否能按照安装说明是成功地完成系统的安装,其中要考虑环境的不同设置或配置、安装文档的准确性等。
(1)根据测试过程中被测软件是否被执行,可分为静态测试和动态测试。
(2)根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试。
(3)按照测试是否由软件工具来完成测试工作,可分为手工测试和自动化测试。
静态测试:对软件产品的需求和设计规格说明书的评审、对程序代码的审查以及静态分析等。
动态测试:通过真正运行程序发现错误,通过观察代码运行过程,来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面的信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系来分析被测程序的运行缺陷,来发现缺陷。
(1)软件评审
定义:对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结保持一致,并使其得到改进。检验工作产品是否正确得满足了以往工作产品中建立的规范。
目的:通过软件评审尽早地发现产品中的缺陷,将问题记录下来,使其具有可追溯性,找出问题产生的根本原因,在将来的项目开发中进一步减少缺陷,有利于软件质量的提高。
形式:互为评审(同行评审)、走查、会议评审。
对象:主要分为管理评审、技术评审、文档评审、流程评审。对于软件测试,应该包括需求评审(需求规格说明书)、设计评审、代码评审(程序结构、代码风格、算法等)和文档评审(格式、术语、内容)。
(2)静态分析
定义:对系统的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。
分析手段:人工检测、计算机辅助静态分析。
定义:测试人员主动向被测试对象发送请求、或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果。
定义:测试人员不干预产品的运行,而是被动地监控产品的运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据。
定义:也称结构化测试或逻辑驱动测试,已知产品的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定进行。
白盒测试基本原则:
(1)在执行测试时,先考虑各个分支被覆盖;
(2)再考虑完成所有逻辑条件分别为真值和假值的测试;
(3)如果有更高的质量要求,测试对象流程图中所有独立路径至少被运行一次;
(4)检查内部数据结构,注意上下文的影响,以确保其测试的有效性。
定义:也称数据驱动测试方法,在完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行测试。检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当地接收输入数据而输出正确的结果等,检查相应的文档是否采用了正确的模板、是否满足规范要求。
黑盒测试常用于发现以下缺陷:
(1)有错误的功能或遗漏了某项功能;
(2)不能正确地接收输入数据,输出错误的结果;
(3)功能操作逻辑不合理、不够方便;
(4)界面出错、扭曲或不美观;
(5)安装过程中出现问题 ,安装步骤不清晰、不够灵活;
(6)系统初始化问题。
白盒测试方法 | 黑盒测试方法 | |
静态测试方法 | 静态-白盒测试方法 (对源程序代码的语法检查、扫描、评审等) |
静态-黑盒测试方法 (对需求文档、需求规格说明书的审查活动,一些非技术性文档测试等) |
动态测试方法 | 动态-白盒测试方法 (在单元测试中,一边运行代码,一边对结果进行检查、验证和调试等) |
动态-黑盒测试方法 (在运行程序时,通过数据驱动对软件进行功能测试,从用户角度验证软件的各项功能) |