第29章 人工智能时代下的软件测试技术发展

一、主要内容

1、人工智能概述
2、人工智能辅助测试技术

二、人工智能概述

与人相似的思维和响应方式的计算机技术

1、人工智能

  • 狭义

    • 去描述或完成具体的任务
    • 例如进行图形的识别(下棋)
  • 广义

    • 能够完成很多种类型的任务,并能根据相关依据的推理,在这些任务之间切换

2、人工智能新的特性

  • 当前对人工智能系统得到的测试结论,很难保证对演化后的系统也能够成立
  • 人工智能系统的输出正确性判别具有一定的不确定性

3、人工智能对软件测试技术发展的影响

  • 测试工作前移
  • 自动化程度提高
  • 测试项目管理
  • 测试需求分析与测试设计
  • 测试执行
  • 测试更可靠

4、人工智能是否会取代软件测试人员

  • 会取代很大一部分传统岗位

    • 流程性体力工作
    • 数据处理
    • 数据采集
  • 减少技能要求低的岗位,增加高技能的需求

  • 不可能完全被取代

三、人工智能辅助测试技术

1、基于约束的技术

  • 提出时间

    • 1991年
  • 基本思想

    • 将被测程序或模型以及测试的准则转换成相关的约束,然后基于约束的消除性去消除约束,最终获得测试用例

2、启发式搜索算法

  • 遗传算法

    • 计算机数学中用于解决最优化的一种搜索算法
    • 这种算法作为生物中的遗传、蜕变、自然选择、杂交等相关的特性,遵循优胜略汰的原则
  • 蚂蚁算法

    • 主要基于搜索的测试生成测试用例
    • 一般是基于UML模型、功能的测试
  • 模拟退火算法

    • 是一种基于蒙特卡罗(Monte Carlo)思想设计的,常用于在较大的解空间中搜索近似全局最优解的优化算法

3、机器学习在软件测试中的应用

  • 软件测试设计推荐
  • 使用模式识别
  • 软件脆弱性测试

猜你喜欢

转载自blog.csdn.net/qq_46071165/article/details/127374151
今日推荐