Upload
praveen-porwal
View
217
Download
0
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_bugs7/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_development7/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_test7/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.