Monday, October 19, 2009

INTRODUCTION TO BLACK BOX SOFTWARE TESTING TECHNIQUES

Firstly let us understand the meaning of Black Box Testing.
The term 'Black Box' refers to the software, which is treated as a black box. By treating it as a black box, we mean that the system or source code is not checked at all. It is done from customer's viewpoint. The test engineer engaged in black box testing only knows the set of inputs and expected outputs and is unaware of how those inputs are transformed into outputs by the software.

Types of Black Box Testing Techniques: Following techniques are used for performing black box testing

1) Boundary Value Analysis (BVA)

2) Equivalence Class Testing

3) Decision Table based testing

4) Cause-Effect Graphing Technique

1) Boundary Value Analysis (BVA):
This testing technique believes and extends the concept that the density of defect is more towards the boundaries. This is done to the following reasons

a) Usually the programmers are not able to decide whether they have to use <= operator or < operator when trying to make comparisons.

b) Different terminating conditions of For-loops, While loops and Repeat loops may cause defects to move
around the boundary conditions.

c) The requirements themselves may not be clearly understood, especially around the boundaries, thus causing even the correctly coded program to not perform the correct way.

Strongly typed languages such as Ada and Pascal permit explicit definition of variable ranges. Other languages such as COBOL, FORTRAN and C are not strongly typed, so boundary value testing is more appropriate for programs coded in such languages.


2) Equivalence Class Testing:
The use of equivalence classes as the basis for functional testing is appropriate in situations like

a) When exhaustive testing is desired.

b) When there is a strong need to avoid redundancy.

The above are not handled by BVA technique as we can see massive redundancy in the tables of test cases. In this technique, the input and the output domain is divided into a finite number of equivalence classes.


3) Decision Table Based Testing:

Decision tables are a precise and compact way to model complicated logic. Out of all the functional testing methods, the ones based on decision tables are the most rigorous due to the reason that the decision tables enforce logical rigour.

Decision tables are ideal for describing situations in which a number of combinations of actions are taken under varying sets of conditions.


4) Cause-Effect Graphing Technique:

This is basically a hardware testing technique adapted to software testing. It considers only the desired external behavior of a system. This is a testing technique that aids in selecting test cases that logically relate Causes (inputs) to Effects (outputs) to produce test cases.

A “Cause” represents a distinct input condition that brings about an internal change in the system. An “Effect” represents an output condition, a system transformation or a state resulting from a combination of causes.

Source: www.discussweb.com

SOFTWARE TESTING SDLC

TEST PLAN TEMPLATE FOR SOFTWARE TESTING PROJECTS

GOOGLE TESTING TECH TALK PRESENTS HADAR ZIV

GOOGLE TEST AUTOMATION CONFERENCE LIGHTNING TALKS

THE IN-BROWSER ACCEPTANCE TESTING TOOL

USING OPEN SOURCE TOOLS FOR PERFORMANCE TESTING

BECOMING A SOFTWARE TESTING EXPERT

Friday, October 2, 2009

CHILD LABOR AND SWEATSHOPS

When he was four years old, Iqbal Masih was sold into bonded servitude by his parents, a common practice of poor Pakistani families hoping to pay off debts owed to landlords and local merchants. For the next six years, Masih was forced to work in a carpet factory—usually chained to a loom—for up to sixteen hours a day, six days a week. A small, sickly boy, Masih’s growth was further stunted by malnutrition, carpet dust, constant stooping, and beatings he received as punishment for his repeated escape attempts and occasional refusal to work. At the age of ten, however, Masih saw posters distributed by the Bonded Labor Liberation Front (BLLF), a human rights organization founded by labor activist Ehsan Khan. These posters revealed that bonded and child labor were illegal in Pakistan—a fact generally ignored by the local manufacturers and civil officials. Masih secretly contacted BLLF members, who helped him escape from the carpet factory. Soon afterwards, Masih joined the BLLF and worked with them to liberate 3,000 bonded children from textile, brick, and steel factories in Pakistan.

