Testing Software Features with Requirements Knowledge

Requirements-based testing (RBT) is a process to uncover software defects that fail the stakeholder needs or desires. With the new and improved features that the software vendor releases continuously, edge cases of a feature and interactions of multiple features are less tested. For example, Zoom released the “Declining a meeting invite with a message” feature in September 2022 (see image below). Has this feature been thoroughly tested? Does this feature interfere with any existing Zoom features? An answer to the latter question is the “Do not disturb” feature that allows the user to block any pop-up notifications for chat. These two features work well in isolation, but fail to meet the goals in composition. This Protégé research project is aimed at developing algorithms to automatically test newly released features and feature interactions, thereby improving software quality and user satisfaction. The algorithm development will involve several components: (1) performing natural language process (NLP) of feature descriptions, (2) building test scripts, and (3) automating the acceptance test execution.

Screenshot from Zoom virtual meeting software that shows a user's option to decline a meeting request

“Declining a meeting invite with a message” feature released by Zoom in September 2022 (image source: https://support.zoom.us/hc/en-us/articles/9515004675341-Declining-a-meeting-invite-with-a-message). The Protégé project is aimed at testing such newly released features by using requirements knowledge.


Headshot of Nan Niu

Nan Niu

Assoc Professor, CEAS - Electrical and Computer Engineeri

832 Rhodes Hall


My current research interests focus on the information seeking strategies that developers use in software engineering. I take an ecological-evolutionary, foraging-theoretic approach to understanding and improving developers' search for relevant information in their daily activities, such as debugging, refactoring, and reuse. My research group investigates how the task environment and the information environment re-shape developers' behaviors, or more accurately, how the developers' behaviors and their environments co-evolve, each shaping the other in important ways. My CAREER project (see http://ceas.uc.edu/news-1415/niu-receives-nsf-career-award.html) links software developers' rational behaviors together with their social information foraging, learning, and co-creation.