Progressive black-box testing of computer software applications
View Patent ↗Testing computer software applications by performing a first black-box test on a computer software application, identifying any instructions of the computer software application that were reached by a payload of the first black-box test, determining a degree of success of the first black-box test in accordance with predefined success criteria, determining whether any of the instructions that were reached by the payload changed after performing the first black-box test, deciding whether to perform a second black-box test on the computer software application, where the deciding whether to perform the second black-box test is based on whether any of the instructions that were reached by the payload of the first black-box test changed after performing the first black-box test, and the degree of success of the first black-box test.
1. A method for testing computer software applications, the method comprising:
performing, via a black-box tester, a first black-box test on a computer software application;
identifying any instructions of the computer software application that were reached by based on a payload of the first black-box test;
determining a degree of success of the first black-box test in accordance with predefined success criteria;
monitoring coding tools used to modify the instructions of the computer software application;
monitoring the instructions of the computer software application for changes after black-box tests are performed on the computer software application;
determining, based on the monitored coding tools and the monitored instructions, whether any of the instructions that were reached by the payload changed after performing the first black-box test; and
deciding whether to perform a second black-box test on the computer software application, wherein the deciding whether to perform the second black-box test is based on: whether any of the instructions that were reached by the payload of the first black-box test changed after performing the first black-box test and the degree of success of the first black-box test, and wherein the performing, identifying, determining, and deciding steps are implemented in any of:
a) computer hardware configured to perform said steps, and
b) computer software configured to perform said steps and embodied in a non-transitory, computer-readable storage medium.
2. The method according to claim 1 wherein the deciding whether to perform the second black-box test is further based on whether a detected change to any of the instructions that were reached by the payload relates to a security vulnerability.
3. The method according to claim 1 and further comprising configuring the second black-box test to be identical to the first black-box test.
4. The method according to claim 3 and further comprising performing the second black-box test responsive to determining that the first black-box test failed and that any of the instructions that were reached by the payload of the first black-box test changed after performing the first black-box test.
5. The method according to claim 1 and further comprising configuring the second black-box test to include a variant of the payload used in the first black-box test, wherein both the first black-box test and the second black-box test are configured to test for the same type of behavior.
6. The method according to claim 5 and further comprising performing the second black-box test responsive to determining that the first black-box test failed and that the instructions that were reached by the payload of the first black-box test are unchanged after performing the first black-box test.
7. The method according to claim 5 and further comprising performing the second black-box test responsive to determining that the first black-box test succeeded and that the instructions that were reached by the payload of the first black-box test are unchanged after performing the first black-box test.
8. The method according to claim 5 and further comprising performing the second black-box test responsive to determining that the first black-box test succeeded and that any of the instructions that were reached by the payload of the first black-box test changed after performing the first black-box test.
9. The method according to claim 1 and further comprising:
determining whether the instructions that were reached by the payload of the first black-box test participate in a security-relevant flow; and
performing the second black-box test only if the instructions that were reached by the payload of the first black-box test participate in a security-relevant flow.
10. The method according to claim 1 and further comprising configuring the second black-box test based on a characteristic of the instructions that were reached by the payload of the first black-box test.