Subscribe by Email


Showing posts with label Definition. Show all posts
Showing posts with label Definition. Show all posts

Friday, October 19, 2012

What are the default test plans attributes? How to define new test plan attributes?


Test plan is one of the important aspects of the silk test and is often characterized by some default attributes called the default test plan attributes. Well, the default test plan attributes are what we are going to talk about in this article. We shall also discuss how new test plan attributes can be defined. 

What is a Test Plan?

- A test plan forms the basis of the primary document that lays down the foundation for the testing that is to be carried out in a manner that is well organized. 
- Test plan is very important for the project managers as it is the document using which the testing projects can be managed well. 
- A badly drawn test plan is just same as not having any test plan.
- On the other hand, an intelligently drawn plan helps in smooth execution of the test cases and analysis of the other testing activities. 
- It would not be wrong to say that the test plan is actually a kind of dynamic document. 
- It acts especially in the spiral environments which have a tendency to change constantly. 
- The test plan is said to be a dynamic document since it changes according to the changes that occur in the software system or application. 
- Basically, a frame work is provided by the test plan which consists of a majority of the considerations that are made while planning. 

Attributes of Test Plan

Below mentioned are some of the attributes of a good test plan:
  1. It stands a greater probability of catching majority of the defects of an application under test or AUT.
  2. It provides greater test coverage for covering most of the test code.
  3. It stays quite flexible throughout the testing process.
  4. It is easy to be executed over and again automatically.
  5. It properly defines the tests that are to be performed.
  6. It lists out the expected results as clearly as possible.
  7. It helps in reconciliation of the defects whenever a defect is found.
  8. It helps in defining the objectives of testing.
  9. It helps in defining the testing strategy in definite terms.
  10. It helps in defining the criteria of test exit.
  11. It always stays meaningful.
  12. It never becomes become redundant.
  13. It helps in identification of the risks
  14. It helps in defining the test requirements as clearly as possible.
  15. It helps in describing the test deliverable as clearly as possible.
Every test plan created is concluded with the following 3 steps:
  1. Defining metrics
  2. Conducting periodic audits as well as scheduling them
  3. Approving the test plan
In the test plan view window, there is a tab titled “attributes” clicking on which will enable you to see all the project attributes that have been assigned to that particular test. Attributes can be thought of as an administrator created characteristics that are quite applicable to the tests. 
An attribute is defined as follows:
- item
Description
- Attribute
Name of the attribute
- value
Value that has been assigned to the attribute
- Type
Attribute type
- Inheritance
Whether or not the attribute is inherited

- The concept of inheritance in attributes is somewhat similar to what we have regarding the inheritance of success conditions and properties. 
- Attributes that are inherited throughout all the child test definitions and sub folders are assigned to a parent node. 
- To define an attribute follow the steps:
  1. Open the test project.
  2. Click define attributes menu
  3. Click new button.
  4. Enter the name for the new attribute.
  5. Select the attribute type.
  6. Click ok.


Tuesday, May 15, 2012

How does a DU path segment play a role in data flow testing?


Whenever you would have came across the topic of data flow testing, you surely would have heard about the term “du path segment” but still not familiar with it! This article if focussed up on the du path segments and what role it has got to play in the data flow testing. 
We will discuss the du path segments under the context of data flow testing and not as a separate topic so that it becomes easy for you to understand. 
The whole process of data flow testing is guided by a control flow graph that apart from just guiding the testing process also helps in rooting out the anomalies present in the data flow. With all the anomalies being already discovered one can now design better path selection strategies taking in to consideration these data flow anomalies. 

There are nine possible anomalies combinations as mentioned below:
  1. dd: harmless but suspicious
  2. dk: might be a bug
  3. du: a normal case
  4. kd: a normal situation
  5. kk: harmless but might be containing bugs
  6. ku: a bug or error
  7. ud: not a bug because of re- assignment
  8. uk: a normal situation
  9. uu: a normal situation
For data flow testing some data object states and usage have been defined as mentioned below:
1.      Defined, initialized, created à d
2.      Killed, undefined, unreleased àk
3.      Used for:
(a)    Calculations à c
(b)   Predictions à p

Terminology associated with Data Flow Testing


Almost all the strategies that are implemented for the data flow testing are structural in nature. There are certain terminologies associated with the data flow testing as stated below:
  1. Definition clear path segment
  2. Loop free path segment
  3. Simple path segment and lastly
  4. Du path

What is a DU path Segment?


- DU path segment can be defined as a path segment which is simple and definition clear if and only if the last link or node of the path has a use of the variable x.

Let us take an example to make the concept of du path segment clearer. 
- Suppose a du path for a variable X exists between two nodes namely A and B such that the last link between the two nodes consists of a computational use of the variable X. 
- This path is definition clear and simple. 
- If there exists a node C  at the last but one position that is the path is having a predicate use and the path from the node A to node C is definition clear and does not contain any loop. 
- Several strategies have been defined for carrying out the data flow testing like:
  1. ADUP or all du paths strategy
  2. AU or all uses strategy
  3. APU+ C or all p uses/ some c uses strategy
  4. ACU +P or all c uses/ some p uses strategy
  5. AD or all definitions strategy
  6. APU or all predicate uses strategy
  7. ACU or all computational uses strategy

Strategy for DU Path Strategy

We shall describe in detail here only the ADUP or all du paths strategy. 
- This strategy is considered to be one of the most reliable and strongest data flow testing strategy. 
It involves the use or exercising of all the du paths included in the definition of the variables that have defined to every use of the definition.
- All the du paths suppose to be a strong criterion for testing but it does not involve as many tests as it seems.
- Simultaneously many criterion are satisfied by one test for several definitions and uses of the variables.




Tuesday, September 6, 2011

What are functions,variables and prototyping in C?

Variables or identifiers are the fundamental basic building blocks of a program. They are general terminology for objects, classes, functions, arrays etc. It can be defined as an arbitrarily long sequence of letters and digits and the first character must always be a letter. Upper and lower case letters are treated differently and all the characters are significant. C is implementation dependent. C is case sensitive as it treats lower and upper case letters differently. These are basically named storage, whose values can be manipulated during the execution of the program. There are 2 values associated with every variable namely r value and l value. The value of the variable is called r value whereas l value is the address in memory where the variable is located. Generally a variable is declared as :

type name;

A simple definition consists of a type specifier followed by a variable name. There are 2 types of variables: local variables and global variables. Local variables are declared inside a function and are available to that function only whereas global variable are declared outside main() and are available to all the functions.

A large program is difficult to manage and understand. Thus, it is broken down into different modules called functions which can be put together to form the complete program. So we can define a function as a sub program that acts on data and often returns a value. A good function contains a number of functions since it is easier to maintain update and debug. Each function has its own name. On the encounter of the function’s name in any part of the program the function is called. There are basically 2 types of functions namely built-in functions and user-defined functions. Built in functions are parts of the compiler package and are made available to the program by header files. For example: exit(), sqrt(), strlen(), size() etc. user defined functions are created by the programmer as per the requirements of the program. A function has 3 parts: function definition, function call and function prototype. In C a function must be defined before it is used anywhere. Generally a function is defined as:

type function-name(parameter list)
{
Body of the function
}

Here the type specifies the type of return value. The parameter list is the list of arguments passed to the function separated by commas. A function may be defined without any arguments or it can also have an open parameter. A function definition must have a return statement.

One of the most important features of C is function prototyping as it describes the function interface to the compiler. It can be defined as the declaration of the function that tells the program about the type of the value returned by the function and the number and type of arguments. Therefore, we can say that a prototype has following parts:
- Return type
- Name of the function
- Argument list

Function prototyping is essential as it allows a compiler to compare each use of the function with the prototype to determine whether the function has been invoked properly or not. This makes it easy for compiler to correct the errors. The function prototype and function definition must exactly agree on the function name, return type, and argument list. The prototype looks just like a function definition except that the code is missing. A prototype introduces a function to the program whereas a definition being a declaration also tells the program what the function is doing and how it is doing. C makes prototyping essential. We can skip the arguments in a prototype but not in the definition.


Wednesday, April 27, 2011

What is Software Project Management? List the number of tasks it consists.

In Software Project Management, the end users and developers need to know the length, duration and cost of the project. It is a process of managing, allocating and timing resources to develop computer software that meets requirements. It consists of eight tasks:
- Problem Identification
- Problem Definition
- Project Planning
- Project Organization
- Resource Allocation
- Project Scheduling
- Tracking, Reporting and Controlling
- Project Termination

