Subscribe by Email


Showing posts with label Categories. Show all posts
Showing posts with label Categories. Show all posts

Monday, August 12, 2013

What are different methods of broadcasting a packet?

Without broadcasting, our information theory and telecommunications does not mean anything. 
- It is broadcasting that actually makes the transfer of data possible from one point to another. 
- Broadcasting can be defined as the method of transfer of a message to a number of recipients, all at the same time. 
- Broadcasting is often considered to be a sort of high – level operation in some programs while low level operation in some other programs. 
- For example, in message passing interface, broadcasting is a high level operation whereas in broadcasting on Ethernet, it is considered to be a low level operation in networking. 

We have many kinds of routing schemes suiting for various kinds of broadcasting requirements:
  1. Anycast
  2. Broadcast
  3. Multicast
  4. Unicast
  5. Geocast
- Broadcasting is transmission of a packet to each and every device that is attached to the network. 
- However, the broadcasting is limited to transmission in the broadcast domain in practical applications. 
- Broadcasting can be contrasted with uni cast routing scheme in the sense that in uni cast, the datagrams are transmitted by one host and are received by another single host only. 
- This receiving host is identified with an IP address on the network that is unique to it. 
- All the technologies used in networking are not capable of supporting broadcasting. 

For example, the following do not have this capability:
Ø  X.25 relay
Ø  Frame relay

- The broadcast method cannot be implement with IPv6 i.e., the successor of the IPv4 (internet protocol version 4).
- This is for the avoidance of the disturbance to the nodes. 
- Also, there does not exist anything such as the internet wide broadcast. 
Therefore, this limits the scope of the broadcasting to the LAN technologies such as token ring and Ethernet since here the impact of the broadcasting performance is small.

Categories of Broadcasting Methods

The broadcasting methods can be classified in to 4 major categories as per the IEEE 802.11 standard:

1. Simple flooding method: 
- In this method the packets are rebroadcast-ed by each of the nodes.
- A message is disseminated to all the neighboring nodes by a source node in the MANET. 
- If the neighboring nodes would have received this message already, then this time the message will be dropped.
- If not, they will re-disseminate the message to their neighbors simultaneously. 
- This process continues until all the nodes have received this message. 
- Only for a MANET this method proves to be reliable that too only if the nodes have low density as well as high mobility. 
- This method has a good potential for harming the network and make it unproductive. 
- This happens so because it will cause congestion in the network thereby exhausting the power of the battery.

2. Area based broadcasting method: 
- Here, we assume a transmission distance.
- Only if sufficient coverage area is detected, the node can rebroadcast otherwise not. 
- This method can be of two types namely location based scheme and the distance based scheme.

3. Probability tested: 
- Rebroadcasting is done by the nodes depending up on the network’s topology and probabilities assigned to them. 
- This somewhat resembles the flooding algorithm with the only exception that a predetermined probability is used for rebroadcasting by the nodes.
- The transmission coverage might be shared by the multiple nodes where the network is too dense.

4. Neighborhood based broadcasting method: 
- Neighborhood method is used for maintaining a state in the neighborhood and rebroadcasting is done with the help of the info obtained from the nodes in this neighboring area. 
- There are two types of this method namely self-pruning approach and ad hoc broadcasting approach.      


Wednesday, May 30, 2012

Explain the concepts of URL manipulation?


Today in this internet savvy world, I guess almost everybody is familiar with what is an URL or uniform resource locator. 
If you see an URL, you can make out that it is nothing but a string of characters. These characters add up to mark up a reference string which points to a source from internet. A uniform resource locator was previously known as uniform resource identifier.
The URLs came in to existence in the year of 1994 along with the introduction of the World Wide Web by Sir Tim Berners – Lee along with the contributions from the internet engineering task force. 
The format of a typical URL consists of the domain names along with the file paths and the forward slashes are used to distinguish between the different file names and folders. Name of the servers are preceded by a double slash. 

Components of URL


