1.软件测试基础
- 定义:(1979)测试时为发现错误而执行程序的过程【IEEE定义:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异】
- 测试对象:软件需求、概要设计、详细设计、运行环境、运行程序、源代码【覆盖整个过程】
- 五大要素:质量、人员、资源【硬件设备、网络环境】、流程【规范要求】、技术【手段】
- 两个目标:提高测试覆盖率、提升测试效率
- 遵循原则:穷尽测试不可能,测试应尽早进行。缺陷具备群集特性【重点关注】。杀虫剂悖论【测试方法与用例应时常更新】,测试二八原则【80%用在20%的集群错误上】。依赖于测试背景。
- 软件测试分类:
- 按测试阶段分:
- 单元测试:【对软件中的最小可测试单元进行检查与验证{原则:各个测试用例是相互独立的。针对基本单元,单元内部测试
- }】
测试框架:Xunit、JUnit、PHPunit、nunit、CPPunit
集成测试:是在单元测试的基础上,将所有软件单元按照概要进行组装成模块、子系统或系统构建进行测试。【针对模块,接口测试】
实施方案:big Bang【一次集成{组装好所有做测试}】、自顶向下【沿控制层依次向下】、自底向上【针对已经组装过的模块】、核心系统集成【由核心向外围】、高频集成 系统测试:将经过集成测试的软件,作为计算机的一部分,与系统中其他部分结合,在实际运行环境下对计算机系统进行一系列严格有效的测试,保证系统正常运行。【在真实运行环境测试,整个系统】 关注点:1.系统本身的使用2.系统与其他相关系统间的连通。3.在不同使用压力下的表现。4.在真实使用环境下的表现。 系统测试与集成测试不同:@测试对象【集成测试:是由通过了单元测试的各个模块所集成起来的构件。系统测试:是除软件之外,包括计算机硬件及相关的外围设备、数据采集、传输机构、支持软件、系统操作人员等整个系统 】 @测试内容:系统测试:整个系统的功能和性能。集成测试:各个单元模块之间的接口 @测试时间:单元测试——集成测试——系统测试 @测试角度:集成:偏于技术角度的验证。系统:偏于业务角度的验证
验收测试:针对用户需求、业务流程的正式测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。 分类:用户验收测试、运行验收测试【运营】、合同和规范验收测试、alpha【开发者提供的场所、环境测试,用户测试】、Beta测试【用户提供的场所、环境测试,用户测试】
- 按测试手段分:
- @黑盒测试【只检查功能,通过用户、事件驱动,着眼于外部】:功能是否完善,接口能否正确输入输出,是否有数据文件,访问错误,性能上是否满足要求。
- 主要设计方法:等价类划分法、边界值分析法、错误推测法、因果图法、正交试验分析法、状态迁移图法、流程分析法。
- @白盒测试:主要逻辑单位:语句、条件、条件组合、分支、路径【六种逻辑覆盖法:】
- 主要测试方法:静态结构分析法、代码检测法、静态质量度量法、逻辑覆盖法、基本路径测试法。
- @灰盒测试:介于黑白盒之间。
- @静态测试:无需执行被测程序,通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合标准。
- 测试方式:互审、走查、会议
- @动态测试:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性。
@手工测试:由测试人员从用户角度来验证软件是否满足设计要求。
- @自动化测试:用单独测试工具软件控制测试的自动化执行以及对预期和结果进行检查。
- 按测试模式分:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试。
- 瀑布模型:项目计划【指定项目进程】——需求分析【用户需求定义】——软件设计【设计实现方案】——程序开发【设计】——软件测试【评估产品】——集成维护【对产品维护升级】
- V模型:
- W 模型:Evolutif公司,不能很好支持迭代。
- X模型:
- H模型:可和其他流程交叉进行