您的位置:首页 > 其它

软件测试基础-更高级别的测试、调试、极限测试

2020-07-18 04:31 211 查看

更高级别的测试

  • 开发过程和测试过程存在一一对应关系 模块测试的目的是发现程序模块与其接口规格说明之间的不一致
  • 功能测试的目的是为了证明程序未能符合其外部规格说明
  • 系统测试的目的是为了证明软件产品与其初始目标不一致

功能测试

  • 黑盒测试
  • 目的:是为了暴露程序的错误以及与规格说明不一致之处,而不是为了证明程序符合其外部规格说明

系统测试

能力测试

  • 判断目标文档提及的每一项能力是否都确实已经实现

容量测试

  • 使程序经受大容量数据的检验。 需要大量资源
  • 机器和工时限制,不能进行过程的容量测试
  • 每个程序应该至少进行几次容量测试

强度测试

  • 使程序承载高负载或强度的检验 高强度:在很短的时间间隔内达到的数据或操作的数量峰值

易用性测试

  • 试图发现人为因素或易用性的问题

安全性测试

  • 设计测试用例来突破程序安全检查的过程

性能测试

  • 特定性能或效率目标,描述为在特定负载和配置环境下程序的响应时间和吞吐量

存储测试

  • 软件偶尔会有存储目标

配置测试

  • 应该使用每一种类型的设备,以最大和最小的配置来测试程序

兼容性/配合/转换测试

  • 当存在新开发的软件替换某些不完善的系统,会涉及到与现有系统的兼容以及从现有系统的转换过程

安装测试

  • 安装测试是系统测试中的一个重要部分

可靠性测试

  • 可靠性目标:正常运行时间,平均故障间隔时间(MTBF)

可恢复性测试

  • 可恢复性目标:平均恢复时间(MTTR)

适用性测试

  • 目标:存储转存程序或诊断程序、调试明显问题的平均时间、维护过程以及内部业务文档的质量

文档测试

  • 根据文档来确定系统测试用例的形式
  • 即一旦涉及完成某个具体的测试情况,应该使用文档来确定系统测试用例的形式

过程测试

  • 必须对所有已规定的人工过程,如系统操作员、数据库管理员或最终用户的操作过程进行测试

系统测试的执行

  • 不能有程序员来进行测试
  • 在所有的测试阶段之中,这是唯一一个明确地不能由负责该程序开发的机构来执行的测试

验收测试

  • 将程序预期最初的需求及最终用户当前的需求进行比较的过程
  • 测试通常是由程序的客户或最终用户来进行

安装测试

  • 在安装软件系统期间会发生很多时间,作为示例的简短列表可以包括: 用户必须选择大量的选项
  • 必须分配并加载文件和库
  • 必须进行有效的硬件配置
  • 软件可能要求网络连通,以便与其他软件连接
  • 软件测试用例需要检查以确认已选的选项集合互不冲突,系统的所有部件全部存在,所有文件已经创建并包含必须内容,硬件配置妥当
  • 测试的计划与控制

    测试结束准则

    • 常见准则: 用完安排的测试时间后,测试便结束
    • 当执行完所有测试用例都未发现错误,测试便结束
  • 上述两条准则往往是无效的,以下三类结束准则较为有效


  • 最佳准则可能是上述三类的组合
  • 调试

    • 调试是执行一次成功的测试之后要进行的工作。成功的测试指的是可以证明程序没有实现预期功能。 从执行了一个成功的测试用例,发现了一个问题开始
    • 确定程序中可疑错误的准确性和位置
    • 修改错误

    暴力调试法

    利用内存信息输出调试

    根据一般的“在程序中插入打印语句”建议来调试

    使用自动化的调试工具进行调试

    特点

    • 忽略思考的过程

    归纳法调试

    演绎法调试

    回溯法调试

    测试法调试

    调试的原则

    定位错误的原则

    • 动脑筋
    • 遇到僵局稍后解决
    • 遇到困境描述给他人
    • 测试工具是第二手段
    • 避免使用试验法

    修改错误的技术

    • 存在一个缺陷的地方,可能还存在其他缺陷
    • 应纠正错误本身,而不是其症状
    • 正确纠正错误的可能性并非100%
    • 正确修改错误的可能性随着程序规模的增大而降低
    • 改正错误可能会引入新的错误
    • 修改错误的过程也是临时回到设计阶段的过程
    • 应该修改源代码而不是目标代码

    错误分析

    • 错误出现在什么地方?
    • 谁制造了这个错误?
    • 哪些做得不正确?
    • 如何避免该错误的出现?
    • 为什么错误没有早些发现?
    • 该如何更早地发现错误?

    极限测试

    极限编程基础

    • XP重视采取简单的设计、在开发人员和客户之间建立联系、不断地测试代码库、重构以适应规格说明的变更,以及寻求用户的反馈。XP更倾向于适合中小规模的软件开发,这些软件的规格说明的变更非常频繁,接近实时的沟通也是可能的。 避免了大规模项目的综合征
    • 避免了编写不必要的功能
    • 将精力集中在测试上,测试先行

    极限测试:概念

    • 极限测试分为单元测试和验收测试

    极限单元测试

    • 是极限测试中才用的主要测试方法
    • 简单规则 所有代码模块在编码开始之前必须设计好单元测试用例
    • 在产品发布之前必须通过单元测试
  • 极限测试中的单元测试与普通单元测试的最大区别
      极限测试中的单元测试必须在模块编码之前就完成设计和生成
    • 这样能够迫使我们在代码编写之前, 首先理解规格说明,避免混淆

    验收测试

    • 目的是判断应用程序是否满足如功能性和易用性等其他需求。在设计/计划阶段,由开发人员和客户来设计验收测试
    • 验收测试也是回归测试的一种形式
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: