10. Online language testing system
Testing is an important component of learner evaluation in the entire process of instruction . In the field of foreign language instruction, for example, placement test is often used to determine the language proficiency of a student at the beginning of his/her language study.
This tutorial is focused on the design of an online language testing system. For a review of computers in language testing in general, please check out Brown's (1997) paper at http://polyglot.cal.msu.edu/llt/vol1num1/brown/default.html. For introduction to issues in computer-adaptive test (CAT), please visit http://polyglot.cal.msu.edu/llt/vol2num2/article4/index.html.
A language test can be conducted in two ways:
This tutorial introduces and illustrates the implementation of an online system which delivers the first type of language test, since in terms of test delivery, the latter can be viewed as the superset of the former.
In terms of scalability, a language test can be delivered in two manners:
Technically, the difference between the two can hardly be defined in exact numeric terms. As a rule of thumb, if the number of concurrent testees (i.e., taking a test at the same time) exceeds two hundreds, we will consider it large-scale.
An online language testing system for small-scale classroom use can be optionally implemented with a set of simple (server-side) CGI scripts. In comparison, a system designed to deliver a large-scale test will rely on a database server as its backend. In previous sections we have discussed the issues of server-side scripting and will not discuss them in more detail here. Instead, the focus of this section is on the design of database-driven online system which can be used to deliver both large-scale and small-scale language testing. The implementation of such a system is technically no less challenging than that of an online e-Commerce system, a buzz word on today's Internet.
A database-driven online language testing system is made up of the following compopments:
In general terms, a user interact with the online system through a web browser. A web server is the frontend of the system which coordinates data communication between the backend database server and the user browser. System control modules are a set of scripts or programs which allows test administrators and designers to interact with the online system. To implement such a system, a set of hardware and software is required.
Similar to other web-based systems, there are three kinds of hardware that make up the online language testing system:
10.2.2.1 Web browser
A web browser is the only interface through which a user interacts with the online system. Through a web browser, three functions are performed:
10.2.2.2 Web server
A web server is the mediator between the web browser and the database server. It accepts data from the user, passes them to the database server for further evaluation and logging and sends whatever feedback it receives from the database server back to the user.
10.2.2.3 Database server
A database server is at the core of the entire online system. It accepts user data, processes them and generates feedback to be sent to the user through the web server.
10.2.2.4 Control modules
Control modules are locally developed to perform all the necessary functions that make an online testing possible. The various modules are written mainly using server-side scripting languages and can be internal and/or external. They will be called upon by web browsers, web servers and database servers to perform the various tasks. Database servers usually have their own way of building customized functions.
Similar to a paper-and-pencil test conducted in the traditional classroom, a typical online test session is carried out in the following order:
Corresponding to the above four procedures, four modules need to be implemented on the servers which make up the online testing system:
To implement such an online language testing system, we need to configure the hardware and software properly and develop control modules to perform various functions. An online language testing system requires a lot of server-side scripting/programming. Programming load is mostly on developing those control modules.
Before we demonstrate how such an online system is implemented in the real world, we need to discuss a few crucial issues of online testing that are rarely addressed in paper-and-pencil based classroom testing environment.
10.4.1 Performance/high availability
An important issue in designing an online system for language testing is performance, which affect the decisions in the choice of hardware components. Since most of us will not deal directly with this tricky issue, we will not discuss it in detail here.
(Placeholder: Interested readers can take a look at a sample implementation here.)
Another critical issue is availability. For example, you do not want a client machine to crash in the middle of a student taking the test. When the number of students is large, you want to make sure that servers are up during a test session.
Whatever the situation, it is highly desirable that you have a contingency plan in place before administering an online test.
Note: Many of these issues are to be left to system administrators and programmers.
10.4.2 User authentication
A testee's identity is all this is about for an online test system. The concern here is that we want to make sure that a user is identified with the 'answer sheet' that he submits.
From a programmer's perspective, the one-to-one matching between a client computer that a student uses and the set of data a web server receives can be guaranteed by using the 'session management' technology.
It is the responsibility of test administrators to make sure that the student sitting in front of a computer is the person who he claims to be. There are two approaches to tackle the problem:
A proctored online test is no different from a traditional classroom-based test where student identity is verified, for example, with the help of a photo ID.
Administering an unproctored online test is challenging. Right now, there are no perfect solutions. A plausible options is to place a time limit on a particular test session. This can be achieved through the 'session management' technology in webpage design. Another solution is, for example, taking a digital photo of the testee when he or she is taking the test. Other similar high-tech solutions are also possible.
There is a discussion about user identity at http://www.pbs.org/adultlearning/als/agenda/Articles/testing.html. However, its discussion about web-based testing fails to point out the critical issue that is discussed here. Contrary to what the authors claim, web-based testing still needs to deal with the issue of user authentication.
10.4.3 Test design
As in any other language tests that we deliver in classrooms, test design is the responsibility of language instructors. For example, a placement test will most likely be designed differently from an achievement test administered at the end of a semester.
Security involves the following two concerns:
10.5.1 A sample test
To have a better picture of what we will be discussing below, please take a look at a sample test at www1.cetnet.org/sample first. The online sample test is a barebone demonstration of an online language testing system which is currently under development for the College English Test in China.
10.5.2 System configuration
The following is a list of software that are used in implementing the sample website:
If you are interested to know how those software packages are installed and configured, you can take a look at my quick installation guide.
Note: Based on my personal experiences, the above system is sufficient to handle a few hundred testees at the same time on a campus network.
10.5.3 How user authentication is implemented
What we describe here is applicable to proctored testing, i.e., within a secured testing center.
User authentication is implemented in two steps:
10.5.4 How test items are managed in the database
All test items are stored in different tables in a database. In the case of CET, test items for listening reading, vocabulary and structure, cloze and writing sections are stored in different tables. Each item in a table is identified with a unique ID as well as other attributes.
Test items are entered into the database through a web-based interface. They can be modified through a web-based interface. Sample input pages can be found at www1.cetnet.org/sampleinput. They are for demonstration purposes only. Database manipulation and security features are not available at the sample site.
10.5.5 How test items are generated
All test items are stored in a database. In the online sample test, two simple options are made available: A user can choose which one to take. Once a student selects an option, test items will be pulled out of the database and sent to the web browser. The webpages that make up the test are generated on the fly using dynamic template. In the case of the sample test, PHP is used as the scripting language for the generation of html pages.
In real world implementation, a user will not have such an option. Test items will be either predefined by an instructor or generated on the fly based certain criteria of both the user and the test (if self-adaptive test)
10.5.6 How test data are processed
Once a student's 'answer sheet' is submitted to the web server, his answers are compared with correct answers that are stored in the database. In the sample test, both student's answers and correct answers are displayed for illustration purposes. In the real world, a score can be calculated based on those data. Further, profiles of testees and statistics about those test items can be set up for future reference.