软件测试
在软件投入运行之前**,尽可能多地发现软件中的错误
①是保证软件质量、可靠性的关键步骤; ②是对软件规格说明、设计和编码的最后复审; ③其目的为发现软件中的错误;
准则: ①所有测试都应该追溯到用户需求; ②提前制定测试计划,并严格执行; ③充分注意测试的群集现象; ④避免由程序的编写者测试自己的程序; ⑤不可能进行穷举测试; ⑥注意保存测试计划、测试用例、出错统计、最终分析报告。
方法:
1.根据软件是否需要被执行划分
①静态测试。包括代码检查、静态结构分析、代码质量度量等 主要通过人工进行分析,不实际运行软件
代码检查分为:代码审查、代码走查、桌面检查、静态分析等
②动态测试(上机测试)。通过运行软件来检验软件中的动态行为和预期的输出结果的正确性。 动态测试的关键是设计高效、合理的测试用例。
测试用例由测试输入数据和预期输入结果两部分构成
2.按照功能划分
①白盒测试:根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都要按预定的要求正确的工作。 主要技术:逻辑覆盖测试、基本路径测试等
逻辑覆盖测试又分为:语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断——条件测试
②黑盒测试(功能测试、数据驱动测试):着重测试软件功能。根据规格说明书的功能来设计测试用例,检查程序的功能是否符合规格说明要求。
常用的黑盒测试方法和技术有:等价类划分法、边界值分析法、错误推测法、因果图等
- 白盒测试和黑盒测试的区别:测试者是否完全了解且考虑程序的结构和处理过程。
实施
软件测试的实施的4步:单元测试(模块测试)、集成测试(组装测试)、确定测试(验收测试)、系统测试。
①单元测试:对模块进行正确性的检验,以期尽早发现各模块内部可能存在的各种错误;
模块是软件设计最小的单位
- 单元测试在编码阶段进行。
- 单元测试的依据:源程序、详细设计说明书
单元测试可采用静态和动态测试。
动态测试 以白盒测试 为主,测试其结构 ; 以黑盒测试 为辅,测试其功能 。
②集成测试。对各模块按照设计要求组装成程序进行测试,主要目的是发现有关于接口的错误(系统测试与此类似)。
- 集成测试主要发现设计阶段产生的错误
- 集成测试的依据是概要设计说明书,采用黑盒测试
集成的方式可分为:非增量方式集成(一次性组装方式)、增量方式集成 增量方式包括①自顶向下;②自底向上以及自顶向下;③自底向上相结合的混合增量方法。
③确定测试。检查软件的功能、性能以及其他特征是否与用户的需求一致**。它是以需求规格说明书作为依据的测试,采用黑盒测试。
④系统测试。 在确认测试完成后,把软件系统整体作为一个元素,与计算机硬件、支持软件、数据、人员和其他计算机系统的元素组合在一起,在实际运行环境下对计算机系统进行一系列的集成测试和确认测试,这样的测试称为系统测试。
软件的调试
调试(Debug,排错):调试是在测试发现错误之后排除错误的过程 程序调试的任务:诊断和改正程序中的错误
程序调试活动有两部分组成: ①根据错误迹象确定程序中错误的确切性质、原因和位置; ②对程序进行修改,排除这个错误。
调试方法: 从是否跟踪和执行程序的角度,分静态测试和动态测试。 静态测试是主要的调试手段,是指通过人的思维来分析源程序代码 和 排错; 动态调试是静态调试的辅助。 主要调试方法有强行排错法、回溯法、原因排除法(二分法、归纳法、演绎法)
|