Software testing is a complex, intellectual activity based (at least) on analysis, reasoning, decision making, abstraction and collaboration performed in a highly demanding environment. Naturally, it uses and allocates multiple cognitive resources in software testers. However, while a cognitive psychology perspective is increasingly used in the general software engineering literature, it has yet to find its place in software testing. To the best of our knowledge, no theory of software testers' cognitive processes exists. Here, we take the first step towards such a theory by presenting a cognitive model of software testing based on how problem solving is conceptualized in cognitive psychology. Our approach is to instantiate a general problem solving process for the specific problem of creating test cases. We then propose an experiment for testing our cognitive test design model. The experiment makes use of verbal protocol analysis to understand the mechanisms by which human testers choose, design, implement and evaluate test cases. An initial evaluation was then performed with five software engineering master students as subjects. The results support a problem solving-based model of test design for capturing testers' cognitive processes.
翻译:软件测试是一个复杂的智力活动,其基础是分析、推理、决策、抽象和协作,在高度苛刻的环境中进行。自然,软件测试者使用和分配多种认知资源。然而,尽管一般软件工程学文献越来越多地使用认知心理学视角,但还没有找到其在软件测试中的位置。根据我们的最佳知识,没有软件测试者认知过程理论。在这里,我们迈出了朝着这一理论方向迈出的第一步,根据认知心理学中解决问题的理念,展示了软件测试认知模型。我们的方法是即时解决创建测试案例的具体问题。我们随后提出测试我们认知测试设计模型的实验。实验利用口头协议分析来理解人类测试者选择、设计、实施和评价测试案例的机制。然后,用5个软件工程硕士生作为科目进行了初步评估。结果支持了基于问题的测试测试者认知过程测试设计模型。