IP Library › Granted Patent US 12,724,691
Granted Patent B2
US 12,724,691 · App. 18/214,613 · Granted Sep 1, 2026

Automated software testing using natural language-based form completion

Inventors: William Tigard Baker (Redmond, WA); Swamy V. P. L. N. Nallamalli (Bothell, WA); Dallas Allen Warren (Redmond, WA); Piyush Gupta (Sammamish, WA); Aaron Edward Dietrich (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/3612G06F11/3668G06F16/3344
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,724,691
App. No.
18/214,613
Filed
Jun 27, 2023
Granted
Sep 1, 2026
Kind
B2
Art Unit
2191
USPC
717/127
Abstract

Aspects of the disclosure include methods and systems for performing automated software testing. The method can include executing software under test and determining that the user interface of the software includes a textual input field. The method includes identifying a label of the textual input field, inputting into a natural language processing system the label as a query and receiving, from the natural language processing system in response to the query, a first input text. The method also includes inputting the first input text into the textual input field and recording a first response of the software to the first input text.

Claims (74)

1 . A method for automated software testing, the method comprising:

executing software under test;

determining that a user interface of the software includes a textual input field;

identifying a label of the textual input field;

identifying additional information regarding the textual input field, the additional information comprising hover-over text that is displayed when a cursor is over the textual input field;

inputting into a natural language processing system a query comprising the label, the additional information, and an instruction to generate a sample input for the textual input field;

receiving, from the natural language processing system in response to the query, a first input text comprising the sample input;

inputting the first input text into the textual input field;

recording a first response of the software to the first input text;

determining that the first response of the software includes a first error message related to the first input text entered in the textual input field, the first error message comprising a constraint for the textual input field;

inputting into the natural language processing system an updated query comprising the label, the additional information, and an instruction to generate a second sample input for the textual input field subject to the constraint;

receiving, from the natural language processing system in response to the updated query, a second input text comprising the second sample input;

inputting the second input text into the textual input field; and

recording a second response of the software to the second input text.

2 . The method of claim 1 , further comprising:

determining that the first response of the software does not include an error message related to the textual input field; and

storing the label associated with the textual input field and the first input text in one or more of a testing log associated with the software and a textual input database.

3 . The method of claim 1 , wherein the determination that the first response of the software includes the first error message is based on a comparison of the user interface before the inputting the first input text into the textual input field and after inputting the first input text into the textual input field.

4 . The method of claim 1 , further comprising:

determining that the second response of the software does not include a second error message related to the textual input field; and

storing the label associated with the textual input field and the second input text in one or more of a testing log associated with the software and a textual input database.

5 . The method of claim 1 , wherein the second response of the software to the second input text includes a second error message related to the textual input field.

6 . The method of claim 5 , further comprising:

determining that the first error message and the second error message are different;

inputting, into the natural language processing system the label, the first error message, and information about the second error message as a third query;

receiving, from the natural language processing system in response to the third query, a third input text;

inputting the third input text into the textual input field; and

recording a third response of the software to the third input text.

7 . The method of claim 6 , further comprising:

determining that the first error message and the second error message are identical; and

transmitting an error notification.

8 . The method of claim 6 , wherein the third response of the software includes a third error message related to the textual input field, and the method further comprises transmitting an error notification.

9 . The method of claim 1 , wherein the natural language processing system is a large language model.

10 . A method for automated software testing, the method comprising:

executing software under test;

determining that a user interface of the software includes a textual input field;

identifying a label of the textual input field;

identifying additional information regarding the textual input field, the additional information comprising hover-over text that is displayed when a cursor is over the textual input field;

obtaining a first input text from a textual input database based on the label;

inputting the first input text into the textual input field;

determining that a first response of the software to the first input text includes a first error message related to the textual input field, the first error message comprising a constraint for the textual input field;

inputting into a natural language processing system the label, information about the first error message, and the additional information as a query that includes an instruction to generate a second sample input for the textual input field subject to the constraint;

receiving, from the natural language processing system in response to the query, a second input text comprising the second sample input;

inputting the second input text into the textual input field; and

recording a second response of the software to the second input text.

11 . The method of claim 10 , further comprising:

determining that the second response of the software does not include an error message related to the textual input field; and

updating the textual input database to include the second input text.

12 . The method of claim 10 , wherein the second response of the software to the second input text includes a second error message related to the textual input field.

13 . The method of claim 12 , further comprising:

inputting, into the natural language processing system the label, the first error message, and information about the second error message as a second query;

receiving, from the natural language processing system in response to the second query, a third input text;

inputting the third input text into the textual input field; and

recording a third response of the software to the third input text.

14 . The method of claim 13 , wherein the third response of the software includes a third error message related to the textual input field, the method further comprises comparing the third error message to one or more of the first error message and the second error message.

15 . The method of claim 14 , further comprising:

determining that the third error message is identical to one or more of the first error message and the second error message; and

transmitting an error notification to a user.

16 . A system having a memory, computer readable instructions, and a processing system for executing the computer readable instructions, the computer readable instructions control the processing system to perform operations comprising:

executing software under test;

determining that a user interface of the software includes a textual input field;

identifying a label of the textual input field;

identifying additional information regarding the textual input field, the additional information comprising hover-over text that is displayed when a cursor is over the textual input field;

inputting into a natural language processing system the label and the additional information as a first query, the first query including an instruction to generate a sample input for the textual input field;

receiving, from the natural language processing system in response to the first query, a first input text comprising the sample input;

inputting the first input text into the textual input field;

determining that a first response of the software includes a first error message related to the textual input field, the first error message comprising a constraint for the textual input field;

inputting into the natural language processing system the label and information about the first error message as a second query, the second query including an instruction to generate a second sample input for the textual input field subject to the constraint;

receiving, from the natural language processing system in response to the second query, a second input text comprising the second sample input;

inputting the second input text into the textual input field; and

recording a second response of the software to the second input text.

17 . The system of claim 16 , wherein the operations further comprise:

determining that the second response of the software includes a second error message related to the textual input field; and

comparing the first error message to the second error message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2023
From: BAKER, WILLIAM TIGARD; NALLAMALLI, SWAMY V. P. L. N.; WARREN, DALLAS ALLEN; GUPTA, PIYUSH; DIETRICH, AARON EDWARD
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064199/0444 →
Continuity (1)
Related Publication 20250004910A1 · Jan 2, 2025
References Cited (45)
US 10164848B1 · Chen · 2018 [cited by examiner]
US 10747651B1 · Vanderwall · 2020 [cited by examiner]
US 11010284B1 · Santiago · 2021 [cited by examiner]
US 11113175B1 · Adamo · 2021 [cited by examiner]
US 12596535B2 · Ciminelli et al. · 2026 [cited by applicant]
US 20050086643A1 · Shane · 2005 [cited by examiner]
US 20080086627A1 · Splaine et al. · 2008 [cited by applicant]
US 20110276944A1 · Bergman et al. · 2011 [cited by applicant]
US 20130268260A1 · Lundberg et al. · 2013 [cited by applicant]
US 20150095721A1 · Beskrovny · 2015 [cited by examiner]
US 20150370688A1 · Zhang et al. · 2015 [cited by applicant]
US 20160132421A1 · Cobb, Jr. et al. · 2016 [cited by applicant]
US 20160179658A1 · Avery et al. · 2016 [cited by applicant]
US 20180189170A1 · Dwarakanath et al. · 2018 [cited by applicant]
US 20180267887A1 · Dsouza · 2018 [cited by applicant]
US 20190087398A1 · Kolesov · 2019 [cited by examiner]
US 20200019488A1 · Singh et al. · 2020 [cited by applicant]
US 20200065218A1 · Bhosale et al. · 2020 [cited by applicant]
US 20210081294A1 · Golubev · 2021 [cited by applicant]
US 20220091968A1 · Kumar · 2022 [cited by examiner]
US 20220138088A1 · Shang et al. · 2022 [cited by applicant]
US 20220277143A1 · Jayarao et al. · 2022 [cited by applicant]
US 20220413997A1 · Shi et al. · 2022 [cited by applicant]
US 20230237826A1 · Perez · 2023 [cited by examiner]
US 20240281600A1 · Brown et al. · 2024 [cited by applicant]
US 20240303184A1 · Liu et al. · 2024 [cited by applicant]
US 20250004928A1 · Baker et al. · 2025 [cited by applicant]
Zhe Liu et al., “Fill in the Blank: Context-aware Automated Text Input Generation for Mobile GUI Testing,” arXiv:2212.04732v1 [cs.SE], Dec. 9, 2022, doi: 10.48550/arXiv.2212.04732 (Year: 2022). [cited by examiner]
D. Santiago, J. Phillips, P. Alt, B. Muras, T. M. King and P. J. Clarke, “Machine Learning and Constraint Solving for Automated Form Testing,” 2019 IEEE 30th International Symposium on Software Reliability Engineering (… [cited by examiner]
International Search Report and Written Opinion received for PCT Application No. PCTPCT/US2024/035684, Nov. 29, 2024, 24 pages. [cited by applicant]
Invitation to Pay Additional Fees received for PCT Application No. PCT/US2024/035684, Oct. 7, 2024, 13 pages. [cited by applicant]
Zimmermann, et al., “Automating GUI-based Software Testing with GPT-3”, IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), Apr. 16, 2023, pp. 62-65. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/034225, Nov. 13, 2024, 17 pages. [cited by applicant]
Yue et al., “RTCM: a national language based, automated, and practical test case generation framework.” Proceedings of the 2015 international symposium on software testing and analysis. (Year:2015); pp. 397-408. [cited by applicant]
Non-Final Office Action mailed on Dec. 5, 2024, in U.S. Appl. No. 18/214,616, 24 pages. [cited by applicant]
Final Office Action mailed on Jul. 1, 2025, in U.S. Appl. No. 18/214,616, 28 pages. [cited by applicant]
Liu et al., “CrawLabel: computing natural-language labels for UI test cases.” Proceedings of the 3rd ACM/IEEE International Conference on Automation of Software Test, May 17, 2022, pp. 103-114. [cited by applicant]
Moreira, et al., “A pattern-based approach for GUI modeling and testing”, IEEE 24th International Symposium on Software Reliability Engineering (ISSRE), Nov. 2013, 10 pages. [cited by applicant]
Non-Final Office Action mailed on Oct. 1, 2025, in U.S. Appl. No. 18/214,616, 28 pages. [cited by applicant]
Final Office Action mailed on Jan. 9, 2026, in U.S. Appl. No. 18/214,616, 31 pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/035684, Jan. 8, 2026, 16 pages. [cited by applicant]
Khaliq, et al., “A deep learning-based automated framework for functional User Interface testing.” In Journal of Information and Software Technology, vol. 150, Jun. 7, 2022, 13 Pages. [cited by applicant]
International Preliminary Report on Patentability (Chapter I) received for PCT Application No. PCT/US2024/034225, Mailed on Jan. 8, 2026, 12 Pages. [cited by applicant]
Chen, et al., “Improving crowd-supported gui testing with structural guidance”, In Proceedings of the 2020 CHI Conference onhuman factors in computing systems, Apr. 2020, 13 Pages. [cited by applicant]
Non-Final Office Action mailed on May 20, 2026, in U.S. Appl. No. 18/214,616, 32 pages. [cited by applicant]