In problem identification and definition, the decisions are made while approving, declining or prioritizing projects. In problem identification, project is identified, defined and justified. In problem definition, the purpose of the project is clarified. The main product is project proposal.

In project planning, it describes a series of actions or steps that are needed to for the development of work product. In project organization, the functions of the personnel are integrated. It is done in parallel with project planning.

In resource allocation, the resources are allocated to a project so that the goals and objectives are achieved. In project scheduling, resources are allocated so that project objectives are achieved within a reasonable time span.

In tracking, reporting and controlling, the process involves whether the project results are in accordance with project plans and performance specification. In controlling, proper action is taken to correct unacceptable deviations.

In project termination, the final report is submitted or a release order is signed.


Monday, December 14, 2009

Hamming Distance (HD)

Hamming distance (Hamming metric) In the theory of block codes intended for error detection or error correction, the Hamming distance d(u, v) between two words u and v, of the same length, is equal to the number of symbol places in which the words differ from one another. If u and v are of finite length n then their Hamming distance is finite since d(u, v) ← n.
It can be called a distance since it is non-negative, nil-reflexive, symmetric, and triangular:
0 ← d(u, v)
d(u, v) = 0 iff u = v
d(u, v) = d(v, u)
d(u, w) ← d(u, v) + d(v, w)
The Hamming distance is important in the theory of error-correcting codes and error-detecting codes: if, in a block code, the codewords are at a minimum Hamming distance d from one another, then
(a) if d is even, the code can detect d – 1 symbols in error and correct ½d – 1 symbols in error;
(b) if d is odd, the code can detect d – 1 symbols in error and correct ½(d – 1) symbols in error.

How to Calculate Hamming Distance ?
- Ensure the two strings are of equal length. The Hamming distance can only be calculated between two strings of equal length.
String 1: "1001 0010 1101"
String 2: "1010 0010 0010"
- Compare the first two bits in each string. If they are the same, record a "0" for that bit. If they are different, record a "1" for that bit. In this case, the first bit of both strings is "1," so record a "0" for the first bit.
- Compare each bit in succession and record either "1" or "0" as appropriate.
String 1: "1001 0010 1101"
String 2: "1010 0010 0010"
Record: "0011 0000 1111"
- Add all the ones and zeros in the record together to obtain the Hamming distance.
Hamming distance = 0+0+1+1+0+0+0+0+1+1+1+1 = 6


Wednesday, November 18, 2009

Client Server Applications: The definition

What is Client Server Architecture ? What is some of the defining characteristics of Client Server Applications, especially since there is a buzz for the past many years about web applications, or a mixed breed (using applications such as Adobe AIR).
Client Server applications are literally define by the names used where one software application, at the client end (or at the user end) makes a service request to another software application that sits at the server (typically a machine with a much higher configuration). However, the separation between the client and server is logical, since both of them could exist on the same machine. There is a process to separate the work load of the application between the server application, and the client application. Client server applications are one of the central concepts behind network computing. Initially, the term was used to differentiate between the mainframe model or the Unix model where the entire work was done at the server, and the client was typically dumb, with no capability to do any processing.


Wednesday, July 29, 2009

Quick Tech Tip: Encapsulation - What does it mean ?

Encapsulation is not a common word in the English language; however, it is an important phrase in the word of software design, especially in the world of Object Oriented Programming. So what does encapsulation mean ?
In computer science, the principle of information hiding means the hiding of design decisions in a computer program, those decisions that are most likely to change, thus protecting other parts of the program from change; especially if the design decision is changed. The protection involves providing a stable interface which shields the remainder of the program from the implementation (the details that are most likely to change). The purpose is to achieve potential for change: the internal mechanisms of the component can be improved without impact on other components, or the component can be replaced with a different one that supports the same public interface.
The term encapsulation is often used interchangeably with information hiding, while some make distinctions between these two terms (although to most people these terms seem the same). It seems that people, however, fail to agree on the distinctions between information hiding and encapsulation though one can think of information hiding as being the principle and encapsulation being the technique. A software module hides information by encapsulating the information into a module or other construct which presents an interface.
The concept of encapsulation is a term that is an integral part of object-oriented programming, where the interface to an object is defined by its public methods, while its internal state is represented by private data. Encapsulation is a good principle of object oriented design, and part of well designed systems.


