智能软件测试
随着 ML、DL 领域的发展,相应的智能软件自动化测试也同样显现出重要性。智能软件自动化测试是指在这类软件上应用自动化测试的技术。
智能软件和传统软件的主要差异是决策逻辑:传统软件的决策逻辑是依据程序代码控制的决策逻辑,而智能软件的决策逻辑是依靠深度学习模型结构中训练得到的权重节点。传统软件从我们写下第一行 Hello, World
的时候就已经开始接触了,它是由控制流和数据流共同组成的业务处理逻辑,具有确定性和可理解性。智能软件随着人工智能的出现开始发展,在近几年显现出了高超的能力,但它们实际上是由数据驱动和构建的参数化数值计算问题。因此,智能软件系统的缺陷往往不是显式的代码或参数错误,而是某些参数叠加而成的隐式错误,人类难以直接理解。
传统软件测试考虑的问题有:测试用例生成、测试预言和测试覆盖。而智能软件测试由于与传统软件的决策逻辑相异,测试覆盖问题相对不重要,关注的重点在数据驱动建模和输出不确定性的问题。
//TODO:智能软件自动化测试流程图
其中,主要的模块是线上测试和线下测试两部分。线下测试指模型发布前对其进行测试与调优,线上测试指模型发布后分析用户和模型的实际数据。
测试数据度量
智能软件测试的主要路线就是由数据驱动建模主导,因此测试数据质量就相对而言较为重要。为此,需要引入测试数据度量。
智能软件的数据类型不同,对其度量的方式也不同。常见的数据可以分为:
- 结构化数据:由域内定义的基本属性描述的项的泛化或聚合,常见的有关系表和统计数据,通常计算机易操纵。
- 非结构化数据:通用符号序列,常见的有文本、语音和图片。通常可被人类理解。
- 半结构化数据:具有一定灵活性的结构化数据,如
HTML
、XML
等数据。
文本数据质量度量
文本数据的质量度量主要有可解释性(置信度、噪声数据比例)、相关性(常用关键字和特殊性)和准确性三种。可解释性指这一模型本身的可靠性,体现了模型的实际学习能力;相关性指产生的文本间的关联度。
图像数据质量
图像数据质量指用于渲染图片的成像系统的质量。图像的评估维度较为广泛。主观评估的主要模型有保真度—实用性—自然性、质量—美学—内容等。客观评估方法有像素统计、信息轮、结构信息等。