静态测试
静态测试是指被测试程序不在机器上运行, 而采用人工检测和计算机辅助静态分析的手段对程序进行检测 。静态测试包括对文档的静态测试和对代码的静态测试。
对文档的静态测试主要以检查单的形式进行

对代码的静态测试一般采用桌前检查 (Desk Checking) 、代码走查和代码审查。
动态测试
动态测试是指在计算机上实际运行程序进行测试,一般采用白盒测试和黑盒测试方法 。
白盒测试也称为结构测试,主要用于软件单元测试中 。 它的主要思想是,将程序看作是 一 个透明的白盒,测试入员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作 。
白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。
白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考查对程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖 、判定覆盖、条件覆盖、条件/判定覆盖 、 条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试将程序看作是 一 个不透明的黑盒 , 完全不考虑(或不了解)程序的内部结构和处理算法,而只检查程序功能是否能按照 SRS 的要求正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息( 例如,文件和数据 库等)的完整性等。
黑盒测试根据 SRS 所规定的功能来设计测试用例, 一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、 猜错法和正交试验法等。
测试风险
需求风险、用例风险、缺陷风险、代码质量风险、测试环境风险、测试技术风险、回归测试风险、沟通协调风险、其它不可预测风险
具体测试方式
单元测试:
最小设计单元(模块)的验证,确保模块被正确编码(白盒)
集成测试:
通过测试发现与模块接口有关的问题,测试接口是否一致、模块间数据流控制流是否按照设计实现其功能、以及结果的正确性验证。可以是整个产品的集成测试,也可以是大模块的集成测试。(黑盒白盒相结合)
自顶向下集成:首先集成主模块,按控制层次结构向下集成,隶属于主模块的模块按照深度优先或广度优先的方式集成到整个结构中去。
自底向上集成:从原子模块开始构造和测试,因为模块是自底向上集成的,进行时要求所有隶属于某个给顶层次的模块总是存在的,也不再有使用稳定测试桩的必要。
冒烟测试
针对每个版本或每次需求变更后,在正式测试前,对产品或系统的一次简单的验证性测试。
用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。
系统测试
基于系统整体性需求说明书的黑盒类测试,覆盖系统所有联合部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足需求规格的定义,找出不符或与之矛盾的地方。
系统测试的对象:需要测试的的系统产品的软件、软件依赖的硬件、外设甚至某些数据、某些支持软件和接口等。
在系统实际运行环境中测试。
回归测试
回归测试是指修改了旧代码后,重复以前的全部或部分的相同测试以确认修改没有引入新的错误或导致其他代码产生错误
验收测试
系统开发生命周期方法论的一个阶段,这时相关用户和独立测试人员根据测试计划和结果对系统进行测试和验收,它让系统用户决定是否接收系统,它是一项是否能够满足合同或用户所规定需求的测试,包括(Alpha测试、Beta测试)
Alpha测试:内测版本,开发者内部交流;是由用户在开发者的场所来进行的,在一个受控的环境中进行。
Beta测试:公测版本,面向所有用户;由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者,开发者对系统进行最后的修改,并开始准备发布最终的软件