Friday, June 19, 2009

What is Software Architecture ?

Software architecture is the hierarchical structure of program components and their interactions. One goal of software design is to derive an architectural rendering of a system. This rendering serves as a framework from which more detailed design activities are conducted.

Set of properties of architecture design are:

-Structural properties:
The architecture design defines the system components and their interactions.

- Extra-functional properties:
The architecture design should address how the design architecture achieves requirements for performance, capacity, reliability, adaptability, security.

- Families of related systems:
The architecture design should draw upon repeatable patterns in the design of families of similar systems.

Different architectural design methods:
- Structural models: represent architecture as an organized collection of components.
- Framework models: increase the level of design abstraction by identifying repeatable architecture design frameworks (patterns).
- Dynamic models: address the behavior aspects of the program architecture.
- Process models: focus on the design of the business or technical process.
- Functional models: can be used to represent the functional hierarchy of a system.


Wednesday, April 8, 2009

DFD: data flow diagram

Not everybody who has worked in the software development cycle has heard of what a Data Flow Diagram is, or what it does. So, for example, somebody who makes applications such as Windows or Office or PhotoShop may not need to know what a DFD is. However, for a team that is designing an application for a bank or for a shopping application that involves a lot of data, it is essential to map the data flow. Hence, a Data Flow Diagram (DFD) is an essential component for the design of a large number of software applications, and if you don't do the DFD well, then the system may not end up having been designed well, and may end up being less efficient than it was supposed to be.
So, what is a DFD ? A brief definition and description:
DFDs were first used in the software engineering field as a notation for studying systems design issues. A data-flow diagram (DFD) is a graphical representation of the "flow" of data through an information system. DFDs show the flow of data from external entities into the system, showed how the data moved from one process to another, as well as its logical storage. A data-flow diagram can also be used for the visualization of data processing (structured design).
Data flow diagrams can be used to provide a clear representation of any business function. The technique starts with an overall picture of the business and continues by analyzing each of the functional areas of interest. This analysis can be carried out to precisely the level of detail required, leading to a data flow diagram that is strong in illustrating the relationship of processes, data stores and external entities in business information system.
Complicated information systems have lots of data flows which can be presented in a form of a data flow diagram. Without such data flow diagram you just can't visualize all data flows and won't be able to analyze and improve the whole system. Data flow diagrams represent data flows in a clear visual way as arrows between blocks which represent parts and processes of the system. Identifying the existing business processes, using a technique like data flow diagrams, is an essential precursor to business process re-engineering, migration to new technology, or refinement of an existing business process.
Sounds complicated, so the next few posts will detail the steps to making a data flow diagram, what are the benefits for this diagram, and some tools that will help in generating a data flow diagram.


Saturday, March 7, 2009

What are Web Applications ? (WebApps)

You must have heard of Web Applications for a long time now. Nowadays, you even hear of Web 2.0 Apps. But what exactly are Web Applications and how do they impact you ?

In the early days of the web, web sites consisted of static pages, which severely limited interaction with the user since there was no interactivity or very limited interactivity. In the early 1990’s, this limitation was removed when web servers were enhanced to allow communication with server-side custom scripts. As a result, applications were no longer just static brochure-ware, edited only by those who knew the arcane mysteries of HTML; with this single change, normal users could interact with the application for the first time. The trend towards increased interactivity has continued apace, with the advent of “Web 2.0”, a term that encompasses many existing technologies, but heavily features highly interactive, user centric, web-aware applications.
Web-based applications are computer programs that execute in a web browser environment (the overall environment could be a closed group intranet, or a public network such as the internet). An example of such an application would be an online store such as Amazon.com accessed via Firefox or Internet Explorer. Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client, sometimes called a thin client. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity.
To put it even more simply, A Web application is just an application that is deployed on the Web. It is a Web page, or series of Web pages, allowing users to accomplish a task like obtaining information and forms, shopping, applying for a job, listening to Internet radio, or any of the many activities possible on the Web. To use a Web application, a user needs to know a URL for the application, and possibly a name and password. Another way to think of a Web application is a Web site offering a great deal of functionality. A web application can provide any functions that may historically be found on a desktop computer. There are web applications to provide weather information for your locale, to track sales calls for a sales force, or sales expenses, or on any topic at all.


Facebook activity