MAT Report

Embed Size (px)

Citation preview

  • 7/31/2019 MAT Report

    1/33

    MAT SOFTWARE

    1

    INDEX

    S.NO. TOPIC PAGE NO.

    2.

    ABOUT THE PROJECT 2

    3. INTRODUCTION TO THE

    PROGRAMMING

    ENVIRONMENT

    3-8

    4 Back end tool: Oracle 10g express

    edition

    9-10

    5 SQL (STRUCTURED QUERY

    LANGUAGE)

    10

    6. Java Database Connectivity

    (JDBC)

    11

    7. OBJECTIVE OF THE PROJECT 12

    8. DESCRIPTION OF PROJECT 13-24

    9.E-R DIAGRAM

    25

    11. Testing 25-30

    12.

    RESULTS30

    13. CONCLUSION 31

    14.

    FUTURE SCOPE OF THE PROJECT:32

    15. REFERENCES 33

  • 7/31/2019 MAT Report

    2/33

    MAT SOFTWARE

    2

    ABOUT THE PROJECT

    The project named MAT, a company information system is a window based application

    created in Java. The project has been developed on the basis ofMaterial Allocation being

    presently used in Companies for storing and retrieving the information of goudown, factory

    and showroom. The System maintains a large database of goods wherein all the information

    of goods including the goods present in goudown sold goods and type of goods. The software

    retrieves this data and displays as per the user requirement.

    OBJECTIVE:

    The MAT was developed as an attempt to take a record of good manufactured, sold or

    present in showroom and goudown. The System provides the facility of viewing the raw

    present in goudown or the price of raw etc. The GUI used for the project provide instructionand the various actions performed on button clicks or on selection of items, guide the user

    through a series of pages as in the Project.

    TOOLS USED:

    The tools used for the development purpose are:

    1. Java Development Kit1.6.0- Several distinct features of Java are used which enhance

    usability of the project.

    2. Oracle 10g Express Edition as the Database

    3. Net Beans 7.0 as a GUI for java language.

  • 7/31/2019 MAT Report

    3/33

    MAT SOFTWARE

    3

    INTRODUCTION TO THE PROGRAMMING

    ENVIRONMENT

    The project is developed using Java and SQL. Java is a programming language originally

    developed by Sun Microsystems and released in 1995. James Gosling, Patrick Naughton,

    Chris Warth, Ed Frank and Mike Sheridan developed Java at Sun Microsystems, Inc. in 1991.This Language was initially called Oak but was renamed Java in 1995. The language

    derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. From C, Java derives its syntax. Many of Javas object oriented features were

    influenced by C++. The major feature of Java is that it is platform independent. Java

    applications are typically compiled to byte code that can run on any Java virtual machine

    (JVM) regardless of computer architecture.

    Java Features:

    1. Platform Independent:The Write-Once-Run-Anywhere ideal has not been achieved(tuning for different platforms usually required), but closer than with other languages.

    2. Object Oriented: Java is pure object oriented throughout i.e. there is no codingoutside of class definitions, including main(). There is an extensive class library available in

    the core language packages.

    3. Compiler/Interpreter Combo:Code is compiled to byte codes that are interpretedby a Java virtual machines (JVM). This provides portability to any machine for which a

    virtual machine has been written. The two steps of compilation and interpretation allow for

    extensive code checking and improved security.

    4. Robust: Exception handling built-in, strong type checking (that is, all data must bedeclared an explicit type), local variables must be initialized.

    5. Several Dangerous Features of C and C++ Eliminated: No memory pointersare used. No preprocessors defined. Array index limit checking.

    6. Security: No memory pointers.

    Programs run inside the virtual machine sandbox.

    Array index limit checking

  • 7/31/2019 MAT Report

    4/33

    MAT SOFTWARE

    4

    7. Dynamic Binding:The linking of data and methods to where they are located is doneat run-time. New classes can be loaded while a program is running. Linking is done on the

    fly. Even if libraries are recompiled, there is no need to recompile code that uses classes in

    those libraries. This differs from C++, which uses static binding. This can result in fragile

    classes for cases where linked code is changed and memory pointers then point to the wrong

    addresses.

    8. Good Performance: Interpretation of byte codes slowed performance in earlyversions, but advanced virtual machines with adaptive and just-in-time compilation and other

    techniques now typically provide performance up to 50% to 100% the speed of C++

    programs.

    9. Threading:Lightweight processes, called threads, can easily be spun off to performmultiprocessing. We can take advantage of multiprocessors where available. Great for

    multimedia displays.

    10. Built-in Networking:Java was designed with networking in mind and comes with

    many classes to develop sophisticated Internet communications. Features such as eliminating

    memory pointers and by checking array limits greatly help to remove program bugs. These

    and the other features can lead to a big speedup in program development compared to C/C++

    programming.

    Java Platform:

    A platform is the hardware or software environment in which a program runs. Most platforms

    can be described as a combination of the operating system and hardware. The Java platform

    differs from most other platforms in that it's a software-only platform that runs on top of

    other hardware-based platforms.

    The Java platform has two components:

    The Java Virtual Machine (Java VM)

    The Java Application Programming Interface (Java API)

    Java Virtual Machine is standardized hypothetical computer, which is emulated inside ourcomputer by a program. It is base of Java platform and is ported onto various hardware-based

    platforms.

    The Java API is a large collection of ready-made software components that provide many

    useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped

    into libraries of related classes and interfaces; these libraries are known as packages.

    Java Environment:Java environment includes large number of development tools and hundreds of classes and

    methods. The development tools are part of the system known as Java Development Kit

    (JDK) and the classes and methods are part of the Java Standard Library (JSL), also known as

    the Application Programming Interface (API). Some of the basic concepts of Core Java are:

    main() method* in Java, the main() method and the class in which it is defined should be declared public

    because the Java runtime environment has to access the main() method to execute a program.

    * The main () method should be declared static because it has to exist before any object of theclass is created.

  • 7/31/2019 MAT Report

    5/33

    MAT SOFTWARE

    5

    * The command line parameter is a String type variable main (String args[]). The number

    of arguments is determined by the String class object.

    Access specifiers used by java are public, private and protected.

    Variables, methods and blocks can be declared as static. The concept behind static is that

    only one copy of it exists. There is no concept of static classes.

    Execution of program* Save the file with file_name.java

    * Go on command prompt.

    *javac file_name.java.

    *java filename

    Interfaces* Are set of abstract methods.

    * They are used to provide the concept of multiple inheritance.* They are used for implementing inheritance relationship between non related classes.

    * Keyword used for inheriting interfaces is implements.

    * Hybrid inheritance is possible through interfaces.

    * A class can extend only single class but can implement many interfaces.

    Syntax: class class_name implements interface_name

    Packages* Java uses packages to organize related classes.

    * Different packages can have classes with same name.

    * They have hierarchical structure.* Java uses import statement to use packages in a program.

    Syntax: import.*;

    import.;

    Inbuilt packages*java.awtAbstract Window Toolkit. Contain all graphics related classes.

    *javax.swing - Extension of awt. (javax is java extended). Provides component classes like

    JLabel, JTextField, JButton and JComboBox.

    * java.awt.event Sub-package of awt. Used for event handling(like action on button-

    clicking).*java.sqlContains database handling related classes.

    *java.utilContains all the collection related classes.

    *java.langIt is by default imported in each and every class.

  • 7/31/2019 MAT Report

    6/33

    MAT SOFTWARE

    6

    Exception handlingAn exception is an abnormal condition that arises in a code sequence at run time. In other

    words, an exception is a run-time error. In computer languages that do not support exception

    handling, errors must be checked and handled manuallytypically through the use of error

    codes, and so on. This approach is as cumbersome as it is troublesome. Javas exception

    handling avoids these problems and, in the process, brings run-time error management into

    the object-oriented world. Java has Exception class which is root class to all the exceptionclasses.

    Some of the exceptions are:

    * ArithmeticException

    * ArrayIndexOutOfBoundException

    * NullPointerException When the object contains null reference and even then we are

    calling some member using it.

    Exception handling techniques* try-catch blocktry block contains suspected statements that can generate exceptions.

    * throw - if we know there can be an exception, we can throw it.

    Syntax: throw new ArithmeticException();

    * throws this can be used only with methods. This is applied when user do not want to

    handle checked exceptions( exceptions which if not handled will give compilation errors)

    Syntax: public static void main(String args[]) throws exception

    * user defined exceptions - They are created by extending the Exception class. The throw

    and throws keywords are used while implementing user-defined exceptions.

    Multi-threading

    * The java.lang.Thread class is used to construct and access the individual threads in amultithreaded application.

    * A process having more than one thread is said to be multithreaded. The

    multiple threads in the process run at the same time, perform different tasks, and interact with

    each other.

    * 2 ways to create threads:

    # by extending the Thread class:-Syntax: public class extends Thread

    # by Runnable Interface:- The Runnable interface consists of a single method run(), which is

    executed when the thread is activated.

    Java awt class hierarchy:The Java AWT (Abstract Windowing Toolkit) contains the fundamental classes used for

    constructing GUIs. The abstract Component class is the base class for the AWT. Many other

    AWT classes are derived from it. Button, Canvas, and Container are some AWT classes

    derived from Component. The JComponent class is derived from Container and is one of the

    base classes of Swing. The JFrame class is derived from the AWT Frame class. It is usually

    the main container for a GUI application. The JApplet class (derived from the AWT Applet

    class) is sometimes used for Web programming, but the Applet class is more frequently used.

  • 7/31/2019 MAT Report

    7/33

    MAT SOFTWARE

    7

    Java swings class hierarchy:Swing is a set of classes that provides more powerful and flexible components than are

    possible with the AWT. In addition to the familiar components, such as buttons, check boxes,

    and labels, Swing supplies several exciting additions, including tabbed panes, scroll panes,

    trees, and tables. Even familiar components such as buttons have more capabilities in

    Swing.For example, a button may have both an image and a text string associated with it.

    Unlike AWT components, Swing components are not implemented by platform-specificcode. Instead, they are written entirely in Java and, therefore, are platform independent.

    javax.swing. Some of the classes used are JApplet, JLabel, JButton, JScrollPane, JTextArea,

    JTextField, JMenuBar, JMenu, JFrame. JApplet and JFrame provides a method

    getContentPane() which returns a reference to their associated content pane. So to get a

    reference to the JApplets container where user will add their GUI objects.

    A brief description of the components of swing class is as follows:

    JPanel is Swing's version of the AWT class Panel and uses the same default layout,

    FlowLayout. JPanel is descended directly from JComponent.

    JFrame is Swing's version of Frame and is descended directly from that class. The

    components added to the frame are referred to as its contents; these are managed by the

    contentPane. To add a component to a JFrame, we must use its contentPane instead.

    JDialog contains a rootPane hierarchy including a contentPane, and it allows layered and

    glass panes. All dialogs are modal, which means the current thread is blocked until user

    interaction with it has been completed. JDialog class is intended as the basis for creating

    custom dialogs; however, some of the most common dialogs are provided through static

    methods in the class JOptionPane.

    JLabel, descended from JComponent, is used to create text labels.

    JTextField allows editing of a single line of text. New features include the ability to justify

    the text left, right, or center, and to set the text's font.

    JPasswordField (a direct subclass of JTextField) you can suppress the display of input. Each

    character entered can be replaced by an echo character. This allows confidential input for

    passwords, for example. By default, the echo character is the asterisk, *.

    JTextArea allows editing of multiple lines of text. JTextArea can be used in conjunction

    with class JScrollPane to achieve scrolling. The underlying JScrollPane can be forced toalways or never have either the vertical or horizontal scrollbar;

    JButton is a component the user clicks to trigger a specific action.

    JRadioButton is similar to JCheckbox, except for the default icon for each class. A set of

    radio buttons can be associated as a group in which only one button at a time can be selected.

    JCheckBox is not a member of a checkbox group. A checkbox can be selected and

    deselected, and it also displays its current state.

  • 7/31/2019 MAT Report

    8/33

    MAT SOFTWARE

    8

    JComboBox is like a drop down box. You can click a drop-down arrow and select an option

    from a list. For example, when the component has focus, pressing a key that corresponds to

    the first character in some entry's name selects that entry. A vertical scrollbar is used for

    longer lists.

    JList provides a scrollable set of items from which one or more may be selected.

    FlowLayout when used arranges swing components from left to right until there's no more

    space available. Then it begins a new row below it and moves from left to right again. Each

    component in a FlowLayout gets as much space as it needs and no more.

    BorderLayout places swing components in the North, South, East, West and center of a

    container. You can add horizontal and vertical gaps between the areas.

    GridLayout is a layout manager that lays out a container's components in a rectangular grid.

    The container is divided into equal-sized rectangles, and one component is placed in each

    rectangle.

  • 7/31/2019 MAT Report

    9/33

    MAT SOFTWARE

    9

    Back end tool: Oracle 10g express edition:TheOracle Database(commonly referred to as Oracle RDBMS or simply as Oracle) is

    an object-relational database management system (ORDBMS) produced and marketed by

    Oracle Corporation. The Oracle DBMS can store and execute stored procedures and

    functions within itself. PL/SQL (Oracle Corporation's proprietary procedural extension to

    SQL), or the object-oriented language Java can invoke such code objects and/or provide theprogramming structures for writing them.

    In oracle 10g g stands for grid computing which includes DBMS and application server.

    10g is said to have 149 new features like shared memory and automatic shared memory

    management. It is open source. In version 10g, grid computing introduced shared resources

    where an instance can use CPU resources from another node (computer) in the grid.

    The Oracle RDBMS stores data logically in the form of tablespaces and physically in the

    form of data files ("datafiles").Tablespaces can contain various types of memory segments,

    such as Data Segments, Index Segments, etc. Segments in turn comprise one or more extents.

    Extents comprise groups of contiguous data blocks. Data blocks form the basic units of datastorage.

    There is also a partitioning feature available on newer versions of the database, which allows

    tables to be partitioned based on different set of keys. Specific partitions can then be easily

    added or dropped to help manage large data sets.

    Oracle database management tracks its computer data storage with the help of information

    stored in the SYSTEM tablespace. The SYSTEM tablespace contains the data dictionary

    and often indexes and clusters. A data dictionary consists of a special collection of tables that

    contains information about all user-objects in the database. Since version 8i, the Oracle

    RDBMS also supports "locally managed" tablespaces which can store space managementinformation in bitmaps in their own headers rather than in the SYSTEM tablespace (as

    happens with the default "dictionary-managed" tablespaces). Version 10g and later

    introduced the SYSAUX tablespace which contains some of the tables formerly in the

    SYSTEM tablespace.

    Oracle Database Express Edition 10g (Oracle Database XE) is an entry-level, small-footprint

    database based on the Oracle Database 10g code base. It's free to develop, deploy, and

    distribute; fast to download; and simple to administer.

    Oracle Database XE is a great starter database for:

    Developers working on PHP, Java, .NET, XML, and Open Source applications DBAs who need a free, starter database for training and deployment Independent Software Vendors (ISVs) and hardware vendors who want a starter

    database to distribute free of charge

    Educational institutions and students who need a free database for their curriculumWith Oracle Database XE, you can now develop and deploy applications with a powerful,

    proven, industry-leading infrastructure, and then upgrade when necessary without costly andcomplex migrations.

  • 7/31/2019 MAT Report

    10/33

    MAT SOFTWARE

    10

    Oracle Database XE can be installed on any size host machine with any number of CPUs

    (one database per machine), but XE will store up to 11GB of user data, use up to 1GB of

    memory, and use one CPU on the host machine.

    Oracle Database XE provides an organized mechanism for storing, managing, and retrieving

    information. Tables are the basic storage structure for holding business data. In this module,

    you learn how to create tables and work with them.

    You may want to modify data entered in tables. You may also want to maintain integrity with

    the data. Sometimes, you may want to remove tables that are no longer useful.

    SQL (STRUCTURED QUERY LANGUAGE):SQL (Structured Query Language, is a database computer language designed for the

    retrieval and management of data in relational database management systems (RDBMS),

    database schema creation and modification, and database object access control management.The SQL language is sub-divided into several language elements, including:

    Statements which may have a persistent effect on schemas and data, or which may control

    transactions, program flow, connections, sessions, or diagnostics.

    Queries which retrieve data based on specific criteria.

    Expressions which can produce either scalar values or tables consisting of columns and

    rows of data.

    Predicates which specify conditions that can be evaluated to SQL three-valued logic (3VL)Boolean truth values and which are used to limit the effects of statements and queries, or to

    change program flow.

    Clauses, which are in some cases optional, constituent components of statements and

    queries.

    Whitespace is generally ignored in SQL statements and queries, making it easier to format

    SQL code for readability.

    SQL statements also include the semicolon (";") statement terminator. Though not required

    on every platform, it is defined as a standard part of the SQL grammar.

  • 7/31/2019 MAT Report

    11/33

    MAT SOFTWARE

    11

    Java Database Connectivity (JDBC)

    Java Database Connectivity, commonly referred to as JDBC, is an API forthe Java programming language that defines how a client may access a database. It

    provides methods for querying and updating data in a database. JDBC is oriented

    towards relational databases. A JDBC-to-ODBC bridge enables connections to any

    ODBC-accessible data source in the JVM host environment. JDBC allows multipleimplementations to exist and be used by the same application. The API provides a

    mechanism for dynamically loading the correct Java packages and registering them

    with the JDBC Driver Manager. The Driver Manager is used as a connection factory for

    creating JDBC connections. JDBC connections support creating and executing

    statements. These may be update statements such as SQL's CREATE, INSERT,

    UPDATE and DELETE, or they may be query statements such as SELECT.

    Additionally, stored procedures may be invoked through a JDBC connection. JDBC

    represents statements using one of the following classes:

    StatementThe statement is sent to the database server each and every time.Prepared StatementThe statement is cached and then the execution path is pre-determined on the database server allowing it to be executed multiple times in an

    efficient manner.

    Callable StatementUsed for executing stored procedures on the database

  • 7/31/2019 MAT Report

    12/33

    MAT SOFTWARE

    12

    OBJECTIVE OF THE PROJECT :The MAT was developed as an attempt to take a record of goods manufactured,sold or

    present in showroom and godown. The System provides the facility of viewing the raw

    present in godown or the price of raw etc. The GUI used for the project provide instruction

    and the various actions performed on button clicks or on selection of items, guide the user

    through a series of pages as in the Project.

  • 7/31/2019 MAT Report

    13/33

    MAT SOFTWARE

    13

    DESCRIPTION OF PROJECTThis section consists of the snapshots of the project GUIs along with their description.

    1. This is the loading window of this project. It takes several seconds to load the projectproperly.

    There is a progress bar in it which describes the percentage of the loaded project.

  • 7/31/2019 MAT Report

    14/33

    MAT SOFTWARE

    14

    2. After loading this window will be opened when we run this project very first time. It is to

    create new users who will be able to login and use this project.

  • 7/31/2019 MAT Report

    15/33

    MAT SOFTWARE

    15

    3. After creating user this login window will be opened. From here a user will login into its

    account.

  • 7/31/2019 MAT Report

    16/33

    MAT SOFTWARE

    16

    4. After logging in this main window will be opened. There is a menu bar in this window. In

    this menu bar three menus are available for user- Master, Transactions and reports. In Master

    menu four menu items are there-unit, car group, add user and item. In Transactions menu

    three menu items are there- purchase, sale, production/stock Transfer. In reports menu three

    menu items are there-purchase register, sale register and stock register.

  • 7/31/2019 MAT Report

    17/33

    MAT SOFTWARE

    17

    5. On clicking unit menu item of master menu this window will be opened. User can add new

    unit like Kilogram in our database.

  • 7/31/2019 MAT Report

    18/33

    MAT SOFTWARE

    18

    6. On clicking car group menu item of master menu this window will be opened. User can

    add new group of items in our database.

  • 7/31/2019 MAT Report

    19/33

    MAT SOFTWARE

    19

    7.After clicking on item menu item of master menu this window will be opened. Here user

    can save re-order level, price and opening stock of any item. For example if user want to save

    all these three parameters for tata nano car, he can do this easily by just clicking on save

    button.

  • 7/31/2019 MAT Report

    20/33

    MAT SOFTWARE

    20

    8. After clicking on purchase menu item of transactions menu, this window will be opened.

    Here user fill all entries about the purchasing raw materials from a party for car inventory.

  • 7/31/2019 MAT Report

    21/33

    MAT SOFTWARE

    21

    9.After clicking on production/stock register menu item of transactions menu this window

    will be opened. Here user can enter data about total item which has been produced in the

    factory.

  • 7/31/2019 MAT Report

    22/33

    MAT SOFTWARE

    22

    10. After clicking on stock register menu item of reports menu this window will be opened.

    Here user can see the stock of all items. He can see purchase quantity, sale quantity and

    closing stock any time from here.

  • 7/31/2019 MAT Report

    23/33

    MAT SOFTWARE

    23

    11. This is purchase register. From here user can see the item which has been purchased and

    also from which party and total amount of purchased item.

  • 7/31/2019 MAT Report

    24/33

    MAT SOFTWARE

    24

    12. This is sale register. Here user can see which item is sold to which party and how many

    amount of it has been sold.

  • 7/31/2019 MAT Report

    25/33

    MAT SOFTWARE

    25

    E-R DIAGRAM:

    Testing:

    Introduction:

    Software testing is an investigation conducted to provide stakeholders withinformation about the quality of the product or service under test. Software testing also

    provides an objective, independent view of the software to allow the business to appreciate

    and understand the risks at implementation of the software. Test techniques include, but are

    not limited to, the process of executing a program or application with the intent of finding

    software bugs.

    Software testing can also be stated as the process of validating and verifying that a software

    program/application/product:

    meets the business and technical requirements that guided its design and development;

    works as expected; and

    can be implemented with the same characteristics.

    http://en.wikipedia.org/wiki/Software_bugshttp://en.wikipedia.org/wiki/Software_bugs
  • 7/31/2019 MAT Report

    26/33

    MAT SOFTWARE

    26

    Software testing, depending on the testing method employed, can be implemented at any time

    in the development process. However, most of the test effort occurs after the requirements

    have been defined and the coding process has been completed. As such, the methodology of

    the test is governed by the software development methodology adopted.

    Different software development models will focus the test effort at different points in the

    development process. Newer development models, such as Agile, often employ test driven

    development and place an increased portion of the testing in the hands of the developer,before it reaches a formal team of testers. In a more traditional model, most of the test

    execution occurs after the requirements have been defined and the coding process has been

    completed.

    15.2 Types of Testing:

    a) White box testing

    White box testing is when the tester has access to the internal data structures and algorithms

    including the code that implement these.

    Types of white box testing

    The following types of white box testing exist:

    API testing (application programming interface) - testing of the application using public

    and private APIs

    Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test

    designer can create tests to cause all statements in the program to be executed at least

    once)

    Fault injection methods - improving the coverage of a test by introducing faults to test

    code paths

    Mutation testing methods

    Static testing - White box testing includes all static testing

    Test coverage

    White box testing methods can also be used to evaluate the completeness of a test suite

    that was created with black box testing methods. This allows the software team to

    examine parts of a system that are rarely tested and ensures that the most important

    function points have been tested.

    Two common forms of code coverage are:

    Function coverage, which reports on functions executed

    Statement coverage, which reports on the number of lines executed to complete the test

    They both return a code coverage metric, measured as a percentage.

    b) Black box testing

    Black box testing treats the software as a "black box"without any knowledge ofinternal implementation. Black box testing methods include: equivalence partitioning,

    http://en.wikipedia.org/wiki/Agile_software_developmenthttp://en.wikipedia.org/wiki/Test_driven_developmenthttp://en.wikipedia.org/wiki/Test_driven_developmenthttp://en.wikipedia.org/wiki/Application_programming_interfacehttp://en.wikipedia.org/wiki/Code_coveragehttp://en.wikipedia.org/wiki/Fault_injectionhttp://en.wikipedia.org/wiki/Mutation_testinghttp://en.wikipedia.org/wiki/Static_testinghttp://en.wikipedia.org/wiki/Function_pointshttp://en.wikipedia.org/wiki/Function_pointshttp://en.wikipedia.org/wiki/Static_testinghttp://en.wikipedia.org/wiki/Mutation_testinghttp://en.wikipedia.org/wiki/Fault_injectionhttp://en.wikipedia.org/wiki/Code_coveragehttp://en.wikipedia.org/wiki/Application_programming_interfacehttp://en.wikipedia.org/wiki/Test_driven_developmenthttp://en.wikipedia.org/wiki/Test_driven_developmenthttp://en.wikipedia.org/wiki/Agile_software_development
  • 7/31/2019 MAT Report

    27/33

    MAT SOFTWARE

    27

    boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability

    matrix, exploratory testing and specification-based testing.

    Specification-based testing: Specification-based testing aims to test the functionality of

    software according to the applicable requirements. Thus, the tester inputs data into, and

    only sees the output from, the test object. This level of testing usually requires thorough

    test cases to be provided to the tester, who then can simply verify that for a given input,

    the output value (or behavior), either "is" or "is not" the same as the expected valuespecified in the test case.

    Specification-based testing is necessary, but it is insufficient to guard against certain

    risks.

    Advantages and disadvantages: The black box tester has no "bonds" withthe code, and a tester's perception is very simple: a code must have bugs. Using the

    principle, "Ask and you shall receive," black box testers find bugs where programmers

    do not. But, on the other hand, black box testing has been said to be "like a walk in a

    dark labyrinth without a flashlight," because the tester doesn't know how the software

    being tested was actually constructed. As a result, there are situations when (1) a tester

    writes many test cases to check something that could have been tested by only one test

    case, and/or (2) some parts of the back-end are not tested at all.Therefore, black box testing has the advantage of "an unaffiliated opinion," on the one

    hand, and the disadvantage of "blind exploring," on the other.

    c) Grey box testing

    Grey box testing (American spelling: gray box testing) involves having knowledge of

    internal data structures and algorithms for purposes of designing the test cases, but

    testing at the user, or black-box level. Manipulating input data and formatting output do

    not qualify as grey box, because the input and output are clearly outside of the "black-

    box" that we are calling the system under test. This distinction is particularly important

    when conducting integration testing between two modules of code written by twodifferent developers, where only the interfaces are exposed for test. However,

    modifying a data repository does qualify as grey box, as the user would not normally be

    able to change the data outside of the system under test. Grey box testing may also

    include reverse engineering to determine, for instance, boundary values or error

    messages.

    d)Unit testing

    Unit testing refers to tests that verify the functionality of a specific section of code,

    usually at the function level. In an object-oriented environment, this is usually at the

    class level, and the minimal unit tests include the constructors and destructors.These type of tests are usually written by developers as they work on code (white-box

    style), to ensure that the specific function is working as expected. One function might

    have multiple tests, to catch corner cases or other branches in the code. Unit testing

    alone cannot verify the functionality of a piece of software, but rather is used to assure

    that the building blocks the software uses work independently of each other.

    Unit testing is also called component testing.

    e) Integration testing

    Integration testing is any type of software testing that seeks to verify the interfaces

    between components against a software design. Software components may beintegrated in an iterative way or all together ("big bang"). Normally the former is

  • 7/31/2019 MAT Report

    28/33

    MAT SOFTWARE

    28

    considered a better practice since it allows interface issues to be localised more quickly

    and fixed.

    Integration testing works to expose defects in the interfaces and interaction between

    integrated components (modules). Progressively larger groups of tested software

    components corresponding to elements of the architectural design are integrated and

    tested until the software works as a system.

    f) System testing

    System testing tests a completely integrated system to verify that it meets its

    requirements.

    g) System integration testing

    System integration testing verifies that a system is integrated to any external or third

    party systems defined in the system requirements.

    h) Regression testing

    Regression testing focuses on finding defects after a major code change has occurred.

    Specifically, it seeks to uncover software regressions, or old bugs that have come back.

    Such regressions occur whenever software functionality that was previously working

    correctly stops working as intended. Typically, regressions occur as an unintended

    consequence of program changes, when the newly developed part of the software

    collides with the previously existing code. Common methods of regression testing

    include re-running previously run tests and checking whether previously fixed faults

    have re-emerged. The depth of testing depends on the phase in the release process andthe risk of the added features. They can either be complete, for changes added late in

    the release or deemed to be risky, to very shallow, consisting of positive tests on each

    feature, if the changes are early in the release or deemed to be of low risk.

    i) Acceptance testing

    Acceptance testing can mean one of two things:

    A smoke test is used as an acceptance test prior to introducing a new build to the main

    testing process, i.e. before integration or regression.

    Acceptance testing performed by the customer, often in their lab environment on their

    own hardware, is known as user acceptance testing (UAT). Acceptance testing may be

    performed as part of the hand-off process between any two phases of development.

    j) Alpha testing

    Alpha testing is simulated or actual operational testing by potential users/customers or

    an independent test team at the developers' site. Alpha testing is often employed for off-

    the-shelf software as a form of internal acceptance testing, before the software goes to

    beta testing. van Veenendaal, Erik. "Standard glossary of terms used in SoftwareTesting". Retrieved 17 June 2010.

    http://en.wikipedia.org/wiki/Smoke_testhttp://en.wikipedia.org/wiki/Integration_testinghttp://en.wikipedia.org/wiki/Regression_testinghttp://en.wikipedia.org/wiki/Acceptance_testing#User_acceptance_testinghttp://en.wikipedia.org/wiki/Acceptance_testing#User_acceptance_testinghttp://en.wikipedia.org/wiki/Regression_testinghttp://en.wikipedia.org/wiki/Integration_testinghttp://en.wikipedia.org/wiki/Smoke_test
  • 7/31/2019 MAT Report

    29/33

    MAT SOFTWARE

    29

    k) Beta testing

    Beta testing comes after alpha testing. Versions of the software, known as betaversions, are released to a limited audience outside of the programming team. The

    software is released to groups of people so that further testing can ensure the product

    has few faults or bugs. Sometimes, beta versions are made available to the open public

    to increase the feedback field to a maximal number of future users.

    l) Non-functional testing

    Special methods exist to test non-functional aspects of software. In contrast to

    functional testing, which establishes the correct operation of the software (correct in

    that it matches the expected behavior defined in the design requirements), non-

    functional testing verifies that the software functions properly even when it receives

    invalid or unexpected inputs. Software fault injection, in the form of fussing, is an

    example of non-functional testing. Non-functional testing, especially for software, is

    designed to establish whether the device under test can tolerate invalid or unexpectedinputs, thereby establishing the robustness of input validation routines as well as error-

    handling routines. Various commercial non-functional testing tools are linked from the

    software fault injection page; there are also numerous open-source and free software

    tools available that perform non-functional testing.

    m) Software performance testing and load testing

    Performance testing is executed to determine how fast a system or sub-system performs

    under a particular workload. It can also serve to validate and verify other quality

    attributes of the system, such as scalability, reliability and resource usage. Load testing

    is primarily concerned with testing that can continue to operate under a specific load,whether that be large quantities of data or a large number of users. This is generally

    referred to as software scalability. The related load testing activity of when performed

    as a non-functional activity is often referred to as endurance testing.

    Volume testing is a way to test functionality. Stress testing is a way to test reliability.

    Load testing is a way to test performance. There is little agreement on what the specific

    goals of load testing are. The terms load testing, performance testing, reliability testing,

    and volume testing, are often used interchangeably.

    n) Stability testingStability testing checks to see if the software can continuously function well in or above

    an acceptable period. This activity of non-functional software testing is often referred to

    as load (or endurance) testing.

    o) Usability testing

    Usability testing is needed to check if the user interface is easy to use and understand.

  • 7/31/2019 MAT Report

    30/33

    MAT SOFTWARE

    30

    p) Security testing

    Security testing is essential for software that processes confidential data to preventsystem intrusion by hackers.

    q) Internationalization and localization

    Internationalization and localization is needed to test these aspects of software, for

    which a pseudo localization method can be used. It will verify that the application still

    works, even after it has been translated into a new language or adapted for a new

    culture (such as different currencies or time zones).

    r) Destructive testing

    Destructive testing attempts to cause the software or a sub-system to fail, in order to

    test its robustness

    RESULTS

    The system has been developed for the given condition and is found working effectively. The

    developed system is flexible and changes could be done whenever required.

    Using the facilities and functionalities of Java, the software has been developed in a neat and

    simple manner, thereby reducing the operators work. The speed and accuracy are maintainedin proper way. The user friendly nature of this software developed in Java is very easy to

    work with both for the higher management as well as other employees with little knowledge

    of computer. The results obtained were fully satisfactory from the user point of view. The

    system was verified with valid as well as invalid data in each manner.

  • 7/31/2019 MAT Report

    31/33

    MAT SOFTWARE

    31

    CONCLUSION

    Car InventorySystem has been used in the inventory related to cars. Although the project is

    just a small part of the whole system, but an effort has been made to improve upon the

    existing GUI (Graphical User Interface) and to make it more attractive and user friendly and

    has been appreciated by the users who tested it. The Project is user friendly in the sense that

    there are buttons for navigation to each page and it has benefitted the developer in the sense

    that various concepts of Advance Java could be implemented as well as newer concepts of

    Oracle 10g Database and Netbeans could be learnt while working on the project.

  • 7/31/2019 MAT Report

    32/33

    MAT SOFTWARE

    32

    FUTURE SCOPE OF THE PROJECT:

    The project is easily extensible and can be improved by further incremental releasesof

    the same. It can be extended for other vehicles. Can be extended as internet application. Real-time inventory control systems may use wireless, mobile terminals to record

    inventory transactions at the moment they occur. A wireless LAN transmits the

    transaction information to a central database.

  • 7/31/2019 MAT Report

    33/33

    MAT SOFTWARE

    REFERENCES:

    URL: www.java .sun.com www.java2s.comSQL introduction- Wikipedia, the free encyclopedia www.stackoverflow.com

    PDF: The Complete Reference Java2 by Herbert Schildt Class Notes RDBMS by Korth.