You are on page 1of 5

http://www.c-sharpcorner.

com/UploadFile/Test_Divya/3895/]\\\

the software must be tested to determine if the requirements of the application are met.
There are several different types of tests used throughout the
development process. The two main types of testing are white box
and black box testing. White box test cases are used to test specific
paths through the code. At decision points you can test the
boundaries of the decision (boundary testing) and the partitions of
the decision (partition testing). Black box tests treat the program like a black box; what
happens in the program is invisible and unimportant to the user. Black box test cases only
look at specific inputs and outputs of an application.

There are several different levels of testing that are done throughout the software
development process. These are outlined in the table below:

White
or
Test Type Description
Black
Box?
Testing conducted by a customer to verify that the system meets the Black
Acceptance
acceptance criteria of the requested application. Box
White
or
Integration Tests the interaction of small modules of a software application.
Black
Box
Tests a small unit (i.e. a class) of a software application, separate from White
Unit
other units of the application. Box
Tests new functionality in a program. Regression testing is done by
White
Regression running all of the previous unit tests written for a program, if they all
Box
pass, then the new functionality is added to the code base.
Functional Black
Verifies that the entire software system satisfies the requirements.
and System Box
Black
Beta Ad-hoc, third party testing.
Box

There are several times during the software development process that testing can be done.
In the waterfall software process, testing is done after all code has been developed and
before release of the product. The spiral model has a quadrant devoted to testing. Testing
is done several times as the development "spirals in." Agile software methods advocate
test driven development (TDD), which means that test cases are written before any
coding is done. Therefore the planned tests drive the application coding forward. TDD is
most frequently done with unit tests, where a unit test is written first and then application
code is written that passes the test. With TDD all test cases are added to a repository.
When new code is added to the code base, all tests must pass to ensure that the new code
does not break the application.

Verification and validation of a software application are an important result of software


testing. Verification and validation can also be done by code inspections and reviews.
Verification determines if the product developed during a certain phase of development
meets the requirements determined in the previous phase of development. Validation
determines if a final piece of software meets the customer requirements.

Software Testing Types:

Black box testing – Internal system design is not considered in this type of testing. Tests
are based on requirements and functionality.

White box testing – This testing is based on knowledge of the internal logic of an
application’s code. Also known as Glass box Testing. Internal software and code working
should be known for this type of testing. Tests are based on coverage of code statements,
branches, paths, conditions.

Unit testing – Testing of individual software components or modules. Typically done by


the programmer and not by testers, as it requires detailed knowledge of the internal
program design and code. may require developing test driver modules or test harnesses.

Incremental integration testing – Bottom up approach for testing i.e continuous testing
of an application as new functionality is added; Application functionality and modules
should be independent enough to test separately. done by programmers or by testers.

Integration testing – Testing of integrated modules to verify combined functionality


after integration. Modules are typically code modules, individual applications, client and
server applications on a network, etc. This type of testing is especially relevant to
client/server and distributed systems.

Functional testing – This type of testing ignores the internal parts and focus on the
output is as per requirement or not. Black-box type testing geared to functional
requirements of an application.

System testing – Entire system is tested as per the requirements. Black-box type testing
that is based on overall requirements specifications, covers all combined parts of a
system.

End-to-end testing – Similar to system testing, involves testing of a complete


application environment in a situation that mimics real-world use, such as interacting
with a database, using network communications, or interacting with other hardware,
applications, or systems if appropriate.

Sanity testing - Testing to determine if a new software version is performing well


enough to accept it for a major testing effort. If application is crashing for initial use then
system is not stable enough for further testing and build or application is assigned to fix.

Regression testing – Testing the application as a whole for the modification in any
module or functionality. Difficult to cover all the system in regression testing so typically
automation tools are used for these testing types.

Acceptance testing -Normally this type of testing is done to verify if system meets the
customer specified requirements. User or customer do this testing to determine whether
to accept application.

Load testing – Its a performance testing to check system behavior under load. Testing an
application under heavy loads, such as testing of a web site under a range of loads to
determine at what point the system’s response time degrades or fails.

Stress testing – System is stressed beyond its specifications to check how and when it
fails. Performed under heavy load like putting large number beyond storage capacity,
complex database queries, continuous input to system or database load.

Performance testing – Term often used interchangeably with ‘stress’ and ‘load’ testing.
To check whether system meets performance requirements. Used different performance
and load tools to do this.