Under the tutelage of Ehsan Khan, Masih became a spokesman for the bonded children of south Asia, and he traveled to the United States and Europe to persuade potential buyers to stop purchasing Pakistani carpets until the country enforced its child labor laws. In 1992, as a result of Masih’s efforts, Pakistan’s carpet sales fell for the first time in twenty years. The boy’s success gained international attention, and in 1994, he won the Reebok Human Rights Youth in Action Award and a future scholarship to an American university. In 1995, however, twelve-year-old Masih was shot to death while visiting relatives in a rural village. Khan maintains that Masih was assassinated by the “carpet mafia”—members of the Pakistan Carpet Manufacturers and Exporters Association who were eager to keep child laborers in their factories.

Iqbal Masih’s life and violent death have inspired many organizations, consumer groups, businesses, and individuals to contest the use of child labor. Canadian Craig Kielburger was twelve when he learned of Iqbal’s story and began researching the issue of working children. In an article printed in the December 15, 1996, Chicago Tribune, Kielburger states that before reading about Masih, “I did not know very much about where my running shoes or soccer balls were made, or who made them. . . . Poor children in many countries are employed in the textile, sporting goods and toy industries, making products that may eventually end up on the shelves of North American stores. By buying these products, we may be contributing to the exploitation of children.” With a group of friends, Kielburger launched Free the Children, an organization that urges consumers to learn about the origin and assembly of goods and to buy child-labor-free products. Kielburger has taken personally funded tours of factories in several Asian countries to investigate the working conditions of child laborers, and Free the Children has initiated letter-writing campaigns and petitions urging businesses and governments to eliminate the use of child labor.

Many advocates for children argue that efforts such as Kielburger’s are desperately needed because most child laborers work under abusive and horrific conditions. These workers often toil for twelve to eighteen hours a day in congested, dusty, dangerous environments that severely impair their health, activists contend. Some child laborers, advocates point out, face verbal, physical, and even sexual abuse from their bosses. Since most of them do not obtain an education, child workers cannot attain higherpaying jobs as adults and stay trapped in poverty all of their lives, activists maintain. According to the International Labour Organization, a workers’ rights alliance, there are at least 250 million workers between the ages of five and fourteen in third world countries. This number may be as high as 500 million—half of the children in the developing world—if undeclared workers and domestic workers are included. For these reasons, asserts Kielburger, “we . . . have to push for education, protection, and the rights of the child.”

In addition to Kielburger’s Free the Children campaign, concerned parties have taken several other measures in an attempt to stop the exploitation of child labor. In 1992, Democratic senator Tom Harkin first introduced the Child Labor Deterrence Act, a congressional bill that proposes a ban on the importation of products made by children overseas. Harkin argues that this legislation endeavors “to stop the economic exploitation of children and to get them out of the most dangerous jobs . . . by limiting the role of the U.S. in providing an open market for foreign goods made by underage kids.” As of November 1998, Harkin’s legislation had not passed. However, some North American locales—such as Bangor, Maine, and North Olmsted, Ohio—have instituted their own voluntary boycotts by passing ordinances prohibiting the purchase of goods made by sweatshop and child labor. Moreover, several companies, including Levi Strauss, Guess, and The Gap, have recently adopted a “No Sweat” policy that ensures that their stores do not carry products made by suppliers that exploit children or adult workers.

Other activists have taken a different route by implementing labeling programs that ensure that a specific product has been made without the use of child labor. Child advocate Kailash Satyarthi, for example, established Rugmark, a nonprofit foundation that allows consumers to identify hand-knotted rugs made only by adult labor. Rugmark inspects factories that wish to be certified as child-labor free and attaches special Rugmark labels to carpets that meet their requirements. Through these kinds of actions, many human rights activists hope to stop the abuse and exploitation of child laborers. “To do less with the knowledge that we have today on the extent of this problem is to be a coexploiter of children,” insists California state representative George Miller.

