Model Prjct Java
Model Prjct Java
Project work submitted in partial fulfillment of the requirements for the award of the degree of
Submitted by
B. SRI AMARNATH
(Regd.No.2203013)
2022-2024
A PROJECT REPORT ON
Project work submitted in partial fulfillment of the requirements for the award of degree of
Submitted by
B.SRI AMARNATH
(Regd.No.2203013)
Assistant Professor
CERTIFICATE
This is to certify that Mr. BULUSU SRI AMARNATH, Regd. No: 2203013, has
developed a software project titled "Detecting Fraudulent Student
Communication in a Multiple Choice Online Test Environment”for HMI
Engineering Services as a partial Fulfillment for the award of the degree of MASTER
OF COMPUTER APPLICATIONS in the Department of Computer Science, Dr.
C.S. RAO P.G. CENTRE, SRI Y. N. COLLEGE(A), Narsapur. This work is
not submitted to any University for the Award of any Degree/Diploma.
I am grateful to all the faculty of the MCA Dept. of Dr. C. S. Rao P.G. Centre,
Sri Y.N College(A), my classmates, and my friends for their valuable suggestions and
cooperation in completing the project work.
B.S.AMARNATH
DECLARATION
Station: Narsapur.
Date of Submission:
(B.S.AMARNATH)
ABSTRACT
ABSTRACT
ABSTRACT
1. INTRODUCTION
1.1 INTRODUCTION 1
2. LITERATURE SURVEY 3
3. SYSTEM ANALYSIS
3.1 INTODUCTION 5
3.6.1 INTRODUCTION 13
3.6.2 PURPOSE 14
4.2 NORMALIZATION 19
5. IMPLEMENTATION
5.1 IMPLEMENTATION 32
6. SYSTEM TESTING
6.1 INTRODUCTION 39
7.1 INTRODUCTION 44
8. CONCLUSION 73
9. BIBLIOGRAPHY
9.1 REFFERENCES 74
LIST OF FIGURES
S.NO TITLES PAGE NO
1.1. INTRODUCTION
The growing use of Internet needs to take attention while we send and receive
personal information in a secured manner. For this, there are many approaches
that can transfer the data into different forms so that their resultant data can be
understood if it can be returned back into its original form. This technique is
known as encryption. However, a major disadvantage of this method is that the
existence of data is not hidden. If someone gives enough time then the
unreadable encrypted data may be converted into its original form.
A solution to this problem has already been achieved by using a
“steganography” technique to hide data in a cover media so that other cannot
notice it. The characteristics of the cover media depends on the amount of data
that can be hidden, the perceptibility of themessage and its robustness.
In this document, I propose a new system for hiding data stands on many
methods and algorithms for image hiding where I store on data file, called sink
file in an image file called as container image. The primary objective is to use
steganography techniques so as to provide more security and simultaneously
using less storage.
After studying the data hiding algorithms we found many ways to hiding data by
using the multimedia files and the main question for me was "Where hidden data
hides?" as we found by our search to know where the data hides it's important to
know what is the filetype of the data that it shall be hidden and the cover file type
so it is possible to alter graphic or sound files slightly without losing their overall
viability for the viewer and listener. With audio, you can use bits of file that
contain sound not audible to the human ear. With graphic images, you can
remove redundant bits of color from the image and still produce a picture that
looks intact to human eye and is difficult to discern from its original. It is in
those bitsthat stego hides its data.
1
By the final of our research we developed a software uses an algorithm, to
embed data in an image; The purposed system is called "Steganography", the
aim of this project is to encrypt the data; the meaning of encrypt is to hide the
data over an image using different steganographic algorithms, in this system LSB
is the algorithms that we use to hiding the data.
Research in information hiding has tremendous increased during the past decade
with commercial interests driving the field. Although the art of concealment
“hidden information” as old as the history, but the emergence of computer and
the evolution of sciences and techniques breathe life again in this art with the use
of new ideas, techniques, drawing on the computer characteristics in the way
representation of the data, well-known computer representation of all data
including ( Multimedia) is binary these representations are often the digital levels
and areas and change values-aware of slight not aware or felt by Means sensual
of human such as hearing, sight, the advantage use of these properties to hide data
in multimedia by replace the values of these sites to the values of data to be
hidden, taking into account the acceptable limits for the changeover, and not
exceeded to prevent degradation media container with a change becomes aware
and felt by human. It should be noted here that although the art of hidden
information come in the beginning of the computer and its techniques However,
the seriousness of the work in the stenography as a stand-alonescience started in
1995.
3
1.3. Steganography Types
1. Pure Steganography
4
Anyone who doesn't know the secret key should not be able to obtain evidence
ofthe encoded information.
Public key Steganography does not depend on the exchange of a secret key. It
requires two keys, one of them private (secret) and the other public: the public
key is stored in a public database, whereas the public key is used in the
embedding process. The secret key is used to reconstruct the secret message.
1.4.Steganography Algorithms
For encryption and decryption of text messages using the secret keys
steganographic system uses algorithms known as steganographic algorithms.
The mostly used algorithms for embedding data into images are:
1. LSB (Least Significant Bit) Algorithm (Our domain)
2. JSteg Algorithm
3. F5 Algorithm
5
1. LSB Algorithm
LSB embedding is the most common technique to embed message bits DCT
coefficients. This method has also been used in the spatial domain where the least
significant bit value of a pixel is changed to insert a zero or a one. A simple
example would be to associate an even coefficient with a zero bit and an odd one
with a one-bit value.
In order to embed a message bit in a pixel or a DCT coefficient, the sender
increases or decreases the value of the coefficient/pixel to embed a zero or a one.
The receiver then extracts the hidden message bits by reading the coefficients in
the same sequence and decoding them in accordance with the encoding
technique performed on it.
The advantage of LSB embedding is that it has good embedding capacity and the
change is usually visually undetectable to the human eye. If all the coefficients
are used, it can provide a capacity of almost one bit per coefficients using the
frequency domain technique. On the other hand, it can provide a greater capacity
for the spatial domain embedding with almost 1 bit per pixel for each color
component. However, sending a raw image such as a Bitmap (BMP) to the
receiver would create suspicion in and of itself, unlessthe image file is very small.
Fridrich et al. proposed a steganalysis method which provides a high detection
rate for shorter hidden messages. Westfeld and Pfitzmann proposed another
steganalysis algorithm for BMP images where the message length is comparable
to the pixel count. Most of the popular formats today are compressed in the
frequency domain and therefore it is not a common practice to embed bits
directly in the spatial domain. Hence, frequency domain embeddings are the
preferred choice for image steganography.
6
1.5.ORGANISATION PROFILE
7
2. LITERATURE SURVEY
2.1.INTRODUCTION
In this chapter, we will provide an overview of steganography using LSB to hide
the files inside images using the C#.NET technical computing language, it is
development environment is used in a variety of domains, such as image and
signal processing, C# offers many “toolboxes”, and a simple interface to high-
performance libraries, one of the most advantages is a large user community with
lots of free code and knowledge sharing and theability to process both still images
and video. It is popular because of its ease and simplicity. Also, we will mention
some programs that have the same approach it is using an encryption. Then, we
will give the recommendation that help to develop our program.
In this project, use a method of encrypting any data file in an image file. This
process of hiding the data helps to sharing the information with others over the
internet network without any potential risk. The proposed system will help to
hide the content with in the image and encryption of data file with in the image
will help to make the document much securer.
In this research,developed the proposed system by using steganographic
algorithm which is LSB and a technique for hiding capacity and efficiency of
hiding the message with in an image.
White Noise Storm is a DOS based tool that could easily embed secret
messages incover images without any degradation. However, the integrity of
the cover image could be severely affected by noise. The tool uses LSB
steganography technique to embed secret messages in PCX files. The main
disadvantage of this tool is the loss of many bits that can be used to hold
information. Additionally, it uses large cover images to store information that it
could be stored in a smaller cover images using other tools.
8
2.2.2. StegoDos
StegoDos is public domain software that only works on 320x200 pixel images
with256 colors. The tool uses LSB steganography technique to hide secret
messages. The main disadvantage of the tool is the size restriction that limits the
user’s cover image to 320x200 pixels in-order to have a stego-image that is
similar to the original one. Another disadvantage is the dependence on the
end-of- file character to end the message that does not have any significance
work since the message after retrieval appears to contain garbage.
2.2.3.StegCure
9
Figure 2-2: StegCure
Capacity of Limited hiding capacity Limited hiding Limited hiding Optimum hiding
Secret capacity capacity capacity
Message
Variable size
Image Size - 320x200 -
Lossless
Image (Ex. GIF BMP & PNG
PCX GIF
Format and
BMP)
Efficiency Low Low Medium Medium
2.4. RECOMMENDATIONS
After studying similar tools to our proposed system LSB substitution is used to embed
the message into an image.It works by adjusting the LSB of the carrier image’s pixels
whereas, the last bit of each byte in the image is changed to a bit of the secret message
that is known standard LSB (1-LSB). Also, use 2-LSB method that differs from the
standard LSB method by allowing more data to be hidden into the cover image. The
idea of this method is almost similar to the standard LSB, except that it replaces the 2-
LSB of each byte of the cover image instead of one bit.
10
The LSB insertion differs depending on the number of bits in an image. In 8-bit images,
the last bit of each byte in the image is changed to a bit of the secret message.
However, it has a major limitation, which is embedding only small size data into
images. While in 24- bit images, the last bit of each RGB component is changed which
allows more data to be hidden.
11
3. SYSTEM ANALYSIS
3.1. INTRODUCTION
After analyzing the requirements of the task to be performed, the next step is to
analyze the problem and understand its context. The first activity in the phase is
studying the existing system and other is to understand the requirements and
domain of the new system. Both the activities are equally important, but the first
activity serves as a basis of giving the functional specifications and then
successful design of the proposed system. Understanding the properties and
requirements of a new system is more difficult and requires creative thinking and
understanding of existing running system is also difficult, improper
understanding of present system can lead diversion from solution.
12
Requirement Analysis and Design
Analysis gathers the requirements for the system. This project involves creating a
steganography system that allows users to hide and retrieve information within
digital images. The business needs were identified as developing a secure and
user-friendly system for embedding and extracting data from images. The design
included high-level components such as an embedder program, an extractor
program, and a user interface. Detailed low-level designs involved embedding
data into the least significant bits of image pixels and extracting it back. The
interface design provided a simple GUI for user interaction, and data design
specified the input as image files and secret messages and the output as modified
images or retrieved messages. Much care is taken during this phase. The logical
system of the product is developed in this phase.
Implementation
The implementation phase used Python 3.6 for core logic, Tkinter for the GUI,
and Pillow for image processing. The code was written to embed and extract
secret data from images, ensuring the system's core functionality was robust and
efficient. With respect to the type of application, the right programming
language is chosen.
Testing
In this phase, the system is tested. The system underwent thorough testing,
including unit testing for individual functions, integration testing for the
complete process through the GUI, and volume testing with images of different
sizes and data amounts to ensure performance stability. Acceptance testing
ensured the final product met user requirements.
Maintenance
This document plays a vital role in the development of life cycle (SDLC) as it
describes the complete requirement of the system. It means for use by
developers and will be the basic during testing phase. Any changes made to the
requirements in the future will have to go through formal change approval
process.
SPIRAL MODEL was defined by Barry Boehm in his 1988 article, “A spiral
Model of Software Development and Enhancement. This model was not the first
model to discuss iterative development, but it was the first model to explain why
the iteration models.
14
This usually involves interviewing a number of users representing all the
external or internal users and other aspects of the existing system.
A first prototype of the new system is constructed from the preliminary design.
This is usually a scaled-down system, and represents an approximation of the
characteristics of the final product.
o Evaluating the first prototype in terms of its strengths, weakness and risks.
At the customer option, the entire project can be aborted if the risk is deemed
too great. Risk factors might involve development cost overruns, operating-
cost miscalculation, or any other factor that could, in the customer’s
judgment, result in a less-than-satisfactory final product.
The existing prototype is evaluated in the same manner as was the previous
prototype, and if necessary, another prototype is developed from it according
to the fourfold procedure outlined above.
The preceding steps are iterated until the customer is satisfied that the refined
prototype represents the final product desired.
15
PROCESS MODELS USED WITH JUSTIFICATION SDLC MODEL:
The six stages of the SDLC are designed to build on one another, taking outputs
from the previous stage, adding additional effort, and producing results that
leverage the previous effort and are directly traceable to the previous stages.
During each stage, additional information is gathered or developed, combined
with the inputs, and used to produce the stage deliverables. It is important to
not that the additional information is restricted in scope, new ideas that would
take the project in directions not anticipated by the initial set of high-level
requirements or features that are out-of-scope are preserved for later
consideration.
16
Too many software development efforts go awry when development team and
customer personnel get caught up in the possibilities of automation. Instead of
focusing on high priority features, the team can become mired in a sea of nice to
have features that are not essential to solve the problem, but in themselves are
highly attractive. This is the root cause of large percentage of failed and or
abandoned development efforts and is the primary reason the development team
utilizes the iterative model.
To provide flexibility to the users, the interfaces have been developed that are
accessible through a browser. The GUI’S at the top level have categorized as
The ‘operational or generic user interface’ helps the end users of the system in
transactions through the existing data and required services. The operational user
interface also helps the ordinary users in managing their own information in a
customized manner as per the included.
The feasibility of the project is analyzed in this phase and business proposal is
put forth with a very general plan for the project and some cost estimates.
During system analysis the feasibility study of the proposed system is to be
carried out. This is to ensure that the proposed system is not a burden to the
company.For feasibility analysis, some understanding of the major requirements
for the system is essential.
17
Three key considerations involved in the feasibility analysis are
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
1. ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have
onthe organization. The amount of fund that the company can pour into the
research anddevelopment of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
2. TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand
on the available technical resources. This will lead to high demands on the
available technicalresources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.
3. 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 feel 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 that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
18
3.4. EXISTING SYSTEM
DRAWBACKS:
2. Detection Risks:
Despite the covert nature of steganography, there is always a risk that advanced
detection techniques, such as statistical analysis or steganalysis tools, can
identify hidden data. Once detected, the covert data can be compromised.
3. Security Vulnerabilities:
During the process of embedding data into an image, there is a risk of altering
the image's integrity, which can inadvertently degrade the hidden data.
Additionally, if the image undergoes compression or editing, the embedded
data might get corrupted or lost.
19
5. Compatibility Issues:
Not all image formats or software support steganography equally well. Some
formats are more prone to compression, which can strip away the hidden data.
Compatibility issues can arise when transferring or processing steganographic
images across different platforms or applications.
The use of steganography can raise legal and ethical issues, particularly if it is
used to hide malicious content or bypass security measures. There may be legal
ramifications for using steganography to conceal illicit activities or sensitive
information without proper authorization.
This proposed system provides the user with two options encrypt and decrypt
the data, in encryption the secret information is hiding in with image file, and
on the other side the decryption is getting the hidden information from the stego
image file, and also the user can show the image size after and before the
encryption.
The processes of encryption and decryption of the data file consists of:
20
Proposing an approach for hiding the data within an image using a
steganographic algorithm which provides better accuracy and quality of hiding.
ADVANTAGES:
1. Inconspicuous Communication:
Steganography allows for the covert embedding of data within images, making
it difficult to detect the presence of hidden information. This inconspicuous
nature makes it an effective method for secret communication.
2. Enhanced Security:
4. Privacy Preservation:
By hiding data within images, steganography helps preserve the privacy of the
information being communicated. It can protect sensitive data from being
exposed or intercepted by unauthorized parties.
5. Resilience to Attacks:
7. Easy Implementation:
22
Design constraints include minimal impact on the visual quality of images and
support for various image formats like PNG and JPEG. Assumptions are that
users have basic knowledge of file handling, and the software relies on stable
libraries for image processing and encryption. Functional requirements include
allowing users to select an image file, input a secret message, embed the
message using LSB, encrypt the message if desired, and extract the hidden
message. Performance requirements state that embedding and extraction should
complete within 10 seconds for standard image sizes, and the application
should handle images up to 10 MB efficiently. Usability requirements ensure
the GUI is intuitive, with clear instructions and feedback. Security
requirements dictate the use of AES encryption if selected, and ensure no data
leakage during processes. Interface requirements include a user interface for
file selection, text input, and progress indicators. Reliability requirements
ensure the system handles errors gracefully and maintains data integrity. Other
nonfunctional requirements include optimizing performance, securing sensitive
data, maintaining modular and well-documented code, and ensuring portability
across operating systems.
1. Embedding Process
24
2. Extraction Process
Extraction is the process of retrieving the hidden message from the stego-object
without altering the cover medium. This is done using specific extraction
techniques and algorithms Stego-Object Identification: Identify the type of
stego-object (e.g., image, audio file) that contains the hidden message.
25
3.6.3. REQUIREMENT LOOKUP TABLE
Requirement Description
Image Formats Common formats include BMP, PNG, and
JPEG. BMP and PNG are preferred due to
lossless compression.
Embedding Techniques LSB (Least Significant Bit), DCT (Discrete
Cosine Transform), DWT (Discrete Wavelet
Transform), PVD (Pixel Value Differencing).
Capacity The amount of data that can be hidden depends
on the image size and format. Typically
measured in bits per pixel (bpp).
Imperceptibility The embedded data should not be noticeable to
the human eye. Evaluate using PSNR (Peak
Signal-to-Noise Ratio).
Robustness The ability to withstand image
manipulation like cropping,
resizing, and compression.
All function must be works well then system will be a high quality.
HARDWARE REQUIREMENTS:
RAM : 8 GB or more
27
4. SYSTEM DESIGN
4.1. INTRODUCTION
4.2. NORMALIZATION
28
Normal Forms
These are the rules for structuring relations that eliminate anomalies.
A relation is said to be in first normal form if the values in the relation are
atomic for every attribute in the relation. By this we mean simply that no
attribute value can be a set of values or, as it is sometimes expressed, a
repeating group.
Transitive Dependency:
29
4.3. DATA BASE TABLES
Stakeholder Description
User That have major controlling of the whole
systems process and able to access or use
all modules of the application.
Choose an image: Select the picture, open the image, the image review.
Processing image: Typing image in the image box pressing the button for
thetreatment process
30
Actors User
Description The user wants to hide image in another image file
Data Cover image, Image to covered (Message)
Response 1.Select the Embed from the tabs.
2.Select the algorithm type.
3. Select the cover file by click browse until the open file dialog "Choose a
Cover" file appears.
4. From the "Choose a Cover File" dialog choose the cover file and click
open.
5. Select the embed file by click browse until the open file dialog "Choose a
File To Embed" appear.
6. From the " Choose a File To Embed " dialog choose the embed file and
click open.
7. Select the output file by click browse until the save file dialog "Save as .."
appear.
8. Select the path where you want to save the file and type the file name then
click save.
9. Finally click on the embed button to hiding the embed file information
inside the cover file.
10. After the hiding data, message box will appear to tell user the hiding
operation is successfully.
Comments In case the cover image can’t hide the image that user trying to hide the system
will show alert message to the user.
Stimuli Start hiding process by clicking on Embed button.
Figure 4-1: Database for – Embedding process
31
Actors User
Description The user wants to extract image from stego-image file
Data Stego-Image
Response To start extracting a file you must the following steps:
1.Select the Extract from the tabs.
2. Select the algorithm type.
3. Select the cover file by click browse until the open file dialog "Choose a
Cover" file appears.
4. From the "Choose a Cover File" dialog choose the cover file and click
open.
5. Select the output file by click browse until the save file dialog "Save as .."
appear.
6. Select the path where you want to save the file and type the file name then
click save.
9.Finally click on the extract button to extracting the embed file information.
10.After the extracting data, message box will appear to tell user the
extracting operation is successfully.
Comments The system will show message after the extracting process to let the user know
that the process is end.
Stimuli Start hiding process by clicking on Extract button.
Figure 4-2: Database for– Extracting process
32
4.5. UML DIAGRAMS:
33
Figure 4-4: Use case diagram
2. Class Diagram
A class diagram is a picture for describing generic descriptions of possible
systems. Class diagrams and collaboration diagrams are alternate
representations of object models. Class diagrams contain classes and object
diagrams contain objects, but it is possible to mix classes and objects when
dealing with various kinds of metadata, so the separation is not rigid.
Class diagrams are more prevalent than object diagrams. Normally you will
build class diagrams plus occasional object diagrams illustrating complicated
data structures or message-passing structures.
34
3. BEHAVIORAL VIEW
As we mentioned previously that activity diagram, and sequence diagram
provide the behavioral view for our project. Behavioral diagrams are used to
describe the interactionbetween the actors and the system. All the activities that
are performed by the actors and the system are introduced in some way.
4. Sequence Diagram
A sequence diagram shows object interactions arranged in time sequence. It
depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality
of the scenario.
35
5. ActivityDiagram
Activity diagrams are graphical representations of workflows of stepwise
activities and actions with support for choice, iteration and concurrency. In the
Unified Modelling Language, activity diagrams can be used to describe the
business and operational step-by- step workflows of components in a system. An
activity diagram shows the overall flow of
36
6. Data Flow Diagram
A data flow diagram (DFD) is a graphical representation of the "flow" of data
through an information system, modeling its process aspects. Often they are a
preliminary step used to create an overview of the system which can later
be elaborated. DFDs can also be used for the visualization of data processing
(structured design).
A DFD shows what kinds of information will be input to and output from the
system, where the data will come from and go to, and where the data will be
stored.
It does not show information about the timing of processes, or information
about whetherprocesses will operate in sequence or in parallel.
37
5. IMPLIMENTATION
5.1 INTRODUCTION
Implementation refers to the process of putting the planned activities into action
and executing the project plan. It involves transforming the ideas, designs, or
strategies into tangible outcomes or deliverables. Implementation is a critical
phase where the project team works on executing the tasks, processes, or
activities necessary to achieve the project's objectives.
Task Execution:
Resource Management:
38
Stakeholder Engagement: Engaging with stakeholders to provide updates
on progress and gather feedback on implementation milestones.
Risk Management:
Stakeholder Engagement:
Quality Assurance:
39
Training and Knowledge Transfer:
40
To start hiding a file you must the following steps:
5. Select the embed file by click browse until the open file dialog "Choose a File
ToEmbed" appear.
6. From the " Choose a File To Embed " dialog choose the embed file and click
open.
7. Select the output file by click browse until the save file dialog "Save as .."
appear.
8. Select the path where you want to save the file and type the file name then
click save.
9. Finally click on the embed button to hiding the embed file information inside
the coverfile.
10.After the hiding data, message box will appear to tell user the hiding operation
issuccessfully.
41
Figure 5-2: Extract File - Decryption Phase
42
Figure 5-3:Choose a cover file dialog
From this screen you must select the cover file by choose the right path and select the
fileand then click open button.
From this screen you must select the embed file by choose the right path and select the
fileand then click open button.
43
Figure 5-5: Save as dialog
From this screen you must select the right path and type the file name to save the
file inthe selected path then click save button.
Select encryption type message box to notify the user of select the encryption type
fromthe list.
44
Figure 5-7: Decrypt file successfully message
Successfully hide file message box to notify the user of the extract operation is
successfully.
Successfully hide file message box to notify the user of the embed operation is
successfully.
45
6. SYSTEM TESTING
6.1 INTRODUCTION
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a
way to check the functionality of components, sub assemblies, assemblies and/or
a finished product It is the process of exercising software with the intent of
ensuring that the Software system meets its requirements and user expectations
and does not fail in an unacceptable manner. There are various types of test.
Each test type addresses a specific testing requirement.
46
In practice, the whole set of test cases is considered as infinite, therefore
theoretically there are too many test cases even for the simplest programs. In this
case, testing could require months and months to execute. So, how to select the
most proper set of test cases? In practice, various techniques are used for that,
and some of them are correlated with risk analysis, while others with test
engineering expertise.
Testing is an activity performed for evaluating software quality and for improving
it. Hence, the goal of testing is systematical detection of different classes of errors
(error can be defined as a human action that produces an incorrect result) in a
minimum amount of time and with a minimum amount of effort.
47
There are different types of approaches for testing a .NET framework based
application. The types of testing are:
1. Unit testing
2. Validation testing
3. Integration testing
4. User acceptance testing
5. Output testing
6. Black box and white box testing.
1. Unit Testing
Unit testing is the approach of taking a small part of testable application and
executing it according to the requirements and testing the application behavior.
Unit testing is used for detecting the defects that occur during execution (MSDN,
2010).
When an algorithm is executed, the integrity should be maintained by the data
structures. Unit testing is made use for testing the functionality of each algorithm
during execution.
Unit testing can be used in the bottom up test approach which makes the
integration test much easier. Unit testing reduces the ambiguity in the units. Unit
testing uses regression testing, which makes the execution simpler. Using
regression testing, the fault can be easilyidentified and fixed.
In this project, the purposed system of hiding the data using different phases
likes encryption, decryption, etc. So, for getting the correct output all the
functions that are used are executed and tested at least once making sure that all
the control paths, error handling and control structures are in proper manner.
Unit testing has its applications for extreme programming, testing unit frame
works and good support for language level unit testing.
2. Validation Testing
Validation is the process of finding whether the product is built correct or not. The
software application or product that is designed should fulfill the requirements
and reach theexpectations set by the user. Validation is done while developing or
48
at the final stage of development process to determine whether it is satisfies the
specified requirements of user.
Using validation test the developer can qualify the design, performance and its
operations. Also the accuracy, repeatability, selectivity, Limit of detection and
quantification can be specified using Validation testing (MSDN, 2010).
3. Output Testing
After completion of validation testing the next process is output testing. Output
testing is the process of testing the output generated by the application for the
specified inputs. This process checks weather the application is producing the
required output as per the user's specification or not.
The output testing can be done by considering mainly by updating the test plans,
the behavior of application with different type of inputs and with produced
outputs, making the best use of the operating capacity and considering the
recommendations for fixing the issues(MSDN, 2010).
4. Integration Testing
Integration testing is an extension to unit testing, after unit testing the units are
integrated with the logical program. The integration testing is the process of
examining the working behavior of the particular unit after embedding with
program. This procedure identifies the problems that occur during the
combination of units.
The integration testing can be commonly done in three approaches:
1. Top-down approach
2. Bottom-up approach
3. Umbrella approach
1. Top-down approach:
In the top-down approach the highest level module should be considered first and
integrated. This approach makes the high level logic and data flow to test first and
reduce the necessityof drivers.
One disadvantage with top-down approach is its poor support and functionality is
limited (MSDN, 2010).
49
2. Bottom-up approach:
The third approach is umbrella approach, which makes use of both the top-
bottom and bottom - top approaches. This method tests the integration of units
along with its functional data and control paths. After using the top - bottom and
bottom-top approaches, the outputsare integrated in top - bottom manner.
The advantage of this approach is that it provides good support for the release of
limited functionality as well as minimizing the needs of drivers and hubs. The
main disadvantage is that it is less systematic than the other two approaches
(MSDN,2010).
Types of Testing
Black box or functional testing
White box testing or structural testing
50
Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document,
such as specification or requirements document, such as specification or
requirements document. It is a testing in which the software under test is
treated, as a black box .you cannot “see” into it. The test provides inputs and
responds to outputs without considering how the software works.
input Output
The Black box is an imaginary box that hides its internal workings.
White Box Testing
White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at
least its purpose. It is purpose.
It is used to test areas that cannot be reached from a black box level.Two types
of path testing are statement testing coverage and branch testing coverage.
51
input
output
WORKING
Test Plan:
Testing process starts with a test plan. This plan identifies all the testing related
activities that must be performed and specifies the schedules, allocates the
resources, and specified guidelines for testing. During the testing of the unit the
specified test cases are executed and the actual result compared with expected
output. The final output of the testing phase is the test report and the error
report.
6.3TEST CASES
52
7. TECHNOLOGY DESCRIPTION AND CODING
1. ExtensiveLibraries
Python downloads with an extensive library and it contain code for various
purposes like regular expressions, documentation-generation, unit-testing,
web browsers, threading, databases, CGI, email, image manipulation, and
more. So, we don’t have to write the complete code for thatmanually.
53
2. Extensible
4. Improved Productivity
Since Python forms the basis of new platforms like Raspberry Pi, it finds the
future bright for the Internet Of Things. This is a way to connect the
language with the real world.
6. Simple and Easy
When working with Java, you may have to create a class to print ‘Hello
World’. But in Python, just a print statement will do. It is also quite easy to
learn, understand, and code. This is why when people pick up Python,
they have a hard time adjusting to other more verbose languages likeJava.
7. Readable
54
9. Free andOpen-Source
Like we said earlier, Python is freely available. But not only can you
downloadPython for free, but you can also download its source code, make
changes to it, and even distribute it. It downloads with an extensive
collection of libraries to help you with yourtasks.
10. Portable
When you code your project in a language like C++, you may need to make
some changes to it if you want to run it on another platform. But it isn’t the
same with Python. Here, you need to code only once, and you can run it
anywhere. This is called Write Once Run Anywhere (WORA). However,
you need to be careful enough not to include any system- dependent
features.
11. Interpreted
1. Less Coding
Almost all of the tasks done in Python requires less coding when the same
task is done in other languages. Python also has an awesome standard
library support, so you don’t have to search for any third-party libraries to
get your job done. This is the reason that many people suggest learning
Python tobeginners.
2. Affordable
55
3. Python is for Everyone
Python code can run on any machine whether it is Linux, Mac or Windows.
Programmers need to learn different languages for different jobs but with
Python, you can professionally build web apps, perform data analysis and
machine learning, automate things, do web scraping and also build games
and powerful visualizations. It is an all-rounder programming language.
Disadvantages of Python
So far, we’ve seen why Python is a great choice for your project. But if you
choose it, you should be aware of its consequences as well. Let’s now see
the downsides of choosing Python over another language.
1. SpeedLimitations
We have seen that Python code is executed line by line. But since Pythonis
interpreted, it often results in slow execution. This, however, isn’t a
problem unless speed is a focal point for the project. In other words, unless
high speed is a requirement, the benefits offered by Python are enough to
distract us from its speed limitations.
2. Weak in Mobile Computing andBrowsers
While it serves as an excellent server-side language, Python is much rarely
seen on the client-side. Besides that, it is rarely ever used to implement
smartphone-based applications. One such application is calledCarbonnelle.
The reason it is not so famous despite the existence of Brython is that it isn’t
that secure.
3. DesignRestrictions
As you know, Python is dynamically-typed. This means that you don’t
need to declare the type of variable while writing the code. It uses duck-
typing. But wait, what’s that? Well, it just means that if it looks like a duck,
it must be a duck. While this is easy on the programmers during coding, it
can raise run-timeerrors.
4. Underdeveloped Database AccessLayers
Compared to more widely used technologies like JDBC (Java DataBase
Connectivity) and ODBC (Open DataBase Connectivity), Python’s
database access layers are a bit underdeveloped. Consequently, it is less
often applied in hugeenterprises.
56
5. Simple
No, we’re not kidding. Python’s simplicity can indeed be a problem. Take
my example. I don’t do Java, I’m more of a Python person. To me, its syntax
is so simple that the verbosity of Java code seemsunnecessary.This was all
about the Advantages and Disadvantages of Python Programming
Language.
Machine Learning
Before we take a look at the details of various machine learning methods,
let's start by looking at what machine learning is, and what it isn't. Machine
learning is often categorized as a subfield of artificial intelligence, but I find
that categorization can often be misleading at first brush. The study of
machine learning certainly arose from research in this context, but in the
data science application of machine learning methods, it's more helpful to
think of machine learning as a means of building models ofdata.
Fundamentally, machine learning involves building mathematical models to
help understand data. "Learning" enters the fray when we give these
models tunable parameters that can be adapted to observed data; in this way
the program can be considered to be "learning" from the data. Once these
models have been fit to previously seen data, they can be used to predict and
understand aspects of newly observed data. I'll leave to the reader the more
philosophical digression regarding the extent to which this type of
mathematical, model- based "learning" is similar to the "learning" exhibited
by the human brain.Understanding the problem setting in machine learning
is essential to using these tools effectively, and so we will start with some
broad categorizations of the types of approaches we'll discusshere.
57
Categories Of Machine Leaning
At the most fundamental level, machine learning can be categorized into
two main types: supervised learning and unsupervised learning.
Supervised learning involves somehow modeling the relationship between
measured features of data and some label associated with the data; once this model
is determined, it can be used to apply labels to new, unknown data. This is further
subdivided into classification tasks and regression tasks: in classification,the
labelsare discrete categories, while in regression, the labels are continuous
quantities. We will see examples of both types of supervised learning in the
following section.
Unsupervised learning involves modeling the features of a dataset without
reference to any label, and is often described as "letting the dataset speak for
itself." These models include tasks such as clustering and dimensionality reduction.
Clustering algorithms identify distinct groups of data, while dimensionality
reduction algorithms search for more succinct representations of the data. We will
see examples of both types of unsupervised learning in the followingsection.
Need for Machine Learning
Human beings, at this moment, are the most intelligent and advanced
species on earth because they can think, evaluate and solve complex
problems. On the other side, AI is still in its initial stage and haven’t
surpassed human intelligence in many aspects. Then the question is that
what is the need to make machine learn? The most suitable reason for doing
this is, “to make decisions, based on data, with efficiency andscale”.
Lately, organizations are investing heavily in newer technologies like
Artificial Intelligence, Machine Learning and Deep Learning to get the key
information from data to perform several real-world tasks and solve
problems. We can call it data-driven decisions taken by machines,
particularly to automate the process. These data-driven decisions can be
used, instead of using programing logic, in the problems that cannot be
programmed inherently. The fact is that we can’t do without human
intelligence, but other aspect is that we all need to solve real-world
problems with efficiency at a hugescale.
58
Challenges in Machines Learning
While Machine Learning is rapidly evolving, making significant strides with
cyber security and autonomous cars, this segment of AI as whole still has a
long way to go. The reason behind is that ML has not been able to overcome
number of challenges. The challenges that ML is facing currently are −
• Quality of data − Having good-quality data for ML algorithms is one of
the biggest challenges. Use of low-quality data leads to the problems
related to data preprocessing and featureextraction.
• Time-Consuming task − Another challenge faced by ML models is the
consumption of time especially for data acquisition, feature extraction
andretrieval.
• Lack of specialist persons − As ML technology is still in its infancy
stage, availability
of expert resources is a tough job.
• No clear objective for formulating business problems − Having no
clear objective and well-defined goal for business problems is another key
challenge for ML because this technology is not that matureyet.
• Sentimentanalysis
• Speechsynthesis
• Speechrecognition
• Customersegmentation
• Objectrecognition
• Frauddetection
• Fraudprevention
But there is still a lot of doubt about what exactly is Machine Learning and
how to start learning it? So this article deals with the Basics of Machine
Learning and also the path you can follow to eventually become a full-
fledged Machine Learning Engineer. Now let’s get started!!!
60
Step 1 – Understand the Prerequisites
In case you are a genius, you could start ML directly but normally, there are
some prerequisites that you need to know which include Linear Algebra,
Multivariate Calculus, Statistics, and Python. And if you don’t know these,
never fear! You don’t need a Ph.D. degree in these topics to get started but
you do need a basicunderstanding.
1. Learn Linear Algebra and Multivariate Calculus
Data plays a huge role in Machine Learning. In fact, around 80% of your
time as an ML expert will be spent collecting and cleaning data. And
statistics is a field that handles the collection, analysis, and presentation of
data. So it is no surprise that you need to learn it!!! Some of the key concepts
in statistics that are important are Statistical Significance, Probability
Distributions, Hypothesis Testing, Regression, etc. Also, Bayesian Thinking
is also a very important part of ML which deals with various concepts like
Conditional Probability, Priors, and Posteriors, Maximum Likelihood, etc.
3. LearnPython
2. Types of MachineLearning
Supervised Learning – This involves learning from a training dataset with
labeled data using classification and regression models. This learning
process continues until the required level of performance isachieved.
Unsupervised Learning – This involves using unlabelled data and then
finding the underlying structure in the data in order to learn more and more
about the data itself using factor and cluster analysismodels.
Semi-supervised Learning – This involves using unlabelled data like
Unsupervised Learning with a small amount of labeled data. Using labeled
data vastly increases the learning accuracy and is also more cost-effective
than Supervised Learning.
62
Reinforcement Learning – This involves learning optimal actions through
trial and error. So the next action is decided by learning behaviors that are
based on the current state and that will maximize the reward in the future.
63
Disadvantages of Machine Learning
1. DataAcquisition
Machine Learning requires massive data sets to train on, and these should be
inclusive/unbiased, and of good quality. There can also be times where they
must wait for new data to be generated.
2. Time andResources
ML needs enough time to let the algorithms learn and develop enough to
fulfill their purpose with a considerable amount of accuracy and relevancy.
It also needs massive resources to function. This can mean additional
requirements of computer.
3. Interpretation ofResults
The division of two integers returns a float instead of an integer. "//" can
be used
Before you start with the installation process of Python.First, you need to know
about your System Requirements. Based on your system type i.e. operating
system and based processor, you must download the python version. My
system type is a Windows 64-bit operating system. So the steps below are to
install python version 3.7.4 on Windows 7 device or to install Python 3.
Download the Python Cheat shee there.The steps on how to install Python on
Windows10,8 and 7 are divided into 4 parts to help understand better.
65
Download the Correct version into the system
Step 1: Go to the official site to download and install python using Google
Chrome or any other web browser. OR Click on the following link:
https://www.python.org
Now, check for the latest and the correct version for your operating system.
66
Step 3: You can either select the Download Python for windows 3.7.4
button in Yellow Color or you can scroll further down and click on
download with respective to their version. Here, we are downloading the
most recent python version for windows3.7.4
Step 4: Scroll down the page until you find the Files option.
Step 5: Here you see a different version of python along with the operating
system.
67
To download Windows 32-bit python, you can select any one from the three
options: Windows x86 embeddable zip file, Windows x86 executable
installer or Windows x86 web-basedinstaller.
To download Windows 64-bit python, you can select any one from the three
options: Windows x86-64 embeddable zip file, Windows x86-64 executable
installer or Windows x86-64 web-basedinstaller.
Here we will install Windows x86-64 web-based installer. Here your first part
regarding which version of python is to be downloaded is completed. Now
we move ahead with the second part in installing python i.e. Installation
Note: To know the changes or updates that are made in the version you can
click on the Release Note Option.
Installation of Python
Step 2: Before you click on Install Now, Make sure to put a tick on Add
Python 3.7 to PATH.
68
Step 3: Click on Install NOW After the installation is successful. Click on
Close.
With these above three steps on python installation, you have successfully and
correctly installed Python. Now is the time to verify the installation.
Note: The installation process might take a couple of minutes.
69
Verify the Python Installation
Step 4: Let us test whether the python is correctly installed. Type python –V
and press Enter.
Note: If you have any of the earlier versions of Python already installed. You must
first uninstall the earlier version and then install the new one.
Check how the Python IDLE works
Step 1: Click on Start
70
Step 2: In the Windows Run command, type “python idle”.
Step 3: Click on IDLE (Python 3.7 64-bit) and launch the program
Step 4: To go ahead with working in IDLE you must first save the file. Click on File
>Click on Save
Step 5: Name the file and save as type should be Python files. Click on SAVE. Here
I have named the files as Hey World.
Step 6: Now for e.g. enter print
71
7.2. SAMPLE CODE:
1. EMBED FILE CODING
#region Embedded the file into the cover by using Hiding methos
public static Bitmap EncryptLayer(Bitmap OriginalBitmapPicture, long
startPosition, long endPosition, bool blnHideFileNameData, long
lngFileNameLength,byte[] BytesOfHiddenFileData, string fileName, long
lngfileSize)
{
// Get the height and width of the original bitmap picture
int height = OriginalBitmapPicture.Height;
int width = OriginalBitmapPicture.Width;
// Declare the variables i, j to use them for get the pixels of theint i = 0, j =
imag
e 0;
// ArrStegoData to store the binary value of every byte of the char ofthe
file that we want to hide
bool[] ArrStegoData = new bool[8];
ArrOfBlueByte;bool
blnCheckIfFinishedHidingTheFileName =
false;
72
// Check if hide the file name data are stored or not - if it hidedthen
the value must be false
// else if the value is true then start hidding the file name dataif
(blnHideFileNameData)
{
int
intFileNameCharIndex =
0;int
intFileDataCharIndex =
0;
if (intFileNameCharIndex == lngFileNameLength) //
finishedhiding the file information
{
blnCheckIfFinishedHidingTheFileName = true;
}
if (blnCheckIfFinishedHidingTheFileName == false)
{
73
// Convert the bytes of the RGB colors to binary values
ConvertByteToBoolean(ArrOfRedByte, ref
blnArrOfRedByte);
ConvertByteToBoolean(ArrOfGreenByte,
blnArrOfGreenByte
refConvertByteToBoolean(ArrOfBlueByte,
);
ref
blnArrOfBlueByte);
if (j % 3 == 0)
{
blnArrOfRedByte[LSB] = ArrStegoData[0];
blnArrOfGreenByte[LSB] = ArrStegoData[1];
blnArrOfBlueByte[LSB] = ArrStegoData[2];
}
else if (j % 3 == 1)
{
blnArrOfRedByte[LSB] = ArrStegoData[3];
blnArrOfGreenByte[LSB] = ArrStegoData[4];
blnArrOfBlueByte[LSB] = ArrStegoData[5];
}
else
{
blnArrOfRedByte[LSB] = ArrStegoData[6];
Color newPixelColor =
Color.FromArgb((int)ConvertBooleanToByte(blnArrOfRedByte),
(int)ConvertBooleanToByte(blnArrOfGreenByte),
(int)ConvertBooleanToByte(blnArrOfBlueByte));
StegoBitmapPicture.SetPixel(j, i, newPixelColor);
}
else
{
if (intFileDataCharIndex ==
BytesOfHiddenFileData.Length) // finished hiding the file information
{
goto endPosition;
}
ConvertByteToBoolean((byte)BytesOfHiddenFileData[intFileDataCharIndex], ref
ArrStegoData);
pixel = OriginalBitmapPicture.GetPixel(j, i);
74
ArrOfRedByte = pixel.R;
ArrOfGreenByte = pixel.G;
ArrOfBlueByte = pixel.B;
ConvertByteToBoolean(ArrOfRedByte, ref
blnArrOfRedByte);
ConvertByteToBoolean(ArrOfGreenByte,
blnArrOfGreenByte
refConvertByteToBoolean(ArrOfBlueByte,
);
ref
blnArrOfBlueByte);
if (j % 3 == 0)
{
blnArrOfRedByte[LSB] = ArrStegoData[0];
blnArrOfGreenByte[LSB] = ArrStegoData[1];
blnArrOfBlueByte[LSB] = ArrStegoData[2];
}
else if (j % 3 == 1)
{
blnArrOfRedByte[LSB] = ArrStegoData[3];
blnArrOfGreenByte[LSB] = ArrStegoData[4];
blnArrOfBlueByte[LSB] = ArrStegoData[5];
}
else
{
blnArrOfRedByte[LSB] = ArrStegoData[6];
blnArrOfGreenByte[LSB] = ArrStegoData[7];
intFileDataCharIndex++;
}
Color newPixelColor =
Color.FromArgb((int)ConvertBooleanToByte(blnArrOfRedByte),
(int)ConvertBooleanToByte(blnArrOfGreenByte),
(int)ConvertBooleanToByte(blnArrOfBlueByte));
StegoBitmapPicture.SetPixel(j, i, newPixelColor);
}
}
}
endPosition:
//int initm = j;
return StegoBitmapPicture;
}
#endregion
76
2. EXTRACT FILE CODING
#region Get the embeded file from the cover file by using the unhiding method
public static void DecryptLayer(int width, int height, Bitmap
StegoBitmapPicture, string strOutputFileName)
{
int i, j = 0;
// Get the Stored file name size that we saved in the encryption on the
pixel (width - 2, height - 1)
pixel = StegoBitmapPicture.GetPixel(width - 2, height -
1);long fNameSize = pixel.R + pixel.G * 100 + pixel.B *
10000;
byte[] res = new
byte[fSize];string
resFName = "";
byte temp;
int
intFileNameCharIndex
= 0;int
intFileDataCharIndex =
0;
bool blnCheckIfFinishedHidingTheFileName
= false;bool
blnCheckIfFinishedHidingTheFileData =
77
false;
//Read file name:
for (i = 0; i < height; i++)
for (j = 0; j < width;
j++)
{
pixel = StegoBitmapPicture.GetPixel(j, i);
if (intFileNameCharIndex == fNameSize)
{
blnCheckIfFinishedHidingTheFileName = true;
}
if (blnCheckIfFinishedHidingTheFileName == false)
{
ArrOfRedByte =
pixel.R;
ArrOfGreenByte =
pixel.G;
ArrOfBlueByte =
pixel.B;
78
else
{
ArrStegoData[6] =
blnArrOfRedByte[7]; ArrStegoData[7]
= blnArrOfGreenByte[7]; temp =
ConvertBooleanToByte(ArrStegoData)
;resFName += (char)temp;
intFileNameCharIndex++;
}
}
else
{
if (intFileDataCharIndex == fSize) // finished hiding the
file information
{
blnCheckIfFinishedHidingTheFileName =
true;goto endPosition;
}
if (blnCheckIfFinishedHidingTheFileData == false)
{
pixel = StegoBitmapPicture.GetPixel(j, i);
ArrOfRedByte =
pixel.R;
ArrOfGreenByte =
pixel.G;
ArrOfBlueByte =
pixel.B;
ConvertByteToBoolean(ArrOfRedByte, ref
blnArrOfRedByte);
ConvertByteToBoolean(ArrOfGreenByte,
blnArrOfGreenByte
refConvertByteToBoolean(ArrOfBlueByte,
);
ref
blnArrOfBlueByte);
79
if (j % 3 == 0)
{
ArrStegoData[0] = blnArrOfRedByte[7];
ArrStegoData[1] =
blnArrOfGreenByte[7];ArrStegoData[2] =
blnArrOfBlueByte[7];
}
else if (j % 3 == 1)
{
ArrStegoData[3] = blnArrOfRedByte[7];
ArrStegoData[4] =
blnArrOfGreenByte[7];ArrStegoData[5] =
blnArrOfBlueByte[7];
}
else
{
ArrStegoData[6] =
blnArrOfRedByte[7]; ArrStegoData[7]
= blnArrOfGreenByte[7]; temp =
ConvertBooleanToByte(ArrStegoData)
;res[intFileDataCharIndex] = temp;
intFileDataCharIndex++;
}
}
}
}
endPosition:
}
#endregion
80
8. CONCLUSION AND FUTURE ENHANCEMENT
81
9. BIBLIOGRAPHY
9.1 REFERENCES
1. Rosziati Ibrahim and Teoh Suk Kuan, Steganography Imaging
System (SIS): Hiding Secret Message inside an Image
http://www.iaeng.org/publication/WCECS2010/WCECS2010_pp1
44-148.pdf
2. Zaidoon Kh. AL-Ani, A.A.Zaidan, B.B.Zaidan and Hamdan.O.Alanazi, Overview:
Main Fundamentals for Steganography
3. http://arxiv.org/ftp/arxiv/papers/1003/1003.4086.pdf
82
Techniques
http://agile.csc.ncsu.edu/SEMaterials/Black
Box.pdf
13. Jovanović, Irena , Software Testing Methods and
Techniques,
http://www.internetjournals.net/journals/tir/2009/January
/Paper%2006.pdf
14. Hong Cai1 and Sos S.Agaian2, BREAKING F5 IN COLOR IMAGES WITH
LOW EMBEDDING RATES
83