report on automated test system

Upload: vishal-gulati

Post on 03-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Report on Automated Test System

    1/64

    Automated Test System

    A MINOR PROJECT REPORT

    On

    Automated Test System

    Submitted to

    Maharishi Markandeshwar University

    In the partial fulfillment of the requirement for the award

    of the degree of

    B-Tech. (7th Sem.) Session: 2009-2013

    1 | P a g e

    SUBMITTED BY:

    Nitin Malik (11090118)

    Tarandeep Singh (11090135)

    Vishal Gulati(11090142)

    GUIDED BY:

    Mr. Rakesh Kamboj

    Lecturer M.M.E.C

  • 7/28/2019 Report on Automated Test System

    2/64

    Automated Test System

    CANDIDATE DECLERATION

    We hereby certify that the work which is being presented in the project entitled

    Automated Test System in fulfillment of the requirement for the award of the degree

    of Bachelor Of Technology in Computer Engineering of M.M. Engineering College,

    Mullana, Ambala, Haryana, India is an authentic record of our own work carried out during a

    period from August 2012 to December 2012, under the supervision ofMr. Rakesh Kamboj

    The matter presented in this project has not been submitted by us for the award of any other

    degree of this or any other Institute/University.

    Tarandeep Singh (11090135)

    Nitin Malik (11090118)

    Vishal Gulati(11090142)

    This is to certify that the above statement made by the candidate is correct to the best of my

    knowledge.

    Date:- Mr. Rakesh Kamboj

    (Assistant prof.)

    External Examine Head Of Department Internal

    Examiner

    2 | P a g e

  • 7/28/2019 Report on Automated Test System

    3/64

    Automated Test System

    Acknowledgement

    We wish to express our deep sense of indebtedness and sincerest gratitude to our guide Mr.

    Rakesh Kamboj Department of Computer engineering, M.M. Engineering College Mullana,

    Ambala, Haryana, India for his invaluable guidance and constructive criticism throughout his

    dissertation. He has displayed unique tolerance and understanding at every step of progress and

    encouraged us. We deem it our privilege to have carried out our work under his able guidance.

    We would especially like to thank Prof. Sandeep Goyal(Assoc. Professor and Head),

    Department of Computer engineering, M.M. Engineering College Mullana, Ambala, Haryana,

    India, without whom this work would not have been as it is now.

    Our sincere thanks go to Mr. Kushagra Aggarwal for his painstaking attitude and prudential

    suggestions throughout our project work.

    As a Final Personal Note, we are grateful to our parents, who are inspirational to us in their

    understanding, patience and constant encouragement

    .

    Nitin Malik (11090118)

    Tarandeep Singh (11090135)

    Vishal

    Gulati(11090142)

    3 | P a g e

  • 7/28/2019 Report on Automated Test System

    4/64

    Automated Test System

    Abstract

    AUTOMATED TEST SYSTEMis a software application to automate the test taking

    procedure at various institutes that provide testing facilties at various levels. This system will

    provide a basis for effective fulfillment of conducting Automated tests as a replacement for the

    paper based tests which are conducted during the internals in the college. It is a generic

    software which is not specifically for MMU. but can be used by any college, school or institute.

    It can be operated easily even by new users, as it uses interactive menus, frames, buttons etc. It

    is not required for the user to have any special knowledge. It has a simple interface and the user

    does not need to have any prior knowledge to access the system.

    This project has been made using Java.It uses MS Access for creating the database. The

    following Packages of Java are used in the project:

    Java.sql

    Java.awt

    Java.awt.event

    import javax.swing.

    A Package in Java is a group of related classes,interfaces and sub-packages.

    It uses Frame class which is a sub-class of the Window class.It is used to create a GUI

    application window.

    4 | P a g e

  • 7/28/2019 Report on Automated Test System

    5/64

    Automated Test System

    CONTENTS

    Introduction to JAVA

    5 | P a g e

    Sr. No. Chapter Page No.

    1. Introduction 6-19

    2. Background of project 20

    3. System model 21-24

    4. Implementation 24-51

    5. Result and Declaration 56-64

    6. References 54-65

  • 7/28/2019 Report on Automated Test System

    6/64

    Automated Test System

    The creation of JAVA

    Java was conceived by James Gosling, Patrick Naughton, Chris Warth, Ed Frank, and

    Mike Sheridan at Sun Microsystems, Inc. in 1991. It took 18 months to develop the firstworking version. This language was initially called Oak but was renamed Java

    in 1995. Between the initial implementation of Oak in the fall of 1992 and the public

    announcement of Java in the spring of 1995, many more people contributed to the design

    and evolution of the language. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank Yellin,

    and Tim Lindholm were key contributors to the maturing of the original prototype.

    Somewhat surprisingly, the original impetus for Java was not the Internet! Instead,

    the primary motivation was the need for a platform-independent (that is, architecture-

    neutral) language that could be used to create software to be embedded in various

    consumer electronic devices, such as microwave ovens and remote controls. As you

    can probably guess, many different types of CPUs are used as controllers. The trouble

    with C and C++ (and most other languages) is that they are designed to be compiled

    for a specific target. Although it is possible to compile a C++ program for just about

    any type of CPU, to do so requires a full C++ compiler targeted for that CPU. The

    problem is that compilers are expensive and time-consuming to create. An easier

    and more cost-efficientsolution was needed. In an attempt to find such a solution,

    Gosling and others began work on a portable, platform-independent language that

    could be used to produce code that would run on a variety of CPUs under differing

    environments. This effort ultimately led to the creation of Java.

    Why JAVA is important to Internet

    6 | P a g e

  • 7/28/2019 Report on Automated Test System

    7/64

    Automated Test System

    The Internet helped catapult Java to the forefront of programming, and Java, in turn, has had a

    profound effect on the Internet. The reason for this is quite simple: Java expands the universe of

    objects that can move about freely in cyberspace. In a network, two very broad categories of

    objects are transmitted between the server and your personal computer: passive information and

    dynamic, active programs. For example, when you read your e-mail, you are viewing passive

    data. Even when you download program, the programs code is still only passive data until you

    execute it. However, second type of object can be transmitted to your computer: a dynamic,

    self-executing program. Such a program is an active agent on the client computer, yet is

    initiated by the server. For example, a program might be provided by the server to display

    properly the data that the server is sending.

    As desirable as dynamic, networked programs are, they also present serious

    problems in the areas of security and portability. Prior to Java, cyberspace was

    effectively closed to half the entities that now live there. As you will see, Java addresses

    those concerns and, by doing so, has opened the door to an exciting new form of

    program: the applet.

    JAVA Applets & Applications:

    Java can be used to create two types of programs: applications and applets. An

    application is a program that runs on your computer, under the operating system of that

    computer. That is, an application created by Java is more or less like one created using C

    or C++. When used to create applications, Java is not much different from any other

    computer language. Rather, it is Javas ability to create applets that makes it important.

    An appletis an application designed to be transmitted over the Internet and executed by

    a Java-compatible Web browser. An applet is actually a tiny Java program, dynamically

    downloaded across the network, just like an image, sound file, or video clip. The

    important difference is that an applet is an intelligent program, not just an animation or

    media file. In other words, an applet is a program that can react to user input and

    dynamically changenot just run the same animation or sound over and over.

    7 | P a g e

  • 7/28/2019 Report on Automated Test System

    8/64

    Automated Test System

    As exciting as applets are, they would be nothing more than wishful thinking if

    Java were not able to address the two fundamental problems associated with them:

    security and portability. Before continuing, lets define what these two terms mean

    relative to the Internet.

    Advantages of JAVA

    8 | P a g e

  • 7/28/2019 Report on Automated Test System

    9/64

    Automated Test System

    Simple

    Secure

    Portable

    Object-oriented

    Robust

    Multithreaded

    Architecture-neutral

    Interpreted

    High performance

    Distributed

    Dynamic

    Simple

    9 | P a g e

  • 7/28/2019 Report on Automated Test System

    10/64

    Automated Test System

    Java was designed to be easy for the professional programmer to learn and use

    effectively. Assuming that you have some programming experience, you will not find

    Java hard to master. If you already understand the basic concepts of object-oriented

    programming, learning Java will be even easier. Best of all, if you are an experienced

    C++ programmer, moving to Java will require very little effort. Because Java inherits

    the C/C++ syntax and many of the object-oriented features of C++, most programmers

    have little trouble learning Java. Also, some of the more confusing concepts from C++

    are either left out of Java or implemented in a cleaner, more approachable manner.

    Beyond its similarities with C/C++, Java has another attribute that makes it easy

    to learn: it makes an effort not to havesurprisingfeatures. In Java, there are a small

    number of clearly defined ways to accomplish a given task.

    Security:

    As you are likely aware, every time that you download a normal program, you

    are risking a viral infection. Prior to Java, most users did not download executable

    programs frequently, and those who did scanned them for viruses prior to execution.

    Even so, most users still worried about the possibility of infecting their systems with

    a virus. In addition to viruses, another type of malicious program exists that must be

    guarded against. This type of program can gather private information, such as credit

    card numbers, bank account balances, and passwords, by searching the contents of

    your computers local file system. Java answers both of these concerns by providing

    a firewall between a networked application and your computer.

    When you use a Java-compatible Web browser, you can safely download Java

    applets without fear of viral infection or malicious intent. Java achieves this protection

    by confining a Java program to the Java execution environment and not allowing it

    access to other parts of the computer. (You will see how this is accomplished shortly.)

    The ability to download applets with confidence that no harm will be done and that

    no security will be breached is considered by many to be the single most important

    aspect of Java.

    10 | P a g e

  • 7/28/2019 Report on Automated Test System

    11/64

    Automated Test System

    Portability:

    As discussed earlier, many types of computers and operating systems are in use

    throughout the worldand many are connected to the Internet. For programs to

    be dynamically downloaded to all the various types of platforms connected to the

    Internet, some means of generating portable executable code is needed. As you will

    soon see, the same mechanism that helps ensure security also helps create portability.

    Indeed, Javas solution to these two problems is both elegant and efficient.

    Object Oriented

    Although influenced by its predecessors, Java was not designed to be source-code

    compatible with any other language. This allowed the Java team the freedom to design

    with a blank slate. One outcome of this was a clean, usable, pragmatic approach to

    objects. Borrowing liberally from many seminal object-software environments of the

    last few decades, Java manages to strike a balance between the purists everything is

    an object paradigm and the pragmatists stay out of my way model. The object

    model in Java is simple and easy to extend, while simple types, such as integers, are

    kept as high-performance nonobjects.

    Robust

    The multiplatformed environment of the Web places extraordinary demands on a

    11 | P a g e

  • 7/28/2019 Report on Automated Test System

    12/64

    Automated Test System

    program, because the program must execute reliably in a variety of systems. Thus, the

    ability to create robust programs was given a high priority in the design of Java. To

    gain reliability, Java restricts you in a few key areas, to force you to find your mistakes

    early in program development. At the same time, Java frees you from having to worry

    about many of the most common causes of programming errors. Because Java is a

    strictly typed language, it checks your code at compile time. However, it also checks

    your code at run time. In fact, many hard-to-track-down bugs that often turn up in

    hard-to-reproduce run-time situations are simply impossible to create in Java.

    Knowing that what you have written will behave in a predictable way under diverse

    conditions is a key feature of Java.

    To better understand how Java is robust, consider two of the main reasons for

    program failure: memory management mistakes and mishandled exceptional

    conditions (that is, run-time errors). Memory management can be a difficult, tedious

    task in traditional programming environments. For example, in C/C++, the

    programmer must manually allocate and free all dynamic memory. This sometimes

    leads to problems, because programmers will either forget to free memory that has

    been previously allocated or, worse, try to free some memory that another part of

    their code is still using. Java virtually eliminates these problems by managing memory

    allocation and deallocation for you. (In fact, deallocation is completely automatic,because Java provides garbage collection for unused objects.) Exceptional conditions in

    traditional environments often arise in situations such as division by zero or file not

    found, and they must be managed with clumsy and hard-to-read constructs. Java

    helps in this area by providing object-oriented exception handling. In a well-written

    Java program, all run-time errors canand shouldbe managed by your program.

    Multithreaded

    Java was designed to meet the real-world requirement of creating interactive,

    12 | P a g e

  • 7/28/2019 Report on Automated Test System

    13/64

    Automated Test System

    networked programs. To accomplish this, Java supports multithreaded programming,

    which allows you to write programs that do many things simultaneously. The Java

    run-time system comes with an elegant yet sophisticated solution for multiprocess

    synchronization that enables you to construct smoothly running interactive systems.

    Javas easy-to-use approach to multithreading allows you to think about the specific

    behavior of your program, not the multitasking subsystem.

    Architectural Neutral

    A central issue for the Java designers was that of code longevity and portability. One

    of the main problems facing programmers is that no guarantee exists that if you write

    a program today, it will run tomorroweven on the same machine. Operating system

    upgrades, processor upgrades, and changes in core system resources can all combine

    to make a program malfunction. The Java designers made several hard decisions in the

    Java language and the Java Virtual Machine in an attempt to alter this situation. Their

    goal was write once; run anywhere, any time, forever. To a great extent, this goal

    was accomplished.

    Interpreted & high performance

    As described earlier, Java enables the creation of cross-platform programs by compiling

    into an intermediate representation called Java bytecode. This code can be interpreted

    on any system that provides a Java Virtual Machine. Most previous attempts at cross-

    platform solutions have done so at the expense of performance. Other interpreted

    systems, such as BASIC, Tcl, and PERL, suffer from almost insurmountable performance

    deficits. Java, however, was designed to perform well on very low-power CPUs. As

    explained earlier, while it is true that Java was engineered for interpretation, the Java

    bytecode was carefully designed so that it would be easy to translate directly into native

    machine code for very high performance by using a just-in-time compiler. Java run-time

    systems that provide this feature lose none of the benefits of the platform-independent

    13 | P a g e

  • 7/28/2019 Report on Automated Test System

    14/64

    Automated Test System

    code. High-performance cross-platform is no longer an oxymoron

    Distributed

    Java is designed for the distributed environment of the Internet, because it handles

    TCP/IP protocols. In fact, accessing a resource using a URL is not much different

    from accessing a file. The original version of Java (Oak) included features for intra-

    address-space messaging. This allowed objects on two different computers to execute

    procedures remotely. Java revived these interfaces in a package calledRemote Method

    Invocation (RMI). This feature brings an unparalleled level of abstraction to client/server programming.

    Dynamic

    Java programs carry with them substantial amounts of run-time type information that

    is used to verify and resolve accesses to objects at run time. This makes it possible to

    dynamically link code in a safe and expedient manner. This is crucial to the robustness of the

    applet environment, in which small fragments of bytecode may be dynamically

    updated on a running system.

    JDBC Connectivity-Java Database Connectivity

    14 | P a g e

  • 7/28/2019 Report on Automated Test System

    15/64

    Automated Test System

    JDBC is Java application programming interface that allows the Java programmers to access

    database management system from Java code.

    In short JDBC helps the programmers to write java applications that manage these three

    programming activities:

    1. It helps us to connect to a data source, like a database.

    2. It helps us in sending queries and updating statements to the database.

    3. Retrieving and processing the results received from the database in terms of answering to

    your query.

    Database:

    A database is an organized collection of information. A simple example of a database are like your

    telephone directory, recipe book etc.

    A Relational model is the basis for any relational database management system (RDBMS). A relational

    model has mainly three components:

    1. A collection of objects or relations,.

    2. Operators that act on the objects or relations.

    3. Data integrity methods.

    To design a database we need three things:

    1. Table

    2. Rows

    3. Columns

    SOFTWARE DEVELOPMENT LIFE CYCLE

    15 | P a g e

  • 7/28/2019 Report on Automated Test System

    16/64

    Automated Test System

    The Systems Development Life Cycle (SDLC), orSoftware Development Life

    Cycle in systems engineering, information systems and software engineering, is the process of

    creating or altering systems, and the models and methodologies that people use to develop these

    systems. The concept generally refers to computer or information systems. Emphasis on this

    article (SDLC) is on man-made technological life-cycle. But there are many other life-cycle

    models to choose from. This includes ecological life cycles, for every life cycle, whether

    biological or technological, has a beginning and an end.

    In software engineering the SDLC concept underpins many kinds of software development

    methodologies. These methodologies form the framework for planning and controlling the

    creation of an information system[1]: the software development process.

    In project management a project can be defined both with a project life cycle (PLC) and an

    SDLC, during which slightly different activities occur. According to Taylor (2004) "the project

    life cycle encompasses all the activities of the project, while the systems development life cycle

    focuses on realizing the product requirements".

    Figure:3 Model of the Systems Development Life Cycle

    16 | P a g e

  • 7/28/2019 Report on Automated Test System

    17/64

    Automated Test System

    with the Maintenance bubble highlighted.

    The System Development Life Cycle framework provides a sequence of activities for

    system designers and developers to follow. It consists of a set of steps or phases in which each

    phase of the SDLC uses the results of the previous one.

    A Systems Development Life Cycle (SDLC) adheres to important phases that are essential for

    developers, such as planning, analysis, design, and implementation, and are explained in the

    section below. A number of system development life cycle (SDLC) models have been created:

    waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize andstabilize. The oldest of these, and the best known, is the waterfall model: a sequence of stages

    in which the output of each stage becomes the input for the next. These stages can be

    characterized and divided up in different ways, including the following:

    Project planning, feasibility study: Establishes a high-level view of the

    intended project and determines its goals.

    Systems analysis, requirements definition: Defines project goals into

    defined functions and operation of the intended application. Analyzes end-user

    information needs.

    Systems design: Describes desired features and operations in detail,including screen layouts, business rules, process diagrams, pseudocode and

    other documentation.

    Implementation: The real code is written here.

    17 | P a g e

  • 7/28/2019 Report on Automated Test System

    18/64

    Automated Test System

    Integration and testing: Brings all the pieces together into a special testing

    environment, then checks for errors, bugs and interoperability.

    Acceptance, installation, deployment: The final stage of initialdevelopment, where the software is put into production and runs actual

    business.

    Maintenance: What happens during the rest of the software's life: changes,

    correction, additions, moves to a different computing platform and more. This,

    the least glamorous and perhaps most important step of all, goes on seemingly

    forever.

    Introduction to Automated Test System

    Automated Test System is basically intended at developing software for providing anAutomated System for the students of MMU. We will be developing this software because of

    the following reasons:

    1. Presently, if the teachers conduct any objective test, they have to check the answersheets manually which is time consuming.

    2. Students cannot do practice of attempting objective question papers.

    3. Generation of results manually might result in errors. The Automated Test System willbe overcoming the above mentioned problems and will be providing the following

    features:

    4. There will be a real time testing environment.

    18 | P a g e

  • 7/28/2019 Report on Automated Test System

    19/64

    Automated Test System

    5. Test creation will become easier which will be including incorporation of new questionsand deletion and modification of already existing questions periodically.

    6. Paper pattern which includes duration of test, number of questions of various levels andmarking scheme; will have flexibility, i.e. faculty will have such options.

    7. Results and the answers will be displayed instantaneously just after the completion oftest.

    8. The records of the students will be updated in their profile after the completion of theirtest for future references.

    9. There will be different level of questions in the paper so that the judgement of studentsknowledge can be done efficiently.

    10. There will be zero paper work.

    11. The students will have to get themselves registered before they proceed further.

    Background

    EXISTING SYSTEM

    The whole process of assigning test and evaluating their scores after the test, was done

    manually till date. Processing the test paper i.e. checking and distributing respective scores used

    to take time when the software was not installed.

    19 | P a g e

  • 7/28/2019 Report on Automated Test System

    20/64

    Automated Test System

    DISADVANTAGES OF CURRENT

    SYSTEM

    The current system is very time consuming.

    It is very difficult to analyze the exam manually.

    To take exam of more candidates more invigilators are required but no need of

    invigilator in case of on line exam.

    Results are not precise as calculation and evaluations are done manually.

    The chances of paper leakage are more in current system as compared to proposed

    system.

    Result processing takes more time as it is done manually

    System Model

    Automates Test System will provide a basis for effective fulfillment of conducting Automated

    tests as a replacement for the paper based tests which are conducted during the internals in the

    college. It is a generic software which is not specifically for MMU. but can be used by any

    college, school or institute. The only necessary condition for the usage of this software is that

    there should be following users:

    20 | P a g e

  • 7/28/2019 Report on Automated Test System

    21/64

    Automated Test System

    Administrator: He is the person who will be responsible for maintaining the whole system. He

    will have access to the profile of every student which will give the record of the performance of

    that student in various tests he gave. He will be provided with the effective test system

    supervision. In case the system works only as a practice session the result is not stored in the

    database ans hence can't be accessed for any further use. This part of the system is enhanced

    when used in major exam taking institutes.

    User: He is the person who will be appearing in the test which will be conducted by the faculty.

    He will know his result instantaneously. Before all this, he will have to register himself or fill

    login-id and password if already registered. The person has to select for which he is giving the

    exam and selects ot and appears for it .The exam result is shown when the user completed the

    exam.

    DATA TABLES

    Log Information Table Question Series

    Field name Data type Description

    21 | P a g e

  • 7/28/2019 Report on Automated Test System

    22/64

    Automated Test System

    Username Text Username of user

    Password Text Password provided by the admin

    Fname Text Father name

    Doe Text Date of exam

    Subj Text Subject to appear for

    Conducted Text If the exam is yet conducted

    Question Series Table

    Field name Data Type

    Descriptionquestion text Question that examiner putsAns1 Text Answer1

    Ans2 Text Answer2

    Ans3 Text Answer3

    Ans4 Text Answer4

    22 | P a g e

  • 7/28/2019 Report on Automated Test System

    23/64

    Automated Test System

    Rightans Number Right answer to question

    Subject Text Subject chosen

    Users Table

    Field name Description

    username text

    password text

    HARDWARE REQUIREMENT:

    Processor: Pentium P3 onwards

    Main memory: 128 MB

    Hard disk: 40GB

    Modem: internal chip (any)

    Telephone line: any landline connection

    SOFTWARE REQUIREMENT:

    23 | P a g e

  • 7/28/2019 Report on Automated Test System

    24/64

    Automated Test System

    Platform: The operating system requirement of our application software is WINDOWS 98 or

    higher

    Front end: JAVA

    Backend: MS ACCESS

    Source code

    coding for main (login) class:

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*;

    import java.util.ArrayList;

    public class Login extends JDialog

    {

    public static String subject;

    24 | P a g e

  • 7/28/2019 Report on Automated Test System

    25/64

    Automated Test System

    JLabel lbtop = new JLabel("Login Window");

    JCheckBox cb = new JCheckBox("Administrator");

    JLabel lbname = new JLabel("Name");

    JLabel lbpassword = new JLabel("Password");

    JLabel lbsubject = new JLabel("Subject");

    JTextField txtname = new JTextField(20);

    JPasswordField txtpassword = new JPasswordField(20);

    JComboBox cmbsubject;

    JButton btlogin = new JButton("Login");

    JButton btexit = new JButton("Exit");

    Container c = getContentPane();

    public Login()

    {

    this.setLayout(null);

    this.setSize(350,420);

    this.setLocation(300,100);

    this.addWindowListener

    (

    new WindowAdapter()

    {

    public void windowClosing(WindowEvent we)

    {

    System.exit(0);

    }

    }

    );

    cmbsubject = new JComboBox();

    for(int i=0;i

  • 7/28/2019 Report on Automated Test System

    26/64

    Automated Test System

    txtpassword.setBounds(150,140,100,20);

    lbsubject.setBounds(55,180,100,20);

    cmbsubject.setBounds(150,180,100,20);

    btlogin.setBounds(45,250,80,20);

    btexit.setBounds(200,250,80,20);

    c.add(lbtop);

    c.add(cb);

    c.add(lbname);

    c.add(txtname);

    c.add(lbpassword);

    c.add(txtpassword);

    c.add(lbsubject);c.add(cmbsubject);

    c.add(btlogin);

    c.add(btexit);

    btlogin.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    if (cb.isSelected())

    checkad();

    else

    check();

    }

    }

    );

    btexit.addActionListener(new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    System.exit(0);

    }

    }

    26 | P a g e

  • 7/28/2019 Report on Automated Test System

    27/64

    Automated Test System

    );

    setVisible(true);

    }

    public void check(){

    if( checkUser(txtname.getText(),new

    String(txtpassword.getPassword()),cmbsubject.getSelectedItem().toString())){

    subject = cmbsubject.getSelectedItem().toString();

    OnlineTest.studentname=txtname.getText();

    OnlineTest.myself = new OnlineTest();

    this.setVisible(false);

    }

    else{

    JOptionPane.showMessageDialog(null,"Invalid login...");}

    }

    public void checkad(){

    if(checkUserad(txtname.getText(),new String(txtpassword.getPassword()))){

    administrator ad=new administrator();

    this.setVisible(false);

    }

    else{

    JOptionPane.showMessageDialog(null,"Invalid login...");

    }

    }

    boolean checkUser(String name, String password, String subj)

    {

    Connection con = null;

    Statement st = null;

    try

    {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    con = DriverManager.getConnection("jdbc:odbc:questiondsn");

    }

    catch(Exception e){

    System.out.println("Error connecting : " + e);

    }

    27 | P a g e

  • 7/28/2019 Report on Automated Test System

    28/64

    Automated Test System

    try{

    st= con.createStatement();

    ResultSet rs= st.executeQuery("Select * from Log_information where username='" +

    name + "' and password='" + password + "' and subj='" + subj + "' and conducted='N';");

    return rs.next();

    }

    catch(Exception ex){

    System.out.println("Error checking login : " + ex.getMessage());

    return false;

    }

    finally{

    try {

    st.close();} catch (Exception e) {

    }

    try {

    con.close();

    } catch (Exception e) { }

    }

    }

    boolean checkUserad(String name, String password)

    {

    Connection con = null;

    Statement st = null;

    try

    {

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    con = DriverManager.getConnection("jdbc:odbc:questiondsn");

    }

    catch(Exception e){

    System.out.println("Error connecting : " + e);}

    try{

    st= con.createStatement();

    28 | P a g e

  • 7/28/2019 Report on Automated Test System

    29/64

    Automated Test System

    ResultSet rs= st.executeQuery("Select * from users where username='" + name + "' and

    password='" + password + "'");

    return rs.next();

    }

    catch(Exception ex){

    System.out.println("Error checking login : " + ex.getMessage());

    return false;

    }

    finally{

    try {

    st.close();

    } catch (Exception e) {

    }

    try {

    con.close();} catch (Exception e) { }

    }

    }

    public static void main(String [] args)

    {

    new Login();

    }

    }

    coding for online test class:

    import java.awt. *;

    import java.awt.event.*;

    import javax.swing.*;

    import java.sql.*;

    29 | P a g e

  • 7/28/2019 Report on Automated Test System

    30/64

    Automated Test System

    import java.util.ArrayList;

    class QuestionSeries

    {

    static String info =" Online Test Week \n \nINSTRUCTIONS:\nThere are 20 questions in this

    test and 10 minutes to complete them all.\nThe finish button is highlighted in blue when you

    reach the end of the test. \nClicking the finish button will display the results with the correct

    answers marked in light red. \n \nThe timecounter begins when you click on the 'start'

    button \n \nBest of luck!\n";

    static String []question = new String[20];

    static String [][]answers =new String[20][500];

    static int []n = new int[20];

    static String []choice= new String[20];

    static int tally = choice.length;static String testtitle="Online Test";

    static int timeLimit =10;

    static int passMark = 35;

    public static ArrayList subjects = new ArrayList();

    public static Connection con = null;

    public static Statement st = null;

    public static void loadQuestions(){

    ResultSet rs = null;

    try{

    String qry = "select Question,ans1,ans2,ans3,ans4,rightans from questionseries

    where subject='" + Login.subject + "'";

    st = con.createStatement();

    rs = st.executeQuery(qry);

    int i = -1;while( rs.next() && i

  • 7/28/2019 Report on Automated Test System

    31/64

    Automated Test System

    n[i] = rs.getInt(6);

    choice[i] = String.valueOf(n[i]);

    }

    try {

    rs.close();

    } catch (Exception e) {

    }

    try {

    st.close();

    } catch (Exception e) {

    }

    }

    catch(Exception ex){System.out.println("Error loading questions : " + ex.getMessage());

    }

    }

    static{

    ResultSet rs=null;

    try{

    try{

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    con = DriverManager.getConnection("jdbc:odbc:questiondsn");

    }

    catch(Exception e){

    System.out.println("Error connecting : " + e);

    }

    String qry = "select distinct subject from questionseries";

    Statement st = con.createStatement();rs = st.executeQuery(qry);

    while( rs.next() ){

    subjects.add(rs.getString(1));

    }

    }

    31 | P a g e

  • 7/28/2019 Report on Automated Test System

    32/64

    Automated Test System

    catch(Exception e){

    System.out.println("Error initializing : " + e);

    }

    finally{

    try {

    rs.close();

    } catch (Exception e) {

    }

    try {

    st.close();

    } catch (Exception e) {

    }

    }

    }}

    /* OnlineTest class */

    public class OnlineTest extends JFrame{

    static String studentname ="";

    static String password ="";

    static int TOTAL=20;

    static boolean loginResult;

    public static OnlineTest myself;

    int seconds, minutes;

    int quesnum, itemCheck, mark;

    final String TESTTITLE = QuestionSeries.testtitle;

    final int TIMELIMIT = QuestionSeries.timeLimit;

    final int PASS = QuestionSeries.passMark;

    String []answers = new String[TOTAL];

    JButton []choice_button = new JButton[6];JTextArea answerboxes[] = new JTextArea[4];

    JRadioButton []boxes = new JRadioButton[4];

    JTextPane pane = new JTextPane();

    JLabel student, choose, message, timecounter, testresult;

    boolean start_test, check_answer, allowRestart, finishtest;

    Northwindow panelNorth = new Northwindow();

    32 | P a g e

  • 7/28/2019 Report on Automated Test System

    33/64

    Automated Test System

    Southwindow panelSouth = new Southwindow();

    Centerwindow panelCenter = new Centerwindow();

    /* OnlineTest Constructor */

    protected OnlineTest(){

    QuestionSeries.loadQuestions();

    for (int i=0; i

  • 7/28/2019 Report on Automated Test System

    34/64

    Automated Test System

    student = new JLabel("\t Welcome : "+studentname+" to the Online Java Test");

    student.setFont(new Font("",Font.BOLD,16) );

    message = new JLabel();

    message.setForeground(Color.blue);

    add(student);

    add(message);

    add(new JLabel(" ") );

    add(new JLabel(" ") );

    setBorder(BorderFactory.createEtchedBorder() );

    }

    }

    /**

    ** Southwindow class

    **/class Southwindow extends JPanel{

    public Southwindow(){

    String []key = {"","start:","next:","finish:","check next:","check previous:"};

    for(int i=0; i

  • 7/28/2019 Report on Automated Test System

    35/64

    Automated Test System

    JPanel east = new JPanel();

    east.setLayout(new BorderLayout() );

    JPanel northEast = new JPanel();

    northEast.setBackground(new Color(230, 230, 255) );

    east.add("North", northEast);

    JPanel westEast = new JPanel();

    westEast.setLayout(new GridLayout(6,1) );

    east.add("West", westEast);

    JPanel centerEast = new JPanel();

    centerEast.setLayout(new GridLayout(6,1) );

    centerEast.setBackground(new Color(255,255,200));

    east.add("Center", centerEast);

    timecounter = new JLabel(" There are "+TOTAL+" questions in

    total");

    timecounter.setFont(new Font ("Arial",Font.BOLD,16) );timecounter.setForeground(new Color(0,90,20) );

    northEast.add(timecounter);

    westEast.add(new JLabel(" "));

    String []boxs = {" A ", " B ", " C ", " D "};

    for(int i=0; i

  • 7/28/2019 Report on Automated Test System

    36/64

    Automated Test System

    centerEast.add(panes[i]);

    }

    if(TIMELIMIT >0)testresult = new JLabel(studentname+", You have only :

    "+TIMELIMIT+" minutes to complete.");

    else testresult = new JLabel(" There is no time limit for this test");

    testresult.setBorder(BorderFactory.createEtchedBorder() );

    centerEast.add(testresult);

    add(west);

    add(east);

    }

    }

    /**

    ** ActionHandler class to handle all the action events from the buttons.

    **/

    class ActionHandler implements ActionListener{

    /* actionPerformed method */

    public void actionPerformed(ActionEvent evt){

    String source = evt.getActionCommand();

    if(source.equals("start:")){

    choice_button[1].setVisible(false);

    start_test=true;

    allowRestart=true;

    if(TIMELIMIT >0)new Timer(); // inner Timer class

    panelSouth.remove(choice_button[1]); //start

    displayquestion();

    }

    if(start_test){

    if(source.equals("previous:")) {

    recordanswer();

    quesnum--;

    if(quesnum == -1) quesnum=TOTAL-1;checkteststatus();

    displayquestion();

    }

    if(source.equals("next:")) {

    recordanswer();

    quesnum++;

    36 | P a g e

  • 7/28/2019 Report on Automated Test System

    37/64

    Automated Test System

    if(quesnum == TOTAL-1) finishtest=true;

    if(quesnum == TOTAL) quesnum=0;

    checkteststatus();

    displayquestion();

    }

    if(source.equals("finish:")) {

    if (finishtest){

    recordanswer();

    quesnum = 0;

    choice_button[4].setBackground(Color.lightGray);

    timecounter.setForeground(Color.blue);

    timecounter.setFont(new Font ("Arial",0,14) );

    start_test=false;

    check_answer=true;panelSouth.add(choice_button[0]);

    mark_ques();

    displayquestion();

    checkteststatus();

    calculateResult();

    }

    else JOptionPane.showMessageDialog(null,"Cycle through all questions

    before pressing finish",

    "User Message",JOptionPane.INFORMATION_MESSAGE);

    }

    }

    if (check_answer){

    if(source.equals("check next:")) {

    quesnum++;

    if(quesnum == TOTAL)

    quesnum=0;

    mark_ques();displayquestion();

    checkteststatus();

    }

    if(source.equals("check previous:")) {

    quesnum--;

    if(quesnum == -1)

    37 | P a g e

  • 7/28/2019 Report on Automated Test System

    38/64

    Automated Test System

    quesnum=TOTAL-1;

    mark_ques();

    displayquestion();

    checkteststatus();

    }

    }

    validate();

    }

    /* Timer class */

    class Timer extends Thread implements Runnable{

    public Timer(){

    new Thread(this).start();

    }

    public void run() {

    while(start_test){

    try {

    Thread.sleep(1000);

    seconds++;

    if(seconds % 60 == 0 && seconds != 0){

    seconds -= 60;

    minutes++;

    }

    timecounter.setText(" Time Counter: "+minutes+" mins :

    "+seconds+" secs ");

    if(minutes==TIMELIMIT){

    start_test=false;

    endTest();

    }

    }

    catch(InterruptedException ex) { System.out.print(ex); }

    }}

    }

    /* checkteststatus method */

    public void checkteststatus(){

    38 | P a g e

  • 7/28/2019 Report on Automated Test System

    39/64

    Automated Test System

    if((quesnum == TOTAL-

    1)&&(start_test))choice_button[3].setBackground(Color.green);

    else choice_button[4].setBackground(Color.lightGray);

    if(answers[quesnum].length() >0){

    for(int i=0; i

  • 7/28/2019 Report on Automated Test System

    40/64

    Automated Test System

    answers[quesnum] = tmp;

    }

    /* endTest method */

    public void endTest(){

    message.setText("TIME OVER: please press 'finish'");

    choice_button[3].setEnabled(false);

    choice_button[4].setEnabled(false);

    choice_button[2].setEnabled(true);

    }

    /* mark_ques() method to highlight correct answers */

    public void mark_ques(){for(int i=0; i

  • 7/28/2019 Report on Automated Test System

    41/64

    Automated Test System

    public void calculateResult(){

    mark=0;

    double temp=0.0;

    java.text.DecimalFormat df = new java.text.DecimalFormat("#0.#");

    for(int i=0; i=PASS)

    testresult.setText(" Well done "+studentname + ", you are passed");

    else testresult.setText(studentname + ", better luck next time ");

    student.setText(" Final score for "+studentname+": "+mark+" out of"+TOTAL+": "+df.format(temp/TOTAL*100)+"%");

    new Resultwindow().setVisible(true);

    }

    }

    /* Resultwindow class */

    class Resultwindow extends JFrame{

    Resultwindow() {

    super( studentname+" results: " +(mark*100/TOTAL >=PASS ? "PASS":"FAIL") );

    Container cont = getContentPane();

    cont.setLayout(new GridLayout(TOTAL/2+3,5,2,5) );

    cont.setBackground(new Color(255,220,255) );

    cont.add(new JLabel(" "+"Marks: "+mark+"/"+TOTAL+": "+"Percentage: "+

    (mark*100/TOTAL)+"%") );

    for(int i=0; i

  • 7/28/2019 Report on Automated Test System

    42/64

    Automated Test System

    }

    }

    /* ItemHandler class */

    class ItemHandler implements ItemListener

    {

    public void itemStateChanged(ItemEvent evt)

    {

    if(start_test)

    {

    for(int i=0; i 1){

    java.awt.Toolkit.getDefaultToolkit().beep();

    if(QuestionSeries.n[quesnum]==1)

    JOptionPane.showMessageDialog(null,""+

    "There is only 1 possible
    answer to question "+(quesnum+1)+

    "","User Information

    Message",JOptionPane.INFORMATION_MESSAGE);

    else

    JOptionPane.showMessageDialog(null,""+

    "There are only 1 possible
    answers to question "+(quesnum+1)+

    "","User Information

    Message",JOptionPane.INFORMATION_MESSAGE);

    }

    itemCheck=0;

    }

    }

    }}

    42 | P a g e

  • 7/28/2019 Report on Automated Test System

    43/64

    Automated Test System

    coding for class that register user:

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*;

    import java.util.ArrayList;

    public class exsched extends JDialog

    {public static String subject;

    JLabel lbtop = new JLabel("SET STUDENTS DETAIL");

    JLabel lbname = new JLabel("NAME");

    JLabel lbfname = new JLabel("FATHERS NAME");

    JLabel lbdoe = new JLabel("DATE OF EXAM");

    JLabel lbsub = new JLabel("SELECT SUBJECT");

    JLabel lbspass = new JLabel("SET PASSWORD");

    JLabel lbpass = new JLabel("CONFIRM PASSWORD");

    JButton btexit = new JButton("Exit");

    JButton btsave = new JButton("Save");

    JTextField txtname=new JTextField(20);

    43 | P a g e

  • 7/28/2019 Report on Automated Test System

    44/64

    Automated Test System

    JTextField txtfname = new JTextField(20);

    JTextField txtdoe = new JTextField(20);

    JComboBox txtsub = new JComboBox();

    JPasswordField txtspass = new JPasswordField(20);

    JPasswordField txtpass = new JPasswordField(20);

    Container c = getContentPane();

    public exsched()

    {

    this.setLayout(null);

    this.setSize(400,350);

    this.setLocation(100,100);

    this.addWindowListener

    (new WindowAdapter()

    {

    public void windowClosing(WindowEvent we)

    {

    System.exit(0);

    }

    }

    );

    lbtop.setBounds(140,40,200,40);

    for(int i=0;i

  • 7/28/2019 Report on Automated Test System

    45/64

    Automated Test System

    btexit.setBounds(200,230,80,20);

    c.add(lbtop);

    c.add(lbname);

    c.add(txtname);

    c.add(lbfname);

    c.add(txtfname);

    c.add(lbdoe);

    c.add(txtdoe);

    c.add(lbsub);

    c.add(txtsub);

    c.add(lbspass);

    c.add(txtspass);

    c.add(lbpass);c.add(txtpass);

    c.add(btsave);

    c.add(btexit);

    btsave.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    if (!perfor())

    System.out.println("Error in Saving");

    txtname.setText("");

    txtfname.setText("");

    txtdoe.setText("");

    txtpass.setText("");

    txtspass.setText("");

    }

    }

    );

    btexit.addActionListener(

    45 | P a g e

  • 7/28/2019 Report on Automated Test System

    46/64

    Automated Test System

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    //System.exit(0);

    setVisible(false);

    }

    }

    );

    setVisible(true);

    }

    public boolean perfor()

    {Connection con = null;

    Statement st = null;

    try

    {

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    con = DriverManager.getConnection("jdbc:odbc:questiondsn");

    }

    catch(Exception e){

    System.out.println("Error connecting : " + e);

    return false;

    }

    try{

    String str="INSERT INTO log_information ( username, [password], fname, doe, subj,

    conducted ) VALUES('" + txtname.getText() + "','" + txtpass.getText() + "','" +

    txtfname.getText() + "','" + txtdoe.getText() + "','" + txtsub.getSelectedItem().toString() +

    "','N')";

    st=con.createStatement();int rowcount= st.executeUpdate(str);

    }

    catch(Exception ex){

    System.out.println("Error checking login : " + ex.getMessage());

    return false;

    }

    46 | P a g e

  • 7/28/2019 Report on Automated Test System

    47/64

    Automated Test System

    finally{

    try {

    st.close();

    } catch (Exception e) {

    }

    try {

    con.close();

    } catch (Exception e) { }

    }

    return true;

    }

    public static void main(String [] args){

    new exsched();

    }

    }

    coding for class that add question :

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*;

    import java.util.ArrayList;

    public class addques extends JDialog

    {

    public static String subject;

    JLabel lbtop = new JLabel("ADD QUESTION");

    47 | P a g e

  • 7/28/2019 Report on Automated Test System

    48/64

    Automated Test System

    JLabel lbadd = new JLabel("question");

    JLabel lboption1 = new JLabel("Option1");

    JLabel lboption2 = new JLabel("Option2");

    JLabel lboption3 = new JLabel("Option3");

    JLabel lboption4 = new JLabel("Option4");

    JLabel lbright = new JLabel("Right");

    JLabel lbsub = new JLabel("Subject");

    JButton btexit = new JButton("Exit");

    JButton btsave = new JButton("Save");

    JTextArea txtques=new JTextArea(4,20);

    JTextField txtoption1 = new JTextField(20);

    JTextField txtoption2 = new JTextField(20);JTextField txtoption3 = new JTextField(20);

    JTextField txtoption4 = new JTextField(20);

    JTextField txtr = new JTextField(20);

    JTextField txts = new JTextField(20);

    Container c = getContentPane();

    public addques()

    {

    this.setLayout(null);

    this.setSize(400,500);

    this.setLocation(100,100);

    this.addWindowListener

    (

    new WindowAdapter()

    {

    public void windowClosing(WindowEvent we)

    {

    System.exit(0);}

    }

    );

    lbtop.setBounds(160,40,100,40);

    48 | P a g e

  • 7/28/2019 Report on Automated Test System

    49/64

    Automated Test System

    lbadd.setBounds(50,100,100,20);

    txtques.setBounds(160,100,200,80);

    lboption1.setBounds(50,200,100,20);

    txtoption1.setBounds(160,200,100,20);

    lboption2.setBounds(50,220,100,20);

    txtoption2.setBounds(160,220,100,20);

    lboption3.setBounds(50,240,100,20);

    txtoption3.setBounds(160,240,100,20);

    lboption4.setBounds(50,260,100,20);

    txtoption4.setBounds(160,260,100,20);

    lbright.setBounds(50,280,100,20);

    txtr.setBounds(160,280,100,20);

    lbsub.setBounds(50,300,100,20);

    txts.setBounds(160,300,100,20);

    btsave.setBounds(50,350,80,20);btexit.setBounds(260,350,80,20);

    c.add(lbtop);

    c.add(lbadd);

    c.add(txtques);

    c.add(lboption1);

    c.add(txtoption1);

    c.add(lboption2);

    c.add(txtoption2);

    c.add(lboption3);

    c.add(txtoption3);

    c.add(lboption4);

    c.add(txtoption4);

    c.add(lbright);

    c.add(txtr);

    c.add(lbsub);

    c.add(txts);

    c.add(btsave);c.add(btexit);

    btsave.addActionListener(

    new ActionListener()

    49 | P a g e

  • 7/28/2019 Report on Automated Test System

    50/64

    Automated Test System

    {

    public void actionPerformed(ActionEvent ae){

    if (!perfor())

    System.out.println("Error in Saving");

    txtoption1.setText("");

    txtoption2.setText("");

    txtoption3.setText("");

    txtoption4.setText("");

    txtr.setText("");

    txts.setText("");

    txtques.setText("");

    }

    });

    btexit.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    //System.exit(0);

    setVisible(false);

    }

    }

    );

    setVisible(true);

    }

    public boolean perfor(){

    Connection con = null;

    Statement st = null;

    try

    {

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    con = DriverManager.getConnection("jdbc:odbc:questiondsn");

    50 | P a g e

  • 7/28/2019 Report on Automated Test System

    51/64

    Automated Test System

    }

    catch(Exception e){

    System.out.println("Error connecting : " + e);

    return false;

    }

    try{

    String str="INSERT INTO QuestionSeries VALUES('" + txtques.getText() + "','" +

    txtoption1.getText() + "','" + txtoption2.getText() + "','" + txtoption3.getText() + "','" +

    txtoption4.getText() + "'," + txtr.getText() + ",'" + txts.getText() + "' )";

    st=con.createStatement();

    int rowcount= st.executeUpdate(str);

    }

    catch(Exception ex){System.out.println("Error checking login : " + ex.getMessage());

    return false;

    }

    finally{

    try {

    st.close();

    } catch (Exception e) {

    }

    try {

    con.close();

    } catch (Exception e) { }

    }

    return true;

    }

    public static void main(String [] args)

    {

    new addques();

    }

    51 | P a g e

  • 7/28/2019 Report on Automated Test System

    52/64

    Automated Test System

    }

    coding for administrator class :

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*;

    import java.util.ArrayList;

    public class administrator extends JDialog

    {public static String subject;

    JLabel lbtop = new JLabel("ADMINISTRATOR");

    JButton btadd= new JButton("ADD QUST");

    JButton btuser = new JButton("REGISTER USER");

    JButton btexit=new JButton("EXIT");

    Container c = getContentPane();

    public administrator()

    {this.setLayout(null);

    this.setSize(500,300);

    this.setLocation(100,100);

    this.addWindowListener

    (

    new WindowAdapter()

    {

    public void windowClosing(WindowEvent we)

    {

    System.exit(0);

    }

    }

    );

    lbtop.setBounds(190,40,100,20);

    52 | P a g e

  • 7/28/2019 Report on Automated Test System

    53/64

    Automated Test System

    btadd.setBounds(50,100,120,20);

    btuser.setBounds(300,100,150,20);

    btexit.setBounds(195,200,100,20);

    c.add(lbtop);

    c.add(btadd);

    c.add(btuser);

    c.add(btexit);

    btadd.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){// check();

    new addques();

    }

    }

    );

    btuser.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    new exsched();

    }

    }

    );

    btexit.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae){

    System.exit(0);}

    }

    );

    setVisible(true);

    }

    53 | P a g e

  • 7/28/2019 Report on Automated Test System

    54/64

    Automated Test System

    /* public void check(){

    Connection con = null;

    try

    {

    // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    // con = DriverManager.getConnection("jdbc:odbc:questiondsn");

    a

    }

    catch(Exception e){

    System.out.println("Error connecting : " + e);

    }

    finally{

    try {

    con.close();

    } catch (Exception e) { }

    }

    }*/

    public static void main(String [] args)

    {

    new administrator();

    }

    }

    PROJECT SCREEN AND ITS IMPLEMENTATION

    54 | P a g e

  • 7/28/2019 Report on Automated Test System

    55/64

    Automated Test System

    Figure 1 Login screen of Automated Test System

    This is the login screen of the system. Here the administrator gives the username and

    password .The default username that has been set is admin and password is admin. This is

    only for security purpose. If the user is admin then he has to check administrator and other

    cases the subject is slected and user(student) filles its username and password

    55 | P a g e

  • 7/28/2019 Report on Automated Test System

    56/64

    Automated Test System

    Figure 2 Home screen of Automated Test system

    This screen is the home screen of the automated test system in case the user is admin.. This

    screen is used to access all the features of the automated test system. The admin can add

    question to the database the user answers and can register new user .

    56 | P a g e

  • 7/28/2019 Report on Automated Test System

    57/64

    Automated Test System

    Figure 3 Add question

    This screen is the admin panel in which the admin can add question to the system .The question

    once added to the system can only be edited in the database. Question added are stored in the

    table in database The admin fills out the various options.

    57 | P a g e

  • 7/28/2019 Report on Automated Test System

    58/64

    Automated Test System

    Figure 4 Adding student details

    This screen is the admin panel in which the admin can add a new user which is students who

    appears for the test. The admin here fills out all the necessary details of the students which are

    necessary to recognize him later.

    The password is set by the admin to secure the system.

    58 | P a g e

  • 7/28/2019 Report on Automated Test System

    59/64

    Automated Test System

    Figure 5 Screen at the start of the test

    The screen is displayed at the starting with all the exam instruction..The time counter begins

    when u hit the "start" key . In this screen a user named Nitin is shown giving exam.

    59 | P a g e

  • 7/28/2019 Report on Automated Test System

    60/64

    Automated Test System

    Figure 6 Screen showing error.

    In case the user selects two option an error message is displayed asking to tick only one option.

    This is one of the constraint that has been applied to the system. This constraint make sure that

    the students doesn't check out all the answer and only one answer is given for each question.

    60 | P a g e

  • 7/28/2019 Report on Automated Test System

    61/64

    Automated Test System

    Figure 7 Screen showing result after completion.

    This window is displayed at the end of the test to show the result. In the following system the

    results are not stored in the database as it is just for practice of the user and to understand his

    lag areas' proper percentage is calculated acc to answers that are answered correctly.

    61 | P a g e

  • 7/28/2019 Report on Automated Test System

    62/64

    Automated Test System

    SCOPE:

    The Automated Test System is having the following scope:

    1. It can be used by the institute itself for conducting objective tests of various subjects.

    2. It is generic software, so it can be used by various other institutes, schools and colleges.

    3. The students nowadays face so many competitive exams which are objective. So they can

    prepare themselves by using this software personally.

    Even if the faculty doesnt want to conduct test online, then he can at least keep question bank

    and modify it by using this software.

    ADVANTAGES:

    Use full for a rural students, where they can improve their knowledge and come across about

    automated examination.

    Improves concentration.

    User friendly.

    User information is maintained.

    Cost effective.

    Data validation is done during data entry itself so that errors are minimized.

    62 | P a g e

  • 7/28/2019 Report on Automated Test System

    63/64

    Automated Test System

    Conclusion

    The Automated test System is developed using Java and Ms Access fully meets the objectives

    of the system for which it has been developed. The system has reached a steady state where all

    bugs have been eliminated. The system is operated at a high level of efficiency and all the

    teachers and user associated with the system understands its advantage. The system solves the

    problem. It was intended to solve as requirement specification.

    BIBLOGRAPHY

    63 | P a g e

  • 7/28/2019 Report on Automated Test System

    64/64

    Automated Test System

    WEBSITES

    http://en.wikipedia.org

    http://www.java-examples.com/

    http://www.java2s.com/

    http://www.javaworld.com/javaworld/jw-01-1998/jw-01-bookreview.html

    Books

    Java: The Complete Reference, by Herbert Scheldt.

    Programming with Java, by E Balaguruswamy.

    Head First Java 2nd Edition

    http://en.wikipedia.org/wiki/Diesel_enginehttp://www.java-examples.com/http://www.java2s.com/http://www.javaworld.com/javaworld/jw-01-1998/jw-01-bookreview.htmlhttp://en.wikipedia.org/wiki/Diesel_enginehttp://www.java-examples.com/http://www.java2s.com/http://www.javaworld.com/javaworld/jw-01-1998/jw-01-bookreview.html