Some activists caution, however, that humanitarian challenges to the use of child labor can backfire. For example, 50,000 Bangladeshi children garment workers lost their jobs in 1994 after news of Harkin’s Child Labor Deterrence bill aired. Many of these children then took on the more dangerous work of stone crushing or prostitution to make ends meet. According to Bangladeshi writer and activist Shahidul Alam, children factory workers in third world countries contribute needed income to their house- holds, and if these children are forced to leave their jobs they must choose between a life of increased poverty or a life of more exploitative, and often illegal, work. “Childhood [in Bangladesh] is seen as a period for learning employable skills,” writes Alam. “Children have always helped out with family duties. When this evolves into a paid job . . . neither children nor their families see it as anything unusual. In poor families it is simply understood that everyone has to work.” Alam contends that the complexity of the child labor issue must be reexamined if human rights activists truly want to improve the lives of working children.

To avoid scenarios such as the one in Bangladesh, many activist organizations do not support the boycott of goods made by children. Instead, they demand safe and humane working conditions for children along with a serious examination of the socioeconomic conditions that require young children to work. At the first international conference of child laborers held in 1996 in Kundapur, India, child delegates from thirty-three developing countries drafted a ten-point proposal that rejected the tactic of boycotts and called for “work with dignity, with hours adapted so that we have time for education and leisure.” They also requested opportunities for professional training, access to good health care, and more actions that would address “the root causes of our situation, primarily poverty.”

While human rights activists may disagree about the best approaches to ending the exploitation of working children, some analysts contend that Westerners should maintain a “hands off” stance toward child labor in the developing world. For one thing, critics argue, labeling programs such as Rugmark’s are probably futile. Rugmark uses only eighteen inspectors to examine more than eighteen thousand looms, and, in the opinion of Columbia University professor Elliott Schrage, “Without a video camera on every loom in every home where rugs are made, there’s no way you can know if children were involved.” Moreover, critics point out, inspectors could simply be bribed to lie about the use of child labor. Instead of trying to force overseas manufacturers to abide by seemingly more enlightened labor standards, argues economist Murray Weidenbaum, Western consumers should recognize that the use of child labor and low-wage workers is a natural stage in the industrial development of poor nations. As nations become more economically successful, Weidenbaum contends, they generally abandon exploitative labor practices. Such was the case for many national economies of the twentieth century, he points out: “Japan moved from poverty to wealth, as did South Korea in the last half of the twentieth century. . . . Nations in Southeast Asia are undergoing a similar transformation. In each of these cases, rising portions of the population advanced to better paying jobs—not as a result of idealism but from changing economic circumstances.”

Concerns about the use of child labor and sweatshops are likely to increase as corporate power continues to expand into multinational domains and as a growing number of companies come to rely on outside manufacturers. Child laborers, of course, are not the only ones who are exploited. Adult workers in many third world countries—and even in the United States—face long hours, menial pay, and hazardous working conditions. The authors in At Issue: Child Labor and Sweatshops examine the issues surrounding the use of child laborers and adult workers who are exposed to substandard work environments.


Source: www.enotes.com

UNDERSTANDING CMMI PRACTICES

About 25 professionals from various cos. in Chennai attended the program at Cognizant office (8.30 am to 10.30 am) on 14th December 2007. Meeting started with presentation by Mr. Karthik Padmanabhan, Lead Appraiser of Trimentus explaining on

• Latest anxiety of CMM compliance and actual impacts and benefits
• How CMMI outcome is more objective and deeper than usage of scorecards and tools to set and monitor the performance.
• It is indeed an Alarming Issues for all practitioners.

