在软件测试领域工作时间越长,就越觉得软件测试深似海,有众多的软件测试的方法和技术需要学习,远不止“黑盒”和“白盒”那么简单的两类,之前曾进行过分类,如: 1) 基于直觉和经验的方法; 2) 基于输入域的方法; 3) 基于代码的方法; 4) 基于故障模式的测试方法; 5) 基于模型的测试方法; 6) 基于使用的方法; 7) 基于需求验证或标准验证的测试方法; 8) 基于逻辑分析的测试方法; 9) 基于上下文驱动的测试方法; 10)基于风险的测试方法。 还有更多的测试技术,依赖于软件技术本身、开发方法或应用领域,例如: 1) 面向对象的软件采用面向对象的测试方法; 2) 面向服务架构(SOA)会采用SOA的测试方法; 3) Web应用测试方技术; 4) 移动app应用测试技术; 5) 针对嵌入式应用的嵌入式测试技术; 6) 敏捷开发中会采用更贴近敏捷的测试技术/实践。 而在学术界还有更多的算法方面的研究,例如当前比较火热的人工智能。除了人工智能,基于模型的测试、基于搜索的软件工程方法等也是学术界研究的重点,甚至有专门的International Workshop on Search-Based Software Testing (SBST) 。如果浏览一下软件测试领域的顶尖会议ISSTA(International Symposium on Software Testing and Analysis,如 https://issta2016.arland/program/)的论文,会对软件测试领域的新方法、新技术有更多的了解。 但同时,感觉工业界和学术界之间交流不够,工业界对软件测试新方法、新技术吸收比较慢,学术界的研究也不一定从工业界遇到的问题出发。仅仅凭感觉还不够,有必要做些调查,了解真实情况,让数据呈现问题,然后再看看能否做些什么、改变什么。 |
|
来自: 郑公书馆298 > 《质量管理与六性精益》