Usability testing – User-friendliness check. Application flow is tested, Can new user
understand the application easily, Proper help documented whenever user stuck at any
point. Basically system navigation is checked in this testing.

Install/uninstall testing - Tested for full, partial, or upgrade install/uninstall processes on


different operating systems under different hardware, software environment.

Recovery testing – Testing how well a system recovers from crashes, hardware failures,
or other catastrophic problems.

Security testing – Can system be penetrated by any hacking way. Testing how well the
system protects against unauthorized internal or external access. Checked if system,
database is safe from external attacks.

Compatibility testing – Testing how well software performs in a particular


hardware/software/operating system/network environment and different combination s of
above.
Comparison testing – Comparison of product strengths and weaknesses with previous
versions or other similar products.

Alpha testing – In house virtual user environment can be created for this type of testing.
Testing is done at the end of development. Still minor design changes may be made as a
result of such testing.

Beta testing – Testing typically done by end-users or others. Final testing before
releasing application for commercial purpose.

Software Testing
It is the process used to help identify the correctness, completeness, security, and quality
of developed computer software. Testing is a process of technical investigation,
performed on behalf of stakeholders, that is intended to reveal quality-related information
about the product with respect to the context in which it is intended to operate. This
includes, but is not limited to, the process of executing a program or application with the
intent of finding errors. Quality is not an absolute; it is value to some person. With that in
mind, testing can never completely establish the correctness of arbitrary computer
software; testing furnishes a criticism or comparison that compares the state and
behaviour of the product against a specification. An important point is that software
testing should be distinguished from the separate discipline of Software Quality
Assurance (SQA), which encompasses all business process areas, not just testing.

White box and black box testing are terms used to describe the point of view a test
engineer takes when designing test cases. Black box being an external view of the test
object and white box being an internal view. Software testing is partly intuitive, but
largely systematic. Good testing involves much more than just running the program a few
times to see whether it works. Thorough analysis of the program under test, backed by a
broad knowledge of testing techniques and tools are prerequisites to systematic testing.
Software Testing is the process of executing software in a controlled manner; in order to
answer the question “Does this software behave as specified?” Software testing is used in
association with Verification and Validation. Verification is the checking of or testing of
items, including software, for conformance and consistency with an associated
specification. Software testing is just one kind of verification, which also uses techniques
as reviews, inspections, walk-through. Validation is the process of checking what has
been specified is what the user actually wanted

Mobile Social Networking Sites

All of the sites listed below share a certain set of features, which are common to all mobile social
networking sites. They allow the user to create a profile, send and receive text messages via
phone or computer, and visit an on-line version of the mobile site.

Beyond that, there seems to be six rough models that the sites adhere to. The vast majority of
them offer services that overlap heavily with other sites. Almost all of them claim to be unique,
which isn’t a lie exactly… more of a bending of the truth. Most of these sites do have some
unique feature or special function that other sites don’t share, but the main function of the site is
the exact same as other services.
Conclusion
The social networking craze amongst mobile users is boosting an
adoption of mobile Internet. Mobile, in upcoming years, will become
the primary conduit of interaction with social networking sites,
benefitting the mobile device manufacturers (specifically smartphones)
and mobile carriers. The mobile carriers/manufacturers with strong
infrastructure, mobile commerce ramp-up, and respect for consumer
privacy will see the strongest growth in the long run. But smartphones
will become commodities because, in essence, it is the apps which
make the smartphone devices as popular as they are. There will be a
growth of technologies which can make mobile apps portable among
different smartphone devices. “Visiongain believes that revenue from
mobile social networking and user generated content will grow to
around $60 billion in 2012. ” Hence, covergence not only brings
innovative solutions to the market but also adds economic wealth to
the companies if utilized correctly.

Abstract
This paper presents work in progress regarding utilization of social network information
for mobile applications. Primarily a number of challenges are identified, such as how to
mine data from multiple social networks, how to integrate and consolidate social
networks, and how to manage semantic information for mobile applications. The
challenges are discussed from a semantic Web perspective using a driving scenario as
motivation.
The main objective is to enable mobile applications to benefit from semantic information
obtained from Web services, mobile devices, or the surrounding environment. The goal is
therefore to create a framework that enables integration of semantic information
(location, activity, interests, etc) with social network data (from Twitter, FaceBook,
LinkedIn, etc) to facilitate intelligent yet easy to use communication tools for individual
persons as well as groups of persons. An ultimate goal is to make complex
communication simple through utilization of semantic information and social network
data for pervasive services in mobile devices.

You might also like