发明名称 |
Symbolic execution and automatic test case generation for JavaScript programs |
摘要 |
A method includes, by one or more computing devices, determining JavaScript statements to be evaluated, parsing the JavaScript statements, translating the JavaScript statements into Java bytecodes and JavaScript-specific instructions, executing the Java bytecodes in a Java execution engine, calling a JavaScript run-time engine from the Java execution engine, handling one or more semantic operations associated with the JavaScript-specific instructions through use of the JavaScript run-time engine, and providing return values to the Java execution engine. The statements are configured for execution on a computing device. The set of Java bytecodes and JavaScript-specific instructions is configured to conduct symbolic execution of one or more portions of the JavaScript statements. The symbolic execution is configured to evaluate the JavaScript statements. |
申请公布号 |
US9038032(B2) |
申请公布日期 |
2015.05.19 |
申请号 |
US201213481594 |
申请日期 |
2012.05.25 |
申请人 |
Fujitsu Limited |
发明人 |
Li Guodong;Murthy Praveen K.;Ghosh Indradeep;Rajan Sreeranga P. |
分类号 |
G06F9/44;G06F9/45;G06F11/36;G06F9/455 |
主分类号 |
G06F9/44 |
代理机构 |
Baker Botts L.L.P. |
代理人 |
Baker Botts L.L.P. |
主权项 |
1. A method comprising, by one or more computing devices:
determining JavaScript statements to be evaluated, the JavaScript statements configured for execution on a computing device; parsing the JavaScript statements; translating the JavaScript statements into a set of Java bytecodes and JavaScript-specific instructions configured to conduct symbolic execution of one or more portions of the JavaScript statements; determining a document object model reference in the JavaScript statements; determining a set of instructions representing the document object model; modifying the set of instructions to include information from the document object model reference; executing the Java bytecodes in a Java execution engine; adding the modified set of instructions to the set of Java bytecodes and JavaScript-specific instructions upon access of the document object model reference by the Java execution engine; calling a JavaScript run-time engine from the Java execution engine; handling one or more semantic operations associated with the JavaScript-specific instructions through use of the JavaScript run-time engine; and providing return values to the Java execution engine; wherein the symbolic execution includes evaluating the JavaScript statements by maintaining a symbolic value of the translated JavaScript-specific instructions in the translated Java bytecodes while the JavaScript run-time engine handles semantic operations associated with the translated JavaScript specific instructions. |
地址 |
Kawasaki-shi JP |