Project Idea
Project Idea
Idea Description
To leverage the large volume information buried in deep web, previous work has proposed a
number of techniques and tools, including deep web understanding and integration, hidden web
Crawlers and deep web samplers. For all these approaches, the ability to crawl deep web is a key
challenge. Olston and Najork systematically present that crawling deep web has three steps:
locating deep web content sources, selecting relevant sources and extracting underlying
Content Following their statement, we discuss the two steps closely related to our work as below.
Locating deep web content sources: A recent study shows that the harvest rate of deep web is
low only 647,000 distinct web forms were found by sampling 25 million pages from the
Google index (about 2.5%) . Generic crawlers are mainly developed for characterizing deep web
and directory construction of deep web resources that do not limit search on a specific topic, but
attempt to fetch all searchable forms The Database Crawler in the Meta Querier is designed for
automatically discovering query interfaces. Database Crawler first finds root pages by an IPbased sampling, and then performs shallow crawling to crawl pages within a web server starting
from a given root page. The IP based sampling ignores the fact that one IP address may have
several virtual hosts, thus missing many websites. To overcome the drawback of IP based
Sampling in the Database Crawler, Denis et al. propose a stratified random sampling of hosts to
Characterize national deep web, using the Host graph provided by the Russian search engine
Index. I-Crawler combines pre-query and post-query approaches for classification of searchable
forms.
-Outcome Descriptive
Outcome of this project is it finds deep web pages for user search query with instant result.
-Class diagram
-Sequence diagram
Requirement Traceability
As most interested portion is whether the system is meeting its requirements or not,
for that testing should be planned so that all requirements are individually tested.
We checked the output of certain combination of inputs so that we can know
whether it gives desirable results or not. Strictly sticking to your requirements
specifications, give you the path to get desirable results from the system.
Testing Schedule
We have tested each procedure back-to-back so that errors and omissions can be
found as early as possible. Once the system has been developed fully we tested it
on other machines, which differs in configuration.
TESTING STRATEGY
There are types of testing that we implement. They are as follows:
Decide on the effort required for testing based on the usage of the
system. If the system is to be used by a large number of users,
Write test cases for invalid and unexpected as well as valid and
expected input conditions.
We have performed both Unit Testing and System Testing on WIMS to detect
and fix errors. A brief description of both is given below.
White Box Testing
White-box testing (also known as clear box testing, glass box testing,
transparent box testing, and structural testing) is a method of testing
software that tests internal structures or workings of an application, as
opposed to its functionality (i.e. black-box testing). In white-box testing an
internal perspective of the system, as well as programming skills, are used to
design test cases. The tester chooses inputs to exercise paths through the
code and determine the appropriate outputs.
While white-box testing can be applied at the unit, integration and system levels of
the software testing process, it is usually done at the unit level. It can test paths
within a unit, paths between units during integration, and between subsystems
during a systemlevel test. Though this method of test design can uncover many
errors or problems, it might not detect unimplemented parts of the specification or
missing requirements.
White-box test design techniques include:
Branch testing
Path testing
Statement coverage
Decision coverage
Overview
Basic Procedure
This is the
Specific
knowledge
of
the
application's
code/internal
structure
and
Test cases are built around specifications and requirements, i.e., what the
application is supposed to do. Test cases are generally derived from external
descriptions of the software, including specifications, requirements and
design parameters. Although the tests used are primarily functional in
nature, non-functional tests may also be used. The test designer selects both
valid and invalid inputs and determines the correct output without any
knowledge of the test object's internal structure.
Test Design Techniques
Typical black-box test design techniques include:
All-pairs testing
Equivalence partitioning
Causeeffect graph
Error guessing
Advantages
Since the tester and developer are independent of each other, testing is
balanced and unprejudiced.
Tests will be done from an end user's point of view, because the end user
should accept the system. (This testing technique is sometimes also called
Acceptance testing.)
Testing
helps
to
identify vagueness
and
contradictions
in
functional
specifications.
Disadvantages
It is difficult to identify tricky inputs if the test cases are not developed based
on specifications.
There are chances of having unidentified paths during the testing process.
Unit Testing
In computer programming, unit testing is a software testing method by
which individual units of source code, sets of one or more computer program
modules together with associated control data, usage procedures, and
operating procedures are tested to determine if they are fit for use.
Intuitively, one can view a unit as the smallest testable part of an
application. In procedural programming, a unit could be an entire module,
but it is more commonly an individual function or procedure. In objectoriented programming, a unit is often an entire interface, such as a class, but
could be an individual method. Unit tests are short code fragments created
by
programmers
or
occasionally
by
white
box
testers
during
the
development process.
Ideally, each test case is independent from the others. Substitutes such as
method stubs, mock objects, fakes, and test harnesses can be used to assist
testing a module in isolation. Unit tests are typically written and run by
software developers to ensure that code meets its design and behaves as
intended.
Benefits
The goal of unit testing is to isolate each part of the program and show that
the individual parts are correct. A unit test provides a strict, written contract
that the piece of code must satisfy. As a result, it affords several benefits.
Unit tests find problems early in the development cycle.
In test-driven development (TDD), which is frequently used in both Extreme
Programming and Scrum, unit tests are created before the code itself is
written. When the tests pass, that code is considered complete. The same
unit tests are run against that function frequently as the larger code base is
developed either as the code is changed or via an automated process with
the build. If the unit tests fail, it is considered to be a bug either in the
changed code or the tests themselves. The unit tests then allow the location
of the fault or failure to be easily traced. Since the unit tests alert the
development team of the problem before handing the code off to testers or
clients, it is still early in the development process.
Facilitates change
Unit testing allows the programmer to re factor code at a later date, and
make sure the module still works correctly. The procedure is to write test
cases for all functions and methods so that whenever a change causes a
fault, it can be quickly identified.
Readily available unit tests make it easy for the programmer to check
whether a piece of code is still working properly.
In continuous unit testing environments, through the inherent practice of
sustained maintenance, unit tests will continue to accurately reflect the
intended use of the executable and code in the face of any change.
Depending upon established development practices and unit test coverage,
up-to-the-second accuracy can be maintained.
Simplifies integration
Unit testing may reduce uncertainty in the units themselves and can be used
in a bottom-up testing style approach. By testing the parts of a program first
and then testing the sum of its parts, integration testing becomes much
easier.
An elaborate hierarchy of unit tests does not equal integration testing.
Integration with peripheral units should be included in integration tests, but
not in unit tests. Integration testing typically still relies heavily on humans
testing manually; high-level or global-scope testing can be difficult to
automate, such that manual testing often appears faster and cheaper.
Documentation
Testing will not catch every error in the program, since it cannot evaluate
every execution path in any but the most trivial programs. The same is true
for unit testing. Additionally, unit testing by definition only tests the
functionality of the units themselves. Therefore, it will not catch integration
errors or broader system-level errors (such as functions performed across
multiple units, or non-functional test areas such as performance). Unit
testing should be done in conjunction with other software testing activities,
as they can only show the presence or absence of particular errors; they
cannot prove a complete absence of errors. In order to guarantee correct
behavior for every execution path and every possible input, and ensure the
absence of errors, other techniques are required, namely the application of
formal methods to proving that a software component has no unexpected
behavior.
Integration Testing
Integration
testing
(sometimes
called
integration
and
testing,
Purpose
Big Bang
In this approach, all or most of the developed modules are coupled together
to form a complete software system or major part of the system and then
used for integration testing. The Big Bang method is very effective for saving
time in the integration testing process. However, if the test cases and their
results are not recorded properly, the entire integration process will be more
complicated and may prevent the testing team from achieving the goal of
integration testing.
A type of Big Bang Integration testing is called Usage Model testing. Usage
Model Testing can be used in both software and hardware integration testing.
The basis behind this type of integration testing is to run user-like workloads
assurance
that
product,
service,
or
system
accomplishes
its
intended
requirements. This often involves acceptance of fitness for purpose with end users
and other product stakeholders. This is often an external process.
Aspects of Validation
The most tested attributes in validation tasks may include, but are not
limited to
Selectivity/specificity
Repeatability
Reproducibility
Limit of quantification
System suitability
TEST CASE
FOR
LOGIN
Tes
t
Cas
e
Test
Conditi
Operator
Expected
Action
Result
Result
on
No.
1
Successf 1.Enter
ul
Username
Login
2.Enter
System
should display
successful
login message
Password
3.Click
Login
button
Unsucce
1.Enter
System
ssful
Username
should display
Login
2.Enter
due
to
wrong
userna
me
Password
message
invalid
username
3.Click
&
correct
Login
button
passwor
d
Unsucce
1.Enter
System
ssful
Username
should display
Login
2.Enter
due
to
Password
wrong
passwor
3.Click
Login
&
correct
usernam
e
button
Actual
message
invalid
password
Pass/
Fail
TEST CASE
FOR
REGISTRATION
DETAILS
Test
Cas
e
Test
Condition
Operato
Expected
r Action
Result
Actual
Result
No.
1
Successful
Registratio
n
Fill
all
System should
fields
display
with
summery page
Order
correct
data
Unsuccessf
Leave
System should
ul
some
display
registratio
fields
message
empty
empty field
Unsuccessf
Enter the
System should
ul
incorrec
display
message
due
to
empty
fill
fields
registration
due
to
ID
invalid
ID
incorrect
email ID
4
Unsuccessf
Enter the
System should
ul
incorrec
display
t Mobile
message
No.
invalid
registration
due
to
Mobile
No.
incorrect
Mobile No.
5
Unsuccessf
Enter
System should
ul
different
display
registration
passwor
message
due
ds
Password does
to
in
mismatch
passwor
of
ds & re-
password &
enter
re-enter
passwor
password
ds field
not match
Pass/
Fail