Software testing is recognized as an essential part of the software development process. Random testing (RT), the selection of input test cases at random from the input domain, is a simple and efficient method of software testing. RT does not however make use of previously executed test case information; in particular, information about nonfailure-causing test cases is ignored. Intuitively, use of this positive feedback information can improve the failure-finding efficiency of a testing method. Adaptive random testing (ART) makes use of knowledge of general failure pattern types, and information of previously executed test cases, in the selection of new test cases. A failure pattern in a program's input domain is composed of the regions of failure-causing inputs. Previous research has categorized failure patterns broadly into three types: point; strip; and block, and has identified important implications for the failure-finding efficiency of test methods, depending on the failure pattern type. In particular, it has been found that for nonpoint type patterns, the efficiency of RT can be improved upon by simple modification of the basic approach: by ensuring a more even and widespread distribution of test cases over the input domain, the number of test cases required to find the first failure (F-measure) can be reduced dramatically. This insight has motivated several adaptive random testing methods, and produced convincing results. This paper introduces some of the research in this area and suggests areas of interest for future work.