Fraud Detection in Online Product Review Systems Via Heterogeneous Graph Transformer
Fraud Detection in Online Product Review Systems Via Heterogeneous Graph Transformer
1. INTRODUCTION
INTRODUCTION
Internet services have brought human beings with ecommerce, social networking,
and entertainment platforms, which not only facilitate information exchange but also
provide chances to fraudsters. Fraudsters disguise themselves as ordinary users to publish
spam information or collect user privacy, compromising the interest of both platforms
and users. In addition, multiple entities on the Internet are connected with multiple
relationships. Traditional machine learning algorithms cannot handle this complicated
heterogeneous graph data well. The current approach is to model the data as a
heterogeneous information network so that similarities in characteristics and structure of
fraudsters can be discovered. Due to the effectiveness in learning the graph
representation, graph neural networks (GNNs) have already been introduced into fraud
detection areas including product review, mobile application distribution, cyber crime
identification and financial services . However, most existing GNN based solutions just
directly apply homogeneous GNNs, ignoring the underlying heterogeneous graph nature
and camouflage node behaviors. This problem has drawn great attention with many
solutions proposed . GraphConsis found that there are three inconsistency problems in
fraud detection and CAREGNN further proposed two camouflage behaviors. These
problems could be summarized as follows:
Camouflage: Previous work showed that crowd workers could adjust their behavior to
alleviate their suspicion via connecting to benign entities like connecting to highly
reputable users, disguise fraudulent URLs with special characters or generate domain-
independent fake reviews via generative language model to conceal their suspicious
activities.
Inconsistency: Two users with distinct interests could be connected via reviewing a
common product such as food or movies. Direct aggregation makes GNNs hardly
distinguish the unique semantic user pattern. Also, if a user is suspicious, then the other
one should be more likely to be distrustful if they are connected by commonactivity
relation since fraudulent users tend to post many fraudulent reviews in the same short
period.
2. LITERATURE SURVEY
1. X. Wang, H. Ji, C. Shi, B. Wang, Y. Ye, P. Cui, and P. S. Yu, “Heterogeneous
graph attention network,” in WWW, 2019, pp. 2022–2032.
Graph neural network, as a powerful graph representation technique based on
deep learning, has shown superior performance and attracted considerable research
interest. However, it has not been fully considered in graph neural network for
heterogeneous graph which contains different types of nodes and links. The heterogeneity
and rich semantic information bring great challenges for designing a graph neural
network for heterogeneous graph. Recently, one of the most exciting advancements in
deep learning is the attention mechanism, whose great potential has been well
demonstrated in various areas. In this paper, we first propose a novel heterogeneous
graph neural network based on the hierarchical attention, including node-level and
semantic-level attentions. Specifically, the node-level attention aims to learn the
importance between a node and its meta-path based neighbors, while the semantic-level
attention is able to learn the importance of different meta-paths. With the learned
importance from both node-level and semantic-level attention, the importance of node
and meta-path can be fully considered. Then the proposed model can generate node
embedding by aggregating features from meta-path based neighbors in a hierarchical
manner. Extensive experimental results on three real-world heterogeneous graphs not
only show the superior performance of our proposed model over the state-of-the-arts, but
also demonstrate its potentially good interpretability for graph analysis.
2. S. Zhou, J. Bu, X. Wang, J. Chen, and C. Wang, “Hahe: Hierarchical attentive
heterogeneous information network embedding,” arXiv preprint arXiv:1902.01475,
2019.
Heterogeneous information network (HIN) embedding has recently attracted
much attention due to its effectiveness in dealing with the complex heterogeneous data.
Meta path, which connects different object types with various semantic meanings, is
widely used by existing HIN embedding works. However, several challenges have not
been addressed so far. First, different meta paths convey different semantic meanings,
while existing works assume that all nodes share same weights for meta paths and ignore
the personalized preferences of different nodes on different meta paths. Second, given a
meta path, nodes in HIN are connected by path instances while existing works fail to
fully explore the differences between path instances that reflect nodes' preferences in the
semantic space. rTo tackle the above challenges, we propose aHierarchical Attentive
Heterogeneous information network Embedding (HAHE) model to capture the
personalized preferences on meta paths and path instances in each semantic space. As
path instances are based on a particular meta path, a hierarchical attention mechanism is
naturally utilized to model the personalized preference on meta paths and path instances.
Extensive experiments on several real-world datasets show that our proposed \model
model significantly outperforms the state-of-the-art methods in terms of various data
mining tasks.
3. S. Wang, Z. Chen, D. Li, Z. Li, L.-A. Tang, J. Ni, J. Rhee, H. Chen, and P. S. Yu,
“Attentional heterogeneous graph neural network: Application to program
reidentification,” in Proceedings of the 2019 SIAM International Conference on
Data Mining. SIAM, 2019, pp. 693–701.
Program or process is an integral part of almost every IT/OT system. Can we trust
the identity/ID (e.g., executable name) of the program? To avoid detection, malware may
disguise itself using the ID of a legitimate program, and a system tool (e.g., PowerShell)
used by the attackers may have the fake ID of another common software, which is less
sensitive. However, existing intrusion detection techniques often overlook this critical
program reidentification problem (i.e., checking the program's identity). In this paper, we
propose an attentional heterogeneous graph neural network model (DeepHGNN) to verify
the program's identity based on its system behaviors. The key idea is to leverage the
representation learning of the heterogeneous program behavior graph to guide the
reidentification process. We formulate the program reidentification as a graph
classification problem and develop an effective attentional heterogeneous graph
embedding algorithm to solve it. Extensive experiments --- using real-world enterprise
monitoring data and real attacks --- demonstrate the effectiveness of DeepHGNN across
multiple popular metrics and the robustness to the normal dynamic changes like program
version upgrades.
reviewers, the honesty of reviews, and the reliability of stores. Different from existing
approaches, we don’t use review text information. Our model is thus complementary to
existing approaches and able to find more difficult and subtle spamming activities, which
are agreed upon by human judges after they evaluate our results.
3. SYSTEM ANALYSIS
In recent years, lots of heterogeneous GNN based methods have been developed. HAN
[18], HAHE [19], and Deep- HGNN [20] transforms a heterogeneous graph into several
homogeneous graphs based on handcrafted meta-paths, applies GNN separately on each
graph, and aggregates the output representations by attention mechanism. GraphInception
[21] constructs meta-paths between nodes with the same object type. HetGNN [22] first
samples a fixed number of neighbors via random walk strategy. Then it applies a
hierarchical aggregation mechanism for intra-type and intertype aggregation. HGT [23]
extends transformer architecture to heterogeneous graphs. They directly calculate
attention scores for all the neighbors of a target node and perform aggregation
accordingly without considering domain knowledge.
For relation-aware graph fraud detectors, their main solution is to build multiple
homogeneous graphs based on edge type information of the original graph then perform
type independent node level aggregation and graph level concatenation. GEM [9] learns
weighting parameters for different homogeneous subgraph. Player2Vec [7] and
SemiGNN [8] both adopt attention mechanism in feature aggregation and SemiGNN
further leverages a structure loss to guarantee the node embeddings homophily. Some
works directly aggregate heterogeneous information in the graph. For instance, under a
user-review-item heterogeneous graph, GAS [3] learns a unique set of aggregators for
different node types and updates the embeddings of each node type iteratively.
Disadvantages
In the existing work, the system did not implement Fraud Aware
Heterogeneous Graph Transformer(FAHGT) to measure frauds exactly.
This system is less performance due to lack of META RELATION
SCORING.
3.2 PROPOSED SYSTEM
Graph Consist addresses the inconsistency problem by computing the similarity score
between node embeddings, which cannot distinguish nodes with different types.
CAREGNN enhances GNN-based fraud detectors against camouflaged fraudsters by
reinforcement learning based neighbor selector and relation aware aggregator. Its
performance still suffers from the heterogeneous graph.
In this paper, the system introduces the Fraud Aware Heterogeneous Graph
Transformer(FAHGT), where we propose heterogeneous mutual attention to address the
inconsistency problem and design a label-aware neighbor selector to solve the
camouflage problem. Both are implemented in a unified manner called the “score head
mechanism”. We demonstrate the effectiveness and efficiency of FAHGT on many real
world datasets. Experimental results suggest that FAHGT can significantly improve KS
and AUC over state-of-the-art GNNs as well as GNN-based fraud detectors.
Advantages
The advantages of FAHGT can be summarized as follows.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user must
not real threatened by the system, instead must accept it as a necessity. The level of
acceptance by the users solely depends on the methods that are employed to educate the
user about the system and to make him familiar with it. His level of confidence must be
raised so hat he is also able to make some constructive criticism, which is welcomed, as
he is the final user of the system.
3.4 MODULES OF THE PROJECT
3.4.1. Admin
In this module, admin has to login with valid username and password. After login
successful he can do some operations such as View and Authorize Users,Add & View
Categories, Add & View Sub-Categories, Add Product Items, Top Products Results,View
Users Search History,View Fraud Detection On Product Reviews, View Products with
Ranks and Comments, View Products Ranks Results.
Viewing and Authorizing Users
In this module, the admin views all users details and authorize them for login
permission. User Details such as User Name, Address, Email Id and Mobile Number.
3.4.2 User
In this module, there are n numbers of users are present. User should register
before doing some. After registration successful he can login by using valid user name
and password. Login successful he will do some operations Register and Login,My
Profile, Search Products & Give Review,View Top Products,My Search History.
Viewing Profile Details
In this module, the user can see their own profile details, such as their address,
email, mobile number, profile Image.
5. SYSTEM DESIGN
5.1 INTRODUCTION
A graphical tool used to describe and analyze the moment of data through a
system manual or automated including the process, stores of data, and delays in the
system. Data Flow Diagrams are the central tool and the basis from which other
components are developed. The transformation of data from input to output, through
processes, may be described logically and independently of the physical components
associated with the system. The DFD is also known as a data flow graph or a bubble
chart.
DFDs are the model of the proposed system. They clearly should show the
requirements on which the new system should be built. Later during design activity this is
taken as the basis for drawing the system’s structure charts. The Basic Notation used to
create a DFD’s are as follows:
1. Dataflow: Data move in a specific direction from an origin to a destination.
2. Process: People, procedures, or devices that use or produce (Transform) Data. The
physical component is not identified.
relationship between them. It should not be confused with data analysis, which takes
place in the system design phase. As in a DFD, a model of data consists of a number of
symbols joined up according to certain conventions. System designers describe these
conceptual modeling using symbols from a modeling method known as entity
relationship analysis.
Entity Relationship Diagram
Entity relationship analysis uses three major abstractions to describe data. These
are
1. Entities, which are distinct things in the enterprise.
2. Relationships, which are meaningful interactions between the objects.
3. Attributes, which are the properties of the entities and relationship.
The relative simplicity and pictorial clarity of this diagramming technique may
well account in large part for the widespread use of ER model. Such a diagram consists
of the following major components.
E-R Diagram Components
Entity
An entity is an object that exists and is distinguishable from other objects.
An entity may be concrete or abstract.
An entity is a set of entities of the same type.
Entity sets need not be disjoint.
An entity is represented by a set of attributes.
Mapping Constraints
An E-R diagram may define certain constraints which the contents of a database
must conform.
Mapping Cardinalities
It expresses the number of entities to which another entity can be associated via a
relationship. For binary relationship sets between entity sets A and B, the mapping
cardinality must be one of the following:
One-to-One – An entity in A is associated with at most one entity in B, and an entity in
B is associated with at most one entity in A.
One-to-many -An entity in A is associated with any number in B. An entity in B is
associated with any number in A.
Many-to-many – Entities in A and B are associated with any number from each other.
Cardinality: It indicates that which type relationship the business rule follows is called
cardinality.
Connectivity: It specifies that which type of notation the entities are connected in both
sides that one side or many side.
5.2 DATA DICTIONARY
The logical characteristics of current systems data stores, including name,
description, aliases, contents, and organization, identifies processes where the data are
used and where immediate access to information required, Serves as the basis for
identifying database requirements during system design.
Things
Things are the abstractions that are first-class citizens in a model. Relationships
tie these things together. Diagrams group the interesting collection of things. There are
four kinds of things in the UML
Structural things
Behavioral things
Grouping things
Annotational things
Structural Things
Structural things are the nouns of the UML models. These are mostly static parts
of the model, representing elements that are either conceptual or physical. In all, there
are seven kinds of Structural things.
Use Case
Use case is a description of a set of sequence of actions that a system performs
that yields an observable result of value to a particular things in a model. Graphically,
Use Case is rendered as an ellipse with dashed lines, usually including only its name as
shown below.
Interface
An interface is a collection of operations that specify a service of a class or
component. An interface describes the externally visible behaviour of element.
Graphically the interface is rendered as a circle together with its name.
Fig : Interface
Collaboration
Collaboration defines an interaction and is a society of roles and other elements
that work together to provide some cooperative behaviour that’s bigger than the sum of
all the elements. Graphically, collaboration is rendered as an ellipse with dashed lines,
usually including only its name as shown below.
Component
Component is a physical and replaceable part of a system that conforms to and
provides the realization of a set of interfaces. Graphically, a component is rendered as a
rectangle with tabs, usually including only its name, as shown below.
Behavioral Things
Behavioral things are the dynamic parts of UML models. These are the verbs of a
model, representing behavior over time and space.
Interaction
An interaction is a behavior that comprises a set of messages exchanged among a
set of objects within a particular context to accomplish a specific purpose.
Display
Fig : Sample Interaction Diagram
State Machine
A state machine is a behavior that specifies the sequence of states an object or an
interaction goes through during its lifetime on response to events, together with its
responses to those events. Graphically, a state is rendered as rounded rectangle usually
including its name and its sub-states, if any, as shown below.
Fig : Generalization
Fourth, a realization is a semantic relationship between classifiers, wherein one
classifier specifies a contract that another classifier guarantees to carry out. You’ll
encounter realization relationships in two places between interfaces and the classes or
components that realize them and between use cases and the collaborations that realize
them.
Fig : Realization
Each UML diagram is designed to let developers and customers view a software
system from a different perspective and in varying degrees of abstraction. Use Case
Diagram displays the relationship among actors and use cases.
Class Diagram models class structure and contents using design elements such as classes,
packages and objects. It also displays relationships such as containment, inheritance,
associations and others.
Interaction Diagrams
Sequence Diagram displays the time sequence of the objects participating in the
interaction. This consists of the vertical dimension (time) and horizontal dimension
(different objects).
Collaboration Diagram displays an interaction organized around the objects and
their links to one another. Numbers are used to show the sequence of messages.
State Diagram displays the sequences of states that an object of an interaction
goes through during its life in response to received stimuli, together with its
responses and actions.
SRTS, Kadapa Page 20
Fraud Detection in Online Product Review Systems via Heterogeneous Graph Transformer
Activity Diagram
Activity Diagram displays a special state diagram where most of the states are
action states and most of the transitions are triggered by completion of the actions in the
source states. This diagram focuses on flows driven by internal processing.
Physical Diagrams
Component Diagram displays the high level packaged structure of the code itself.
Dependencies among components are shown, including source code components,
binary code components, and executable components. Some components exist at
compile time, at link time, at run times well as at more than one time.
Deployment Diagram displays the configuration of run-time processing elements
and the software components, processes, and objects that live on them. Software
component instances represent run-time manifestations of code.
Diagrams in the UML
FIG:Usecase Diagram
CLASS DIAGRAM
In software engineering, a class diagram in the Unified Modeling Language (UML)
is a type of static structure diagram that describes the structure of a system by showing
the system's classes, their attributes, operations (or methods), and the relationships among
the classes. It explains which class contains information.
SEQUENCE DIAGRAM
ACTIVITY DIAGRAM
You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether it’s a development tool or a
Web browser that can run applets, is an implementation of the Java VM. Java byte codes
help make “write once, run anywhere” possible. You can compile your program into byte
codes on any platform that has a Java compiler. The byte codes can then be run on any
implementation of the Java VM. That means that as long as a computer has a Java VM,
the same program written in the Java programming language can run on Windows 2000,
a Solaris workstation, or on an iMac.
Java API is grouped into libraries of related classes and interfaces; these libraries are
known as packages. The next section, What Can Java Technology Do? Highlights what
functionality some of the packages in the Java API provide.
The following figure depicts a program that’s running on the Java platform. As
the figure shows, the Java API and the virtual machine insulate the program from the
hardware.
Native code is code that after you compile it, the compiled code runs on a specific
hardware platform. As a platform-independent environment, the Java platform can be a
bit slower than native code. However, smart compilers, well-tuned interpreters, and just-
in-time byte code compilers can bring performance close to that of native code without
threatening portability.
What Can Java Technology Do?
The most common types of programs written in the Java programming language
are applets and applications. If you’ve surfed the Web, you’re probably already familiar
with applets. An applet is a program that adheres to certain conventions that allow it to
run within a Java-enabled browser.
However, the Java programming language is not just for writing cute, entertaining
applets for the Web. The general-purpose, high-level Java programming language is also
a powerful software platform. Using the generous API, you can write many types of
programs.
An application is a standalone program that runs directly on the Java platform. A
special kind of application known as a server serves and supports clients on a network.
Examples of servers are Web servers, proxy servers, mail servers, and print servers.
Another specialized program is a servlet. A servlet can almost be thought of as an applet
that runs on the server side. Java Servlets are a popular choice for building interactive
web applications, replacing the use of CGI scripts. Servlets are similar to applets in that
with early reviewer feedback, have finalized the JDBC class library into a solid
framework for building database applications in Java.
The goals that were set for JDBC are important. They will give you some insight as to
why certain classes and functionalities behave the way they do. The eight design goals
for JDBC are as follows:
IP datagram’s
The IP layer provides a connectionless and unreliable delivery system. It
considers each datagram independently of the others. Any association between datagram
must be supplied by the higher layers. The IP layer supplies a checksum that includes its
own header. The header includes the source and destination addresses. The IP layer
handles routing through an Internet. It is also responsible for breaking up large datagram
into smaller ones for transmission and reassembling them at the other end.
UDP
UDP is also connectionless and unreliable. What it adds to IP is a checksum for
the contents of the datagram and port numbers. These are used to give a client/server
model - see later.
TCP
TCP supplies logic to give a reliable connection-oriented protocol above IP. It
provides a virtual circuit that two processes can use to communicate
Internet addresses
In order to use a service, you must be able to find it. The Internet uses an address
scheme for machines so that they can be located. The address is a 32 bit integer which
gives the IP address. This encodes a network ID and more addressing.
Network address
Class A uses 8 bits for the network address with 24 bits left over for other
addressing. Class B uses 16 bit network addressing. Class C uses 24 bit network
addressing and class D uses all 32.
Subnet address
Internally, the UNIX network is divided into sub networks. Building 11 is
currently on one sub network and uses 10-bit addressing, allowing 1024 different hosts.
Host address
8 bits are finally used for host addresses within our subnet. This places a limit of
256 machines that can be on the subnet.
Total Address
The 32 bit address is usually written as 4 integers separated by dots.
Port addresses
A service exists on a host, and is identified by its port. This is a 16 bit number. To
send a message to a server, you send it to the port for that service of the host that it is
running on. This is not location transparency! Certain of these ports are "well known".
Sockets
A socket is a data structure maintained by the system to handle network
connections. A socket is created using the call socket. It returns an integer that is like a
file descriptor. In fact, under Windows, this handle can be used with Read File and Write
File functions.
#include <sys/types.h>
#include <sys/socket.h>
int socket(int family, int type, int protocol);
Here "family" will be AF_INET for IP communications, protocol will be zero, and type
will depend on whether TCP or UDP is used. Two processes wishing to communicate
over a network create a socket each. These are similar to two ends of a pipe - but the
actual pipe does not yet exist.
JFree Chart
JFreeChart is a free 100% Java chart library that makes it easy for developers to
display professional quality charts in their applications. JFreeChart's extensive feature set
includes:
A consistent and well-documented API, supporting a wide range of chart types;
A flexible design that is easy to extend, and targets both server-side and client-side
applications;
Support for many output types, including Swing components, image files
(including PNG and JPEG), and vector graphics file formats (including PDF, EPS and
SVG);
functionality of the Java language to smaller devices, allowing mobile wireless devices to
share applications. With J2ME, Sun has adapted the Java platform for consumer products
that incorporate or are based on small computing devices.
6.3 DATABASE
SQL Level API
The designers felt that their main goal was to define a SQL interface for Java.
Although not the lowest database interface level possible, it is at a low enough level for
higher-level tools and APIs to be created. Conversely, it is at a high enough level for
application programmers to use it confidently. Attaining this goal allows for future tool
vendors to “generate” JDBC code and to hide many of JDBC’s complexities from the end
user.
1.SQL Conformance
SQL syntax varies as you move from database vendor to database vendor. In an effort
to support a wide variety of vendors, JDBC will allow any query statement to be passed
through it to the underlying database driver. This allows the connectivity module to
handle non-standard functionality in a manner that is suitable for its users.
1. JDBC must be implemental on top of common database interfaces
The JDBC SQL API must “sit” on top of other common SQL level APIs. This
goal allows JDBC to use existing ODBC level drivers by the use of a software interface.
This interface would translate JDBC calls to ODBC and vice versa.
2. Provide a Java interface that is consistent with the rest of the Java system
Because of Java’s acceptance in the user community thus far, the designers feel
that they should not stray from the current design of the core Java system.
3. Keep it simple
This goal probably appears in all software design goal listings. JDBC is no
exception. Sun felt that the design of JDBC should be very simple, allowing for only one
method of completing a task per mechanism. Allowing duplicate functionality only
serves to confuse the users of the API.
4. Use strong, static typing wherever possible
Strong typing allows for more error checking to be done at compile time; also,
less error appear at runtime.
7. SAMPLE CODE
Connect.jsp
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %>
<%
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/fdop","root","root");
String sql="";
}
catch(Exception e)
{
System.out.println(e);
}
%>
Result.jsp
<%
String iname="";
int i=0,count=0,rank=0;
try
{
%><html>
<head>
<title>Products rank</title>
<script type="text/javascript" src="sources/jscharts.js"></script>
</head>
<body>
<div id="graph">Loading graph...</div>
<script type="text/javascript">
var myData=new Array();
var colors=[];
<%
iname=rs1.getString(2);
rank=rs1.getInt(8);
%>
<%
i++;}
%>
</script>
</body>
</html>
<%
}
catch(Exception e)
{
e.printStackTrace();
}
%>
Authentication.jsp
<%
try
{
String value=request.getParameter("value");
if(value.equals("adminlogin"))
{
String username=request.getParameter("userid");
String password=request.getParameter("pass");
String sql="SELECT * FROM admin where
name='"+username+"' and pass='"+password+"'";
Statement stmt = connection.createStatement();
ResultSet rs =stmt.executeQuery(sql);
if(rs.next())
{
response.sendRedirect("AdminMain.jsp");
}
else
{
response.sendRedirect("AdminRe-
Login.jsp");
}
else if(value.equals("userlogin"))
{
String username=request.getParameter("userid");
String password=request.getParameter("pass");
String sql = "SELECT * FROM user where
username='"+username+"' and password='"+password+"' ";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()==true)
{
String sql1="SELECT *
FROM user where username='"+username+"' and status='Authorized' ";
Statement stmt1 =
connection.createStatement();
ResultSet rs1
=stmt1.executeQuery(sql1);
if(rs1.next()==true)
{
int i = rs1.getInt(1);
application.setAttribute("uname", username);
response.sendRedirect("UserMain.jsp");
}
else
{
%>
<style type="text/css">
<!--
.style1 {
color: #FF0000;
font-weight: bold;
font-size: 18px;
}
.style2 {
color: #0000FF;
font-weight: bold;
font-size: 16px;
}
-->
</style>
<br/>
<p align="center" class="style1">You are not Authorized by the Admin, Please wait!!
</p>
<div align="center"><br/>
<br/>
<a href="UserLogin.jsp" class="style2">Back</a>
<%
}
}
else
{
response.sendRedirect("UserRe-Login.jsp");
}
}
else if(value.equals("userstatus"))
{
int id=Integer.parseInt(request.getParameter("id"));
String sql1="update user set status='Authorized' where id='"+id+"'";
Statement stmt1 = connection.createStatement();
int k =stmt1.executeUpdate(sql1);
if(k>0)
{
response.sendRedirect("A_AuthorizeUsers.jsp");
}
else
{
%>
<style type="text/css">
<!--
.style1 {
color: #FF0000;
font-weight: bold;
font-size: 18px;
}
.style2 {
color: #0000FF;
font-weight: bold;
font-size: 16px;
}
-->
</style>
<br/>
<p align="center" class="style1">Permision Not Granted..Please Try Again..</p>
<div align="center"><br/>
<br/>
<a href="A_AuthorizeUsers.jsp" class="style2">Back</a>
<%
} }
else
{}
}
catch(Exception e)
{
out.print(e);
}
%>
8. TESTING
Testing is a process, which reveals errors in the program. It is the major quality
measure employed during software development. During software development, during
testing, the program is executed with a set of test cases and the output of the program for
the test cases is evaluated to determine if the program is performing as it is expected to
perform.
Unit Testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid outputs. All
decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on knowledge of
its construction and is invasive. Unit tests perform basic tests at component level and test
a specific business process, application, and/or system configuration. Unit tests ensure
that each unique path of a business process performs accurately to the documented
specifications and contains clearly defined inputs and expected results.
Integration testing
Integration tests are designed to test integrated software components to determine
if they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically
aimed at exposing the problems that arise from the combination of components.
Functional test
Functional tests provide systematic demonstrations that functions tested are
System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test. System
testing is based on process descriptions and flows, emphasizing pre-driven process links
and integration points.
In this testing only the output is checked for correctness. The logical flow of the data
is not checked.
Integrating Testing
Integration testing ensures that software and subsystems work together a whole.
It tests the interface of all the modules to make sure that the modules behave properly
when integrated together.
System Testing
Here the entire software system is tested. The reference document for this process
is the requirements document, and the goal is to see if software meets its requirements.
Here entire ‘Cybernetic Protectors Application’ has been tested against requirements of
project and it is checked whether all requirements of project have been satisfied or not.
Acceptance Testing
Acceptance Test is performed with realistic data of the client to demonstrate that
the software is working satisfactorily. Testing here is focused on external behavior of the
system; the internal logic of program is not emphasized. In this project ‘Cybernetic
Protectors Application’ I have collected some data and tested whether project is working
correctly or not. Test cases should be selected so that the largest number of attributes of
an equivalence class is exercised at once. The testing phase is an important part of
software development. It is the process of finding errors and missing operations and also
a complete verification to determine whether the objectives are met and the user
requirements are satisfied.
Test Approach
Testing can be done in two ways:
Bottom up approach
Top down approach
Bottom Up Approach
Testing can be performed starting from smallest and lowest level modules and
proceeding one at a time. For each module in bottom up testing a short program executes
the module and provides the needed data so that the module is asked to perform the way
it will when embedded with in the larger system.
The system has been tested and implemented successfully and thus ensured that all
the requirements as listed in the software requirements specification are completely
fulfilled. In case of erroneous input corresponding error messages are displayed.
TEST CASES
EXPECTED
S. No. TEST CASES INPUT ACTUAL RESULT STATUS
RESULT
Registration
User User gets
1 Enter all fields Pass
Registration registered
is successful
Registration is
if user miss User not
2 User Fail
any field registered
Registration un successful
Admin home
Give the user Admin home
page should
3 Admin Login name and Page has been Pass
password opened
be opened
Admin page
Give Username Admin page has
4 Admin Login should be Pass
and password been opened
opened
Upload Details
Enter All the Details Should
5 Product Uploaded Pass
Details be Upload
Details Success Fully
9. SCREENS
10. CONCLUSION
It is not possible to develop a system that makes all the requirements of the user. User
requirements keep changing as the system is being used. Some of the future enhancements that
can be done to this system are
In the future, we plan to extend our model in handing dynamic graphs data and
incorporate fraud detection into other areas, such as robust item recommendation in E-
commerce or loan default prediction in financial services.
12. BIBLIOGRAPHY
[1] V. S. Tseng, J. Ying, C. Huang, Y. Kao, and K. Chen, “Fraudetector: A graph-
mining-based framework for fraudulent phone call detection,” in Proceedings of the 21th
ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,
Sydney, NSW, Australia, August 10-13, 2015, L. Cao, C. Zhang, T. Joachims, G. I.
Webb, D. D. Margineantu, and G. Williams, Eds. ACM, 2015, pp. 2157–2166. [Online].
Available: https://doi.org/10.1145/2783258.2788623
[2] J. Wang, R. Wen, and C. Wu, “Fdgars: Fraudster detection via graph convolutional
networks in online app review system,” in WWW Workshops,2019.
[3] A. Li, Z. Qin, R. Liu, Y. Yang, and D. Li, “Spam review detection with graph
convolutional networks,” in CIKM, 2019.
[4] Z. Liu, Y. Dou, P. S. Yu, Y. Deng, and H. Peng, “Alleviating the inconsistency
problem of applying graph neural network to fraud detection,” in SIGIR, 2020.
[5] Y. Dou, Z. Liu, L. Sun, Y. Deng, H. Peng, and P. S. Yu, “Enhancing graph
neural network-based fraud detectors against camouflaged fraudsters,” in CIKM, 2020.
[6] R. Wen, J. Wang, C. Wu, and J. Xiong, “Asa: Adversary situation awareness via
heterogeneous graph convolutional networks,” in WWW Workshops, 2020.
[7] Y. Zhang, Y. Fan, Y. Ye, L. Zhao, and C. Shi, “Key player identification in
underground forums over attributed heterogeneous information network embedding
framework,” in CIKM, 2019.
[8] D. Wang, J. Lin, P. Cui, Q. Jia, Z. Wang, Y. Fang, Q. Yu, and J. Zhou, “A semi-
supervised graph attentive network for fraud detection,” in ICDM, 2019.
[9] Z. Liu, C. Chen, X. Yang, J. Zhou, X. Li, and L. Song, “Heterogeneous graph neural
networks for malicious account detection,” in CIKM, 2018.
[10] Y. Dou, G. Ma, P. S. Yu, and S. Xie, “Robust spammer detection by nash
reinforcement learning,” in KDD, 2020.