目录
一、主要内容
1、人工智能概述
2、人工智能辅助测试技术
二、人工智能概述
与人相似的思维和响应方式的计算机技术
1、人工智能
-
狭义
-
去描述或完成具体的任务
-
例如进行图形的识别(下棋)
-
-
广义
-
能够完成很多种类型的任务,并能根据相关依据的推理,在这些任务之间切换
-
2、人工智能新的特性
-
当前对人工智能系统得到的测试结论,很难保证对演化后的系统也能够成立
-
人工智能系统的输出正确性判别具有一定的不确定性
3、人工智能对软件测试技术发展的影响
-
测试工作前移
-
自动化程度提高
-
测试项目管理
-
测试需求分析与测试设计
-
测试执行
-
测试更可靠
4、人工智能是否会取代软件测试人员
-
会取代很大一部分传统岗位
-
流程性体力工作
-
数据处理
-
数据采集
-
-
减少技能要求低的岗位,增加高技能的需求
-
不可能完全被取代
三、人工智能辅助测试技术
1、基于约束的技术
-
提出时间
-
1991年
-
-
基本思想
-
将被测程序或模型以及测试的准则转换成相关的约束,然后基于约束的消除性去消除约束,最终获得测试用例
-
2、启发式搜索算法
-
遗传算法
-
计算机数学中用于解决最优化的一种搜索算法
-
这种算法作为生物中的遗传、蜕变、自然选择、杂交等相关的特性,遵循优胜略汰的原则
-
-
蚂蚁算法
-
主要基于搜索的测试生成测试用例
-
一般是基于UML模型、功能的测试
-
-
模拟退火算法
-
是一种基于蒙特卡罗(Monte Carlo)思想设计的,常用于在较大的解空间中搜索近似全局最优解的优化算法
-
3、机器学习在软件测试中的应用
-
软件测试设计推荐
-
使用模式识别
-
软件脆弱性测试