It was indeed a valuable experience to learn THOUGHT LEADERSHIP amongst group of peers who are equally concerned on QA front.

  1. Many clients have complained to the SEI that they are suffering on project defects and delays despite having contracted with SEI-CMMI level 4 and 5 organizations.
  2. That compelled SEI to do reevaluation if the outcome is effective or not in practice. That showed that though model is perfectly good and valid, interpretation of many requirements have been incorrect.
  3. That has forced them to now come out with HIGH MATURITY Lead Appraisers certification to ensure those HMLA appraisers are themselves good enough for stringency and thus their appraisals may give better effectiveness.
  4. Challenge has been always
    a. Do we know the difference between Actuals Vs Planned
    b. Do we know what corrective action to take
  5. But with High Maturity issues cropping up, outcome must be to assess
    a. Will you be successful
    b. What if you were to do something else
  6. In other words emphasis is more on What Actual Practice We Do, rather than just compliance with the Book or QMS or CMM levels.
  7. SEI themselves have now taken upon themselves to reevaluate certain projects and compliant cos. to ensure that PURPOSE is REALIZED. Lot of training programs for users in the industry as well as for Lead Appraisers is being conducted.
  8. In the new version CMMI 1.2, model has been retained as nothing was found wrong, but the emphasis has been incorporated on L4 and L5. It has become more intense. L2 and L3 remain same as they provide important foundation.
  9. Key issues these days are setting core objectives which will have two directions ( eventually making it as STRATEGY)
    i. Define Objectives with success outcome criteria
    ii. Define Processes called for to achieve that Objective with
    a. Baseline mapping of each process ( Process Performance baselines)
    b. Identification of dependency/relationship between baselines which gives rise to model generation
  10. L5 is not L4 plus Root Cause Analysis plus a pilot with measurement.

One senior participant asked that despite working in various MNCs, he has never found so strict compliance to the practice expected with process. The speaker then said that it was why perhaps SEI is concerned and launched version 1.2 to control the outcome. Another participant mentioned that could be due to cultural or political or top management issues. Finally questions came across the audience as to why we Indians and Indian Cos fail to ACTUALLY show the benefit of L4 and L5 in real terms. Will that seriousness come with Rupee going to Rs 30 or Rs 50?

Talking about Agile model, the speaker mentioned that he knows only about SCRUM, which works well with L5.

Enough heat was generated that SEI-CMMI compliance is now going to be ruthless and not that easy as had been taken by Industry.

Source: blog.nasscom.in

SOFTWARE ESTIMATION BEST PRACTICES, TOOLS, & TECHNIQUES

Almost every software project begins with the utterances, “What will this cost?” and “When will this project be done?” Once those words are spoken, project stakeholders begin to wrestle with how to produce an estimate. Accurately estimating the cost or time to complete a software project is a serious problem for many software engineers, developers and project managers who struggle with costs running double original estimates, putting their careers at risk. It is reported that nearly 50% of all software projects are shelved and that one of the major causes is poor estimation practices. If developing software for internal use, poor estimates can represent a significant drain on corporate profits.

Worldwide growth in the number of companies specializing in the development of software for use by other companies is staggering. India alone has nearly 20,000 such companies. Intense competition has led to an increased demand for fixed-bid pricing in client/vendor relationships, and has made effective cost estimation even more important and, in many cases, critical to a firm’s survival. There are many methods of estimation. Each method has its strengths and weaknesses, proponents and opponents. Knowing how and which one to use on a given project is key to developing acceptable estimates for either internal or external projects.

The book, “Software Estimation Best Practices, Tools, & Techniques” covers all facets of software estimation. It provides a detailed explanation of the various methods for estimating software size, development effort, cost, and schedule, including a comprehensive explanation of test effort estimation. Emphasizing that software estimation should be based on well-defined processes, it presents software estimation best practices and shows how to avoid common pitfalls. This guide offers direction on which methods are most appropriate for each of the different project types commonly executed in the software development space and criteria for selecting software estimation tools.

This comprehensive desk reference explains software estimation from scratch to help the beginner and features advanced techniques for more experienced estimators. It details project scheduling, including resource leveling and the concept of productivity, as applicable to software estimators, demonstrating the many benefits of moving from the current macro-productivity approach to a micro-productivity approach in software estimation. Software Estimation Best Practices, Tools, & Techniques: A Complete Guide for Software Project Estimators caters to the needs of all software project stakeholders, from novice to expert. It provides the valuable guidance needed to estimate the cost and time required to complete software projects within a reasonable margin of error for effective software development.


Source: blog.nasscom.in

SOFTWARE TOOLS AND TECHNIQUES

