IBM软件测试理论——功能测试和回归测试

本文详细介绍了功能测试和回归测试的核心概念、作用、相关活动及评估指标,旨在帮助开发者理解和实施有效的测试策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  http://www.51testing.com/html/03/n-237303-2.html

        功能测试的内容是:

  功能测试,在每一个开发阶段,去验证在每个业务功能操作上都和设计文件(内部和外部)中规定的一样。

  开始点:功能测试开始于成功完成单元测试后,和功能测试计划已经被有关各方已批准,并且在基线控制之下。

  结束点:功能测试结束于执行完所有的计划的测试用例,结果中没严重性为1或者2的缺陷。如果未被测试的用例应该被记录下来,并标明原因;所有测试应该被记录下来;有相应的测试报告和总结。

  功能测试的作用:功能测试,验证了系统执行和设计中规定的功能一致。当功能测试正确后才能进入系统集成测试。确定关键功能缺陷和修复缺陷,以避免在系统集成和用户验收测试阶段出现缺陷进行昂贵的返工。

  相关活动:测试计划和测试用例审查,由有关各方批准的基线控制之下;按计划执行功能测试用例;通过跟踪需求变更来验证测试覆盖面;进行缺陷分析;完成功能测试报告。

  功能测试的评估有:成本和进度偏差,缺陷,生产力,效率和测试覆盖度。

  回归测试的内容有:

  回归测试验证,当系统某部分修改(增加新的功能或者修改bug)后,去验证这部分是否被成功修改和其他部分是否会被这部分的修改所影响。要执行回归测试,应用程序必须运行相同的测试用例通过至少两次。第一次测试是修改前应用程序的特定部分是否正确响应。第一次测试获得的应用程序的正确反应做为第二次运行后判定程序是否正确运行的判定标准。

  开始点:因为增加新功能或者修改缺陷而对代码进行的修改后开始回归测试。

  结束点:回归测试结束于成功的执行相关的回归测试用例,并且修改后的程序相关部分没还未解决的缺陷。

  回归测试的作用:回归测试验证了系统的行为是不会受到由于修改系统而产生的影响。它减少了重新验证的时间消耗,它给与验收测试以可信任措施。当时间回归测试相关用例的执行是自动化的时候,显着的好处将被取得。

  相关活动:测试计划和测试用例审查,由有关各方批准的基线控制之下;确定修改的程序(必需的元素)结构属性,然后选择一个可重复执行的测试用例集去执行;制定一个回归测试执行和缺陷的详细报告。

  回归测试的评估有:缺陷评估,失败率,覆盖度。

  功能测试就是验证的系统功能,是软件测试中很重要的一部分。

  所有的defect被修改后,都会去验证这个bug是否成功被修复,而且会验证这个defect周围相关的一些功能是否出现了新的defect,这就是回归测试。

  当软件增加了一个比较大的新功能后,在这个新功能被测试完成后,一般都会有一个专门的回归测试阶段,来进行验证这个软件的其他主要功能是否受影响,是否出现新defect。一般只测试主要功能的主要流程,不会像对待新功能那样详细的测试。在游戏测试中,当某一个功能模块被做了比较大的修改后,都会进行一些主要功能模块的主要功能流程的测试,比如背包有比较大的更新,都会去测试背包相关的仓库、装备、生活技能等功能的主要流程。每次系统进行升级前,都要进行开机测试,验证系统是否能够进行正常的升级,然后才放出来。

  某些回归测试是非常适合自动化测试的,出名的功能测试工具是QTP(quick test professional)和RFT(Rational functional tester)。这2个功能测试工具非常适合做功能方面的回归测试,核心思想就是一个录制和回放的过程,用在回归测试上面的话,录制就是录制被修改前系统的正确反应,回放是回放被修改后的系统来观看系统的反应。我在后面的章节中会介绍这2个工具。

### 回归测试概述 回归测试是一种软件测试方法,旨在验证对软件的修改是否对其原有功能产生了负面影响。其核心目标是确保新增加的功能或修复的缺陷不会破坏现有的代码逻辑功能性[^1]。 --- ### 回归测试的方法 #### 1. **全部重测** 这种方法涉及重新执行所有的测试用例,以确保整个系统的稳定性。尽管该方法能够全面覆盖潜在的风险区域,但由于其高成本耗时特性,在实际项目中较少单独使用[^2]。 #### 2. **选择性回归测试** 通过影响分析,仅选取可能受到变更影响的部分测试用例进行执行。这种方式可以显著降低时间与资源消耗,同时保持较高的覆盖率。具体而言,测试工程师可以根据以下标准筛选测试用例: - 功能的重要性频率。 - 新增或修改的代码路径所关联的模块。 - 历史记录中的易错点或高频失败项[^3]。 #### 3. **优先级排序法** 依据业务价值、用户需求以及历史数据等因素,为测试用例分配不同的优先级。在有限的时间窗口内,优先处理那些具有较高风险的关键场景。这不仅提高了效率,也更好地保障了产品质量[^1]。 #### 4. **部分分析后的回归测试** 此类方法依赖于深入的影响评估报告,针对特定受影响模块设计并运行相应的测试脚本。相比全局扫描的方式更加精准高效。 --- ### 回归测试的工具 以下是几种常见的回归测试工具及其特点: #### 1. **Watir (Web Application Testing in Ruby)** 作为一款基于Ruby语言开发的开源框架,Watir专攻网页应用的自动化测试领域。它兼容主流浏览器环境(如Chrome, Firefox),并通过灵活插件扩展支持复杂交互行为模拟。此外,还可与其他高级DSLs(领域专用语言)无缝对接,提升编写维护便利度[^4]。 ```ruby require 'watir' browser = Watir::Browser.new :chrome browser.goto "http://example.com" puts browser.title browser.close ``` #### 2. **IBM Rational Functional Tester** 由IBM推出的一款商业级别解决方案,适用于桌面端及移动端应用程序界面级别的功能验证任务。内置强大的录制回放机制简化初始配置过程;同时提供了详尽的结果对比视图帮助定位差异所在位置[^4]。 #### 3. **Selenium WebDriver** 广泛应用于跨平台UI层面上的大规模并发操作仿真活动中。凭借丰富的社区贡献文档资料积累优势明显,尤其适合大规模分布式部署架构下的持续集成管道建设环节[^3]。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.example.com") print(driver.title) driver.quit() ``` --- ### 回归测试的一般流程 1. **需求收集阶段** 明确本次迭代引入的新特性调整过的旧组件清单,并据此划定初步候选集合范围[^2]。 2. **策略制定阶段** 结合实际情况权衡采用何种形式开展后续动作——比如全量还是增量模式等等。 3. **准备材料阶段** 整理必要的输入参数组合表单结构体定义文件等内容供下一步骤调用参考之需[^3]. 4. **正式实施阶段** 执行既定方案直至结束为止,期间密切监控各项指标表现情况以便及时发现问题苗头加以遏制消除隐患. 5. **总结反馈阶段** 对整体成效做出定量定性的双重评价结论并向相关人员汇报分享经验教训促进未来改进优化方向探索前行之路. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值