Let us now list the components of a typical URL in the order in which they are lined up in the URL:
  1. The scheme name which is usually a protocol.
  2. The scheme is followed by a colon
  3. Two slashes
  4. Name of the domain (if any depending on the scheme).
  5. A port number
  6. CGI (common gateway scripts) scripts
  7. Query string
  8. Fragment identifier (optional)

Categories of URL


- The URLs are categorized under two categories namely relative URLs and absolute URLs. 
- The relative URLs are used whenever the references contained in the resources refer to another resource. 
- These relative URLs are often conceived from the absolute URLs. 
- The URLs locate a resource based on their primary access mechanism. 
- There are various issues related to URLs like URL normalization, URL manipulation etc. 

What is meant by URL Manipulation?


- URL manipulation is just another name for URL rewriting.
- As the term itself suggests it is all about altering the parameters of the URL.
- The URL manipulation is used for good purposes also and for bad ones also. 
- It is a technique that is usually employed by the web server administrator for convenience and is often used by the hackers for nefarious purposes. 
- The original URLs of the resources are quite complicated and complex. 
- Therefore, a purpose of this technique is also to make it easy for the user to access a web resource by providing a simple URL. 
- URL manipulation technique is used so that the user does not require cutting, copying or pasting long and arcane string of characters. 
- This technique is also employed since remembering complex URLs is a difficult task and they are quite lengthy which makes it quite a tedious task for the users to remember or store it and use. 
- Therefore, using the technique of URL manipulation they are modified in to simple and short URLs which are comparatively easy for the users to remember. 

Wrong Use of URL Manipulation
- A nefarious use of URL manipulation is to use the URL of a legitimate site or web resource without the prior permission or knowledge of the site owner or administrator to redirect the users to an illegitimate web site or web resource. 
- Such illegitimate sites then may install malicious code on the hard drive of the user’s system.
- This may also have an intended purpose of increase the traffic on the attacker’s illegitimate web site or application.
- There is a term similar to the term URL manipulation called URL poisoning. These two terms may sound similar in meaning, though they are not. 

What is URL Poisoning?


- URL poisoning is a technique that is employed to track the activities of the user on the web. 
- This technique involves the addition of an identification number to the current URL of the web browser when that particular web site is visited by the user. 
- This URL with the ID number is then used for tracking the visits of that user on the sites.


Thursday, April 19, 2012

What are different kinds of security threats?


Security vulnerabilities and security threats are one of the biggest issues of today in the field of software engineering. As more sophisticated is the today’s software is, the more critical security issues it struggles with.

Any software is bombarded with one compulsory question that how safe and secure it is? Does it have any possibilities of keeping the attackers at bay from interfering with the security of the software system or application? Has any effective strategy been designed for dealing with any possible security issues and keep sensitive data out of the reach of the attackers and strengthen the security programs of the software system or application? 

Today as the technology is advancing; it is being misused in the creation of new methods or strategies for breaking out in to the security system of a system or application. Attackers are being influenced by the chances of financial gain and are always involved with the exploitation of the various software systems and applications over the years. This article gives a glance about all such security threats that our software systems and applications face today.

How are security threats categorized?


The security threats are categorized in to many categories:

1.        Validation of input: It faces threats like:
(a)      cross site scripting
(b)      SQL injection attacks
(c)       buffer overflow
(d)      Ccnonicalization

2.        Authentication:
(a)      Brute force attack
(b)      Network eavesdropping
(c)       Dictionary attacks
(d)      Credential theft
(e)      Cookie repay

3.        Authorization:
(a)      Disclosure of confidential data
(b)      Elevation of privilege
(c)       Luring attacks
(d)      Data tempering

4.        Configuration management: It faces following threats:
(a)     Unauthorized access to interfaces
(b)      Retrieval of configuration data
(c)      Over privileged process
(d)      Lack of individual accountability

5.        Session management:
(a)      Man in the middle
(b)      Session hijacking
(c)      Session replay

6.       Sensitive information:
(a)      Network eavesdropping
(b)      Access of sensitive data in the storage
(c)       Data tempering