Current goals of the project include the development of advanced algorithms to explore new data mining techniques and applications, indexing techniques to facilitate non-conventional similarity searches, as well as other optimization and performance subjects (such as optimization techniques for scheduling). In the data mining area, we focus on extending the limitations and shortcomings of state of the art mining methods and exploring new applications areas enabled by the new mining capabilities. These include stream data mining, grid mining, interactive mining and anomaly detection.

The increasing number of applications requiring support for processing data in the form of a continuous stream poses stringent requirements on the data mining algorithms. For example, under the data stream model, data records can only be accessed sequentially and read only once or a small number of times. Furthermore, the computing systems performing the stream mining usually only have a limited amount of memory for storing the intermediate results, and need to keep up with the rate the data is streamed in. We study new mining algorithms under the data stream model. The focus is not only on supporting one-pass algorithms, but also on capturing the dynamically changing characteristics of the data.

Grid computing is a new model for distributed, high performance computing. As many commercial and scientific data are maintained over geographically distributed sites, we study how to adapt mining applications to explore the grid model. Our focus is on using an ensemble based learning approach to aggregate models trained on distributed grid nodes.

Frustratingly most mining algorithms still are performed as batch processes. Throughout the mining process, the user has minimal interaction with the systems. If after waiting for a long period of time, the results are unsatisfactory, all the computing resources consumed for the mining effort are wasted. We focus on new approaches to perform mining in an interactive fashion to control the mining directions (e.g., on clustering) and even the accuracy (e.g., on classification) and efficiency.

Mining for anomaly events is very important with wide applicability from business activity monitoring to intrusion detection to uncovering irregularities/frauds in financial transactions to cleansing of data feeds to autonomic computing. It has also taken on increasing urgency (since 9/11) in terms of detecting potential leads or early warning signals of terrorist or biological attacks. Our work focuses on fundamental algorithms for anomaly detection. This includes one class and partially supervised classification methods, cost sensitive learning, rule scheduling and indexing to support real-time detection.

In Bioinformatics, the amount of data generated is growing at an exponential rate, where data mining is badly needed. Nonetheless, extensions to the current mining techniques are required to handle some of the domain specific issues. Our focus is on addressing these limitations and extending the capability of current mining techniques. We have studied clustering techniques based on pattern coherency for micro-array data and string-based classification techniques. Another area is the mining of repeated patterns in a string sequence in the presence of noise. Indexing methods to support approximate pattern matching of bio-sequences and micro-array data have also been pursued.

With the popularity of on-line commerce, it has become increasingly critical for companies to employ data mining in order to obtain a competitive edge in the market place. We have studied various issues pertaining to data mining. One area of focus is the mining of high dimensional data, where we have developed a 'projected clustering' approach. Much work has been done on mining association rules, including developing faster and on-line algorithms, refining the large item set concept using collective strength, and devising a new framework to mine associations by pattern structures in relational databases.

Personalization refers to the ability to gather and store information about individual customers, analyze the information, and then act on the knowledge by delivering the right information to each customer at the proper time. It is a key technology needed in a variety of E-business applications, including customer relation management, advertisement targeting and product promotion, marketing campaign management, Web site content management, knowledge management, personalized portal management, and so on. Although each specific application area may need special tailoring, especially in the areas of user interface and data collection, the core techniques for personalization are quite similar. We have developed improved collaborative filtering algorithms and also a content-based collaborative filtering approach. We have also developed various text mining algorithms which provide automated content taxonomy and conceptual indexing, and which facilitate content-based collaborative filtering.

We have also studied Web enabling technologies including the development of caching and load balancing schemes to improve web/proxy server performance, the discovery of new business methods and processes for the Internet, and the identification and design of new Internet and pervasive computing applications. We have developed a variety of collaborative proxy caching algorithms and load balancing algorithms for clusters of Web servers, also known as 'Web server farms'. We have developed near-optimal scheduling strategies for the electronic distribution via television broadcast channels of digital content purchased over the Web. (Examples of such digital content include CDs, DVDs, software, and, in the future, books.) Finally, in the coming post-PC era, cellular phones and other small devices will be increasingly connected to the Internet. It is difficult to display large tables of information on these small devices, and accordingly we have developed table summarization techniques.


Source: www.research.ibm.com