Harnessing the Power of LLMs: Automating Unit Test Generation for High-Performance Computing
Rabimba Karanjai, Aftab Hussain, Md Rafiqul Islam Rabin, Lei Xu,, Weidong Shi, Mohammad Amin Alipour

TL;DR
This paper explores using large language models like Davinci and ChatGPT to automate unit test generation for high-performance computing software, addressing challenges of complexity and specialized knowledge.
Contribution
It demonstrates the potential of LLMs to generate effective unit tests for complex parallel C++ programs, a task traditionally difficult in high-performance computing.
Findings
LLMs can produce mostly correct unit tests for HPC software.
Generated tests include comprehensive coverage but have limitations like repetitive assertions.
LLMs show promise but require further refinement for practical deployment.
Abstract
Unit testing is crucial in software engineering for ensuring quality. However, it's not widely used in parallel and high-performance computing software, particularly scientific applications, due to their smaller, diverse user base and complex logic. These factors make unit testing challenging and expensive, as it requires specialized knowledge and existing automated tools are often ineffective. To address this, we propose an automated method for generating unit tests for such software, considering their unique features like complex logic and parallel processing. Recently, large language models (LLMs) have shown promise in coding and testing. We explored the capabilities of Davinci (text-davinci-002) and ChatGPT (gpt-3.5-turbo) in creating unit tests for C++ parallel programs. Our results show that LLMs can generate mostly correct and comprehensive unit tests, although they have some…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Software Testing and Debugging Techniques · Scientific Computing and Data Management
MethodsBalanced Selection