7.        Cryptography:
(a)     Weak encryption
(b)      Poor key management

8.        Parameter manipulation:
(a)      Form field manipulation
(b)      Cookie manipulation
(c)      Query string manipulation
(d)      HTTP header manipulation

9.        Exception management:
(a)     Denial of service
(b)     Information disclosure

10.     Auditing and logging:
(a)      User denial for performing an operation
(b)      Exploitation of an application without trace
(c)      Covering of the attacks by the attacker

Usually security is often either thought of as an operational IT issue that is concentrated up on building defending systems or strategies for the softwares to protect them from the malicious security breaches and attackers or as an issue concerned with the protection of the personal, critical and sensitive data.  

Importance of Security


- Lack of security is what makes a software vulnerable to such issues.

- The security needs to be addressed in some more elaborate way since the attackers are far more ingenious and creative people.

- A software security must be aimed at building a defect free software system or application.

- Out of all the defects of the software system, few tend to become the source of security vulnerabilities. 

- Softwares that have been built with more concentration on the system security are found to be more resistive to the security threats and if in case they are struck with some security issue they have the capability of recovering as soon as possible. 

- It is important to incorporate security in to the software systems are from the initial phase to the last and final phase.

- This can start right from implementing secure software coding and testing methodologies. 

- The software developers, programmers and testers can be trained to implement language specific secure coding practices.

- Conducting a risk based security testing yields greater benefits. It adequately highlights the weaknesses of the software system or application.




Sunday, February 19, 2012

What is application testing? What are the different categories of the applications?

Application testing as the term itself suggests is all about the testing of a software application. Application testing is carried out on the basis of the scenarios developed by the analysis team.

ABOUT APPLICATION TESTING
- Application testing usually checks out all the aspects of a software application but, mainly focuses upon the features, functionalities and limitations of the software application.
- The software application needs to pass al the tests listed in the scenarios to be ready for the release.
- This is needed because the scenarios form a part of requirements documentation and are considered to means for measuring success.

DIFFERENCE BETWEEN APPLICATION & OTHER TYPES OF TESTING
- Application testing is a bit different from the other types of testings.
- Application testing is controlled with the help of the scripts whose basic purpose is to keep the software system running according to some parameters and checks the outcomes.
- On the other hand other types of testing are usually programmed like unit testing and internal testing.
- In the past years, the scripts used to run the application were prepared manually i.e., they were hand written.
- But today many methodologies have been developed to automate the application testing.

PROBLEM FACED BY APPLICATION TESTING
- Most of the applications today make use of the graphical user interface (GUI), which though being a smart way to establish a relation between the user and computer; poses a problem for the application testing.
- These GUI systems comprise of event loops which involve mouse and keyboard signals etc.
- These signals have screen coordinates associated with them.
- These screen coordinates help in relating the event to the concerned object.
- In some rare cases the object is located at some different coordinates.
- This leads to the change of the coordinates in the loop of the events.

DIFFERENT CATEGORIES OF APPLICATIONS
- A computer performs a particular task ordered by the user by means of the software applications.
- Different applications have different purposes.
- Therefore based on the purpose they are classified into the following criteria: (a) General purpose software applications: As the name suggests these software applications are used for a more general purpose i.e., purposes that are required to be fulfilled by almost everyone. This category includes application softwares like web browsers, word processors, spreadsheets etc.

(b) Specific purpose software applications:
These application software is used to carry out more specific tasks like trunk scheduling, accounting, editing photos and so on.

KINDS OF APPLICATION SOFTWARE
There are many kinds of application software available today like:
- Free application software
- Business application software
- Application softwares for children
- Communication application software
- Computer aided manufacturing application software
- Data management application software
- Desktop publishing application software
- Desktop widgets
- Editing application software
- Educational applications software
- Entertainment application software
- Genealogy application software
- Government application software
- Graphics application software
- Industrial application software
- Knowledge representation application software
- Language application software
- Legal application software
- Library and information science application software
- Multimedia application software
- Music application software
- Personal information manager application software
- Computer programming and testing tools
- Religious software applications

ADVANTAGES OF APPLICATIONS
- No software system is complete without applications.
- Applications add features and functionality to a software system.
- Furthermore managing a software system with a number of small particular applications is easier to mange rather than one big complex software program.
- They reduce our burden to a great extent.
- Without the applications we would have to perform all the tasks manually which will require a great deal of our precious time and efforts.


Wednesday, September 21, 2011

Task Set of Project Planning - Estimating resources

The software development effort requires to estimate resources. There are three categories of software resources:
- people
- reusable software components
- development environment.

A resource has four characteristics:
- resource description
- availability
- time when resource will be required
- time duration in which resource can be applied.

TYPES OF RESOURCES ARE:

- Human Resources
The organizational position and specialty are specified. The location for each human resource is specified. After determining the estimate of development effort, the number of people required for a software project is determined.

- Reusable Software Resources
Re-usability is the creation and reuse of software building blocks which are called components and are cataloged for easy reference and standardized for easy application and validated for easy integration. Four software resource categories that are considered are :

Off the shell components
Full experience components
Partial experience components
New components


- Environmental Resources
Software engineering environment includes hardware and software. Hardware involves tools to produce work products. The software team require access to hardware elements developed by other engineering teams.


Friday, September 24, 2010

Categories of Heuristics of Software Testing

There is a set of characteristics that lead to a testable software.
- Operability: The better it works, more efficiently it can be tested.The system should have few bugs or no bugs that should block the execution of tests and the product should evolve in functional stages.

- Observability: What we see is what we test. It includes a distinct output should be generated for each input, the current and past system states and variables should be visible during testing, all factors affecting the output should be visible, incorrect output should be easily identified, source code should be easily accessible and internal errors should be automatically detected and reported.

- Controllability: The better we control the software, the more the testing process can be automated and optimized. Check that all outputs can be generated and code can be executed through some combination of input. Check that the software and hardware states can be controlled directly by the test engineer. Check that inputs and outputs formats are consistent and structured. Check that the test can be conveniently specified, automated and reproduced.

- Decomposability: By controlling the scope of testing, we can quickly isolate problems and perform effective and efficient testing. The software system should be built from independent modules which can be tested independently.

- Simplicity: The less there is to test, the more quickly we can test it. the points to consider in this regard are functional, structural and code simplicity.

- Stability: The fewer the changes, the fewer are the disruptions to testing. The changes to software should be infrequent, controlled and not invalidating existing tests. The software should be able to recover well from failures.

- Understandability: The more information we will have, the smarter we will test. The testers should be able to understand well the design, changes to the design and the dependencies between internal, external and shared components.

- Suitability: The more we know about the intended use of the software, the better we can organize our testing to find important bugs.

The above heuristics can be used by a software engineer to develop a software configuration which is convenient to test and verify.


Monday, June 28, 2010

How are testing tools categorized ? - Part II

Embedded Software Testing Tools :
It is a very challenging task to test embedded software as the timing requirements for these applications are very stringent. The code has to be optimized so that it occupies the minimum memory. IBM Rational Test Real Time is the widely used test tool in this category.
Network Protocol Testing Tools :
Testing networking and communication software has attained a lot of importance in recent years as computer networks are becoming widespread. There are number of tools available for testing networking and communication protocols. ANVL(Automated Network Validation Library) is to test routers and other networking products. Agilent Technologies, Rhode and Schwartz etc supply protocol analyzers which generate the necessary protocols based on international standards such as ITU-T standards.
Configuration Management/Bug Tracking Tools
Configuration Management is a very important process. When test engineers report bugs, the managers have to track these bugs and ensure that all the bugs are removed. Bugzilla is an open source defect tracking system. Samba's Jitterbug is a freeware defect tracking system. IBM Rational Software's Clear DDTS is a change request management software. GNU's GNATS is a freeware bug tracking and change management software.
Software Testing Management Tools
These tools help in managing process oriented software testing. Using these tools, the QA manager can create a formal test plan, allocate resources, schedule unattended testing, track the status etc. AutoTester's AutoAdviser, Compuware's QA Director are such tools.


Sunday, June 27, 2010

How are testing tools categorized ?

There is a wide variety of testing tools available to carry out different types of testing. the testing tools can be divided into the following categories :
- Source code Testing Tools
The tools that fall in this category check the source code of the application. the testing is white box testing and so the implementation details are considered. A number of tools are available to check line coverage, branch coverage, and path coverage. Tools are also available to test whether the source code is compliant to the standard coding guidelines and to generate the metrics.
- Functional/Regression Testing Tools
These tools are used to test the application software and web applications such as web sites. Applications involve Graphical User Interface, the tools test the GUI objects and functionality automatically. These tools carry out black box testing.
- Performance Testing Tools :
These tools are used to carry out performance testing or stress testing. These tools are very useful to test how the application works when multiple users access the application simultaneously. These tools simulate multiple users on a single machine and hence you do not need to have many machines and many test engineers can do performance testing. E.g. AutoTester's AutoController, Mercury Interactive's Load Runner, Apache JMeter, belong to this category.
- Java Testing Tools :
A number of tools are available exclusively for testing Java applications. These tools test the applications written in Java programming language and for testing java classes. Jemmy is an open source library to create automated tests for Java GUI applications.


Thursday, November 19, 2009

Attributes of Web Based Systems

Web-based systems and applications deliver a complex array of content and functionality to a broad population of end-users. The following attributes are encountered in the vast majority of WebApps.

- Network Intensiveness.
- Concurrency.
- Unpredictable load.
- Performance.
- Availability.
- Data driven.
- Content sensitive.
- Continuous evolution.
- Immediacy.
- Security.
- Aesthetics.

The following application categories are most commonly encountered in WebE work :
- Informational : read-only content is provided with simple navigation and links.
- Download.
- Customizable.
- Interaction.
- User input.
- Transaction-oriented.
- Service-oriented.
- Portal.
- Database access.
- Data warehousing.


Monday, August 3, 2009

Database System Concepts - Data Model, Schemas and Database state

A data model is a collection of concepts that can be used to describe the structure of a database. By structure of the database we mean the data types, relationships, and constraints that should hold on the data. Most data models also include a set of basic operations for specifying retrievals and updates on database.

Categories of Data Models:
- High level or Conceptual data models : These models provide concepts that are close to the way many users perceive data. They use concepts such as entities, attributes, and relationships. An entity represents a real-world object or concept such as an employee or a project. An attribute represents property of interest that describes an entity such as employee's salary or name. A relationship represents an interaction among the entities.
- Representational data models : These models provides concept that may be understood by end users but that are not too far removed from the way data is organized within the computer. They are used most frequently in traditional commercial DBMSs and they include the widely used relational model as well as the network and hierarchical models. These models represent data by using record structures and hence are sometimes called record-based data models.
- Low level or Physical data models : These models provide concepts that describe the details of how the data is stored in the computer by representing information such as record formats, record orderings, and access paths. An access path is a structure that makes the search for particular database records efficient.

Schemas:
The description of a database in any data model is called the database schema which is specified during the database design and is not expected to change frequently. A displayed is called a schema diagram.

Schema Diagram
A schema diagram displays only some aspects of a schema, such as names of record types and data items, and some types of constraints.

Database State or Iinstance: The actual data in a database changes every time data is inserted, deleted, or modified. The data in the database at a particular moment in time is called a database state or a snapshot. It is also called the current set of occurrences or instances in the database.

Distinguish between Database State and Database Schema:
When a new database is defined, we specify its database schema only to the DBMS. At this point, the corresponding database state is empty state. The initial state of the database is got when the database is first populated or loaded with the initial data. From then on, every time an update operation is applied to the database, we get another database state.


Facebook activity