张 琪
(上海市软件评测中心有限公司(软件测试部),上海 200233)
大数据处理是指不能通过传统计算技术处理的海量数据集合的数据创建、存储、检索和分析等操作,具有大批量、多样性、复杂性、实时性、交互性等特性。在大数据背景下,随着互联网、政府、企业、个人用户需求量的增加,基于大数据技术的应用系统越来越多,对软件测试工作提出了很大的挑战。只有转变传统的测试思维,合理利用多种技术和框架、各种自动化工具的融合,并不断开拓创新测试方法和技术,优化改进测试策略和流程,才能够获得更好的发展。
Google于 2004年提出的大数据处理框架Map-Reduce已得到了广泛的应用,用户在设计分布式应用程序时只需要实现 map()和 reduce()两个函数,不需关注数据分片、任务调度、机器间通信、机器容错等方面是如何实现的,虽然简化了数据密集型应用的数据处理过程,但是用户功能不如框架本身功能丰富,也给测试工作带来了难度。并且该框架采用分布式特性,无法知道任务被动态分配到集群中的哪个节点执行;无法预知map或reduce任务在哪个节点执行;无法在错误发生前设置断点等,而传统软件测试是基于软件规格说明书等文档进行测试,有预先确定的流程图、数据关系、数据的输入/输出,大数据处理框架的分布式特性给传统软件测试带来了难度[1]。
传统数据一般采用结构化数据,存储在关系型数据库表中或结构化文件中,软件测试时可以用来验证软件输入和输出的正确性。……