Warning: main(../headerlg.shtml): failed to open stream: No such file or directory in /hsphere/local/home/qualasco/qualasco.com/News/news1.php on line 7

Warning: main(../headerlg.shtml): failed to open stream: No such file or directory in /hsphere/local/home/qualasco/qualasco.com/News/news1.php on line 7

Warning: main(): Failed opening '../headerlg.shtml' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/lib/php/PEAR:/usr/local/share/pear') in /hsphere/local/home/qualasco/qualasco.com/News/news1.php on line 7
LogiGear - Software Testing and Quality Assurance  LogiGear - Software Testing and Quality Assurance

Software quality assurance (QA) testing articles by recognized industry thought leaders including Hung Nguyen, Hans Buwalda, and Michael Hackett.


Common Software Errors - Initial and Later States

Initial and Later States

Before you can use a function, the program may have to initialize it. Typical initialization steps include identifying the function's variables, defining their types, allocating memory for them, and setting them to default values (such as 0). The program may have to read a disk file that contains defaults and other configuration information. What happens when the file is not there? Initialization steps might be done when the program is loaded (data defaults can be loaded into memory along with the program), when it is started, when the function is first called, or each time the function is called.

Initialization needs and strategy vary widely across languages. For example:

  • In many languages, a function's local variables keep their values from one call to the next. If a variable is supposed to keep the same value, the function can set the variable's value once and leave it alone thereafter. The function usually has to reset other variables to their starting values.
  • In other languages, local variables are erased from memory on exit from the function. Whenever the program calls a function, it must redefine its variables, allocate memory for them, and assign starting values.
  • Some languages allow the programmer to specify whether a variable should stay in memory or be erased after each function call.
  • Some compilers provide initialization support. The programmer can specify a starting value for a variable; the compiler will make sure that this loads into memory with the program. If the programmer doesn't assign an initial value, the compiler sets it to 0. Other compilers, even for the same language, do not provide this support. The function must set each variable's value the first time it's called. To avoid resetting each variable every time it's called, the function must know whether it's been called before.

Initialization failures usually show up the first time the function is called or the second time, if it doesn't reinitialize variables correctly. Reinitialization failures may be path-dependent. If you reach a function in a "normal" way, it works fine. However, if you take an "abnormal" route, the program might branch into the function at some point after the initialization code. Programmers often treat backing up to modify data or redo calculations as abnormal.

Click here - Initial and Later States - to continue...

Common Software Errors - Calculation Errors

This is the appendix from the best-selling book Testing Computer Software, 2nd ed.

Copyright © 1988 by Cem Kaner
Copyright © 1993 by Cem Kaner, Jack Falk, Hung Quoc Nguyen

This is part 5 of 13.

CALCULATION ERRORS

The program calculates a number and gets the wrong result. This can happen for one of three types of reasons:

  • Bad logic: There can be a typing error, like A-A instead of A+A. Or the programmer might break a complex expression into a set of simpler ones, but get the simplification wrong. Or he might use an incorrect formula, or one inapplicable to the data at hand. This third case is a design error. The code does what the programmer intendedóit's his conception of what the code should do that is wrong.
  • Bad arithmetic: There might be an error in the coding of a basic function, such as addition, multiplication, or exponentiation. The error might show up whenever the function is used (2 + 2 = -5) or it might be restricted to rare special cases. In either case, any program that uses the function can fail.
  • Imprecise calculation: If the program uses floating point arithmetic, it loses precision as it calculates, because of roundoff and truncation errors. After many intermediate errors, it may claim that 2 + 2 works out to -5 even though none of the steps in the program contains a logical error.

This area is huge and this section only begins to scratch its surface. For an introduction to the larger area, read Conte and deBoor (1980) and Knuth (1981). For a second source on topics in Conte and deBoor, try Carnahan, Luther & Wilkes (1969).

Common Software Errors - Boundary-Related Errors

This is the appendix from the best-selling book Testing Computer Software, 2nd ed.

Copyright © 1988 by Cem Kaner
Copyright © 1993 by Cem Kaner, Jack Falk, Hung Quoc Nguyen

This is part 4 of 13.

BOUNDARY-RELATED ERRORS

A boundary describes a change-point for a program. The program is supposed to work one way for anything on one side of the boundary. It does something different for anything on the other side. The classic "things" on opposite sides of boundaries are data values. There are three standard boundary bugs:

  • Mishandling of the boundary case: If a program adds any two numbers that are less than 100, and rejects any greater than 100, what does it do when you enter exactly 100? What is it supposed to do?
  • Wrong boundary: The specification says the program should add any two numbers less than 100 but it rejects anything greater than 95.
  • Mishandling of cases outside the boundary: Values on one side of the boundary are impossible, unlikely, unacceptable, unwanted. No code was written for them. Does the program successfully reject values greater than 100 or does it crash when it gets one?

We treat the concept of boundaries more broadly. Boundaries describe a way of thinking about a program and its behavior around its limits. There are many types of limits: largest, oldest, latest, longest, most recent, first time, etc. The same types of bugs can happen with any of them so why not think of them in the same terms?

Common Software Errors - Error Handling

This is the appendix from the best-selling book Testing Computer Software, 2nd ed.

Copyright © 1988 by Cem Kaner
Copyright © 1993 by Cem Kaner, Jack Falk, Hung Quoc Nguyen

This is part 3 of 13.

ERROR HANDLING

Errors in dealing with errors are among the most common bugs. Error handling errors include failure to anticipate the possibility of errors and protect against them, failure to notice error conditions, and failure to deal with detected errors in a reasonable way. Note that error messages were discussed above.

Common Software Errors - User Interface Errors

This is the appendix from the best-selling book Testing Computer Software, 2nd ed.

Copyright © 1988 by Cem Kaner
Copyright © 1993 by Cem Kaner, Jack Falk, Hung Quoc Nguyen

This is part 2 of 13.

The user interface (UI) includes all aspects of the product that involve the user. The UI designer tries to strike a balance between
  • functionality
  • time to learn how to use the program
  • how well the user remembers how to use the program
  • speed of performance
  • rate of user errors
  • the user's satisfaction with the program

In seeking a good balance, the designer weighs the experience and needs of the people she expects to use the program against the capabilities of the equipment and available software technology. An error in the UI results in a suboptimal match between the user and the program.

Because tradeoffs are unavoidable in UI design, a good designer might deliberately make any of many of the "errors" listed below. Don't take this list as gospel. If you are at all unsure, listen to the designer's reasoning before condemning one of her choices. See Baecker & Buxton (1987), Helander (1991), Laurel (1990, 1991), Rubenstein & Hersh, (1984), Schneiderman (1987), and Smith and Mosier (1984) for excellent introductions to user interface design, including extended discussion of many of the issues raised in this Appendix.

Throughout this Appendix we write as if you were the user of the program. As a tester of it, you will certainly use it heavily. Realize that other people will also use the program and they will have different problems from you. Try to be empathetic.

Common Software Errors

This is the appendix from the best-selling book Testing Computer Software, 2nd ed.

Copyright © 1988 by Cem Kaner
Copyright © 1993 by Cem Kaner, Jack Falk, Hung Quoc Nguyen

This is part 1 of 13.

This Appendix describes over 400 bugs. The descriptions are short, including only what we considered the most interesting information. It's worthwhile reading this list, even though you may find it boring. On first reading it provides a frame of reference, details, and background about problems you should look for while testing. Its greater value is as an organized list of program problems for future reference. A good list, built up with time and experience, can be a powerful tool.

The Potential and Risks of Keyword Based Testing

By Hans Buwalda, CTO, LogiGear Corporation


Introduction

Keyword based testing is gaining ground. More and more organizations see this model, in which tests are not scripted but written as a series of keywords with arguments, as a valuable alternative to record and playback, or scripting of tests. A good theoretical basis for keywords can be found in the well known automation book Software Test Automation, by Dorothy Graham and Mark Fewster, and also in numerous articles and white papers on the LogiGear website. In this article I want to list some of the typical advantages and risks of keywords.

Other Articles by this Author

Load/Performance Test Plan Template

Comprehensive template to help develop a Load/Performance Test Plan.

How to Measure Testing Success

By Rob Pirozzi

Introduction

All to often, senior management judges software testing though the lens of potential cost savings. Test automation and outsourcing are simplistically looked at as simply methods to reduce the costs of software testing. But the sad truth is that simply automating or offshoring a poor software testing effort will simply yield an automated and offshore poor testing effort. And if the same simplistic approach was taken in the planning of automation and offshoring, the costs may not even be lower.

It is critically important for management to define "success" for their software testing efforts. While cost is one metric, it is not the sole metric. Other issues that should also be taken into account include:
  • Breadth of testing coverage
  • Test reusability
  • Value of the data reported by software testing
  • The quality of the software under test

Using these criteria, management should come up with a clear definition of success that is consistent with their testing strategy and testing methodology. Of course, if there is no strategy and methodology, then that must be developed first - but that is a topic for another article

This paper will discuss the importance of these other non-cost success criteria.

Is Test Automation the Same as Programming Tests?

By Hans Buwalda

Introduction

A common issue that I come across in projects is the relationship between test automation and programming. In this article I want to highlight some of the differences that I feel exist between the two.

After many decades of often slow and hard fought over progress, software engineering is now a well established profession, with recognized methods and practices. Automated testing, however, is still a relatively new and often misunderstood phenomenon. Often software engineers get involved in software testing and try to apply their programming knowledge and experience. For many aspects of software testing this is a good thing, but over the years I have come to believe that automated testing poses its own distinct properties and challenges, and a practitioner should try to understand those and work with them.

This article will explore the differences between software engineering and designing automated tests.

Software Testing 3.0: Organization and Process Ramifications

By Rob Pirozzi

Introduction

Many companies have come to realize that software testing is much more than a task that happens at the end of a software development cycle. They have come to understand that software testing is a strategic imperative and a discipline that can have a substantial impact on the success of an organization that develops software. Many of these companies are coming to embrace the ideas that are central to the latest phase in the evolution of software testing, Software Testing 3.0 (See the links below for more on Software Testing 3.0).

Implementing Software Testing 3.0 is a major undertaking, and as such, should not be embarked upon without adequate planning. While implementing Software Testing 3.0 will require substantial effort, the benefits in terms of software quality, cost and time savings, and mitigation of risk from in market failures are substantial.

Software Testing 3.0 has both organizational and process ramifications. These ramifications need to be fully understood to insure success implementing Software Testing 3.0. This paper will explore these organizational and process ramifications to help with an organization's planning efforts.

Software Testing 3.0: The Continuing Evolution of Software Testing

This white paper traces the evolution of software testing through its first two phases, and then presents the current state-of-the practice: Software Testing 3.0, an independent and strategic approach to software quality. The paper concludes with a discussion for senior executives on how and why software testing can finally meet and exceed management expectations, illustrated by real-world case studies showing how two companies benefited from Software Testing 3.0 to test better and faster while lowering their costs.

Classic Article - DAST - Diagnostic Approach to Software Testing

By Hung Q. Nguyen and Michael Hackett

QA City
Objectives

  • Introduce DAST, the Diagnostic Approach to Software Testing.
  • Share our experiences using this method.
  • Provide you with a process guideline.

Other classic articles...

Applied Gray-Box Testing for Web Applications

By Hung Q. Nguyen

Today's Agenda

Applied Gray-box Testing
  • The Testing Paradigms
  • Gray-box Testing Strategies
  • Specific Test Strategies, Designs & Examples

This is a web adaptation of a presentation given by LogiGear founder and CEO Hung Q. Nguyen for a RADVIEW Webinar

Is Action Based Testing an Automation Technique?

By Hans Buwalda

Introduction

Keyword driven methodologies like Action Based Testing (ABT) are usually considered to be an automation technique. They are commonly positioned as an advanced and practical alternative to other techniques like to "record & playback" or "scripting". You can read a lot about ABT on the LogiGear web site or in LogiGear's Newsletter Archives.

To see ABT as an automation technique is not incorrect. We do it ourselves at LogiGear in marketing. Some parts of ABT, and the supporting toolset TestArchitect, are very technical and would not fit in a manual process. However, in this article I want to show that the core ideas of ABT are not specifically about automation at all, they are merely a style of test design.

Classic Article: Development and Delivery of a Successful Commercial Web-based Application

By Hung Q. Nguyen

Web Applications -- A Few Differences

  • Web site vs. Web application testing
    • Content-focus vs. solution-focus.
  • Web applications vs. Traditional GUI-based Client/Server applications
    • Browser-dependent architecture and UI vs. Platform-dependent architecture and UI.
  • Web-based vs. Web-enabled application testing
    • Testing the complete system "end-to-end" vs. Testing the Web UI extension.
  • Shrink-wrap products vs. proprietary Intranet/Extranet solutions
    • COTS products are exposed to significant server-side setup, configuration and compatibility issues.

LogiGear Spring Software Testing Training Schedule

LogiGear Spring training
  • 4/1/08 - 4/2/08: Lead Software Test Projects with Confidence [ register ]

    This two-day course focuses on developing a strategic approach to test project estimation and management, effective communication, bug-database management, resource planning, and successful test execution, as well as "soft" skills needed to lead and manage a team. Implementation and use of Test management tools will also be covered. Application of these concepts will be demonstrated in insightful class exercises. Learn to maximize test productivity while minimizing quality risks and stress. Click to read more...
  • 4/3/08 - 4/4/08: Effective Test Case Design and Management [ register ]

    This 2-day hands-on course offers an intensive workshop in a wide variety of testing methods and test case development strategies. This course is designed for those who already have a solid understanding of software quality and testing. Click to read more...

  • 4/7/08 - 4/9/08: Testing Computer Software [ register ]

    This three-day course focuses on strategic and tactical approaches to software testing. This survey course covers the essential theory and foundations of software quality as well as the practical skill building necessary to be an effective and active contributor to the software development process. It covers software testing and testing project management techniques that are applied daily by successful software development companies. Click to read more...

  • 4/10/08 - 4/11/08: Web and Software Application Security Testing [ register ]

    Security issues are among the highest concerns to many organizations. Despite this fact, security testing is often the least understood and least defined task. Security testing is a broad effort that requires a domain of expertise beyond traditional software testing. In particular, application software security testing is very different from software functionality testing. Click to read more...

  • 4/14/08 - 4/15/08: Testing Applications on the Web [ register ]

    This two-day course focuses on testing issues that are specific to web and eBusiness applications. Understanding how web application testing differs from traditional testing will help you to effectively develop test plans and strategies for client/server applications that take advantage of web technologies. Click to read more...

All classes are held at LogiGear's Foster City, California location.

Should Automated Acceptance Tests Use the GUI the Application Provides

By Michael Bolton

Introduction

As a consultant and trainer, I am often asked by my clients and students how to deal with automated acceptance tests. One common question is whether automated acceptance tests should use the graphical user interface (GUI) provided by the application..

Click to continue...

How to Identify the Usual Performance Suspects

When You're Out to Fix Bottlenecks, Be Sure You're Able to Distinguish Them From System Failures and Slow Spots

By Scott Barber

Bottlenecks are likely to be lurking in your application. Here's how you as a performance tester can find them.

So you found an odd pattern in your scatter chart that appears to be a bottleneck. What do you do now? How do you gather enough information to refute the inevitable response, "The application is fine, your tool/test is wrong"? And how do you present that information conclusively up front so you can get right down to working collaboratively with the development team to solve the problem?

Through years of experience as a performance testing consultant, I've learned something very important. It's not safe to assume that most people really know what a bottleneck is - even if you've been doing performance testing for a long time and use the term "bottleneck" in everyday speech - particularly when it is contrasted with a system failure or a slow spot. To provide a teaching tool, I coined "Scott's Eight Basic Rules for Software Bottlenecks," which I'll share with you below.

Click to continue...

LogiGear's Hans Buwalda to Present Keyword Test Automation Session at STARWEST

StarWest
Learn How to Successfully Manage Keyword Automation Projects

Hans Buwalda, Chief Architect at LogiGear Corporation and co-author of Integrated Test Design and Automation, will offer a software test automation track session for software QA professionals at the upcoming Software Testing Analysis & Review Conference (STARWEST), at the Disneyland Hotel in Anaheim, CA, October 22 - 26, 2007.

Classic Article: Getting Automated Testing Under Control

QA City
A practical approach to test development and automation
By Hans Buwalda and Maartje Kasdorp

Testing of systems is probably the most difficult task there is in IT - especially if you want to execute the tests automatically. We make our living running test projects for customers, and have experienced many of the potential problems in testing and test automation ourselves:
  • Testing costs time and money (usually during the end phase of a development project, when such time and money is least available)
  • Manual execution of test cases is often a tedious and error-prone task (especially when tests have to be repeated on successive versions of a system)
  • Automated tests tend to be very sensitive to changes in the target systems interface
  • It can be difficult for outsiders to get a clear overview of what is being tested (especially when using automation scripts that non-IT people find hard to understand)

During the years we have evolved an approach to counter these issues. Although you shouldn't regard it as a "silver bullet," we think it can be very practical; we would like to use this article to share it with you. The approach is marketed under the name TestFrame but you can easily apply the techniques and principles outlined in this article yourself.

LogiGear To Double Size of Vietnam Software Testing Center

Fully Integrated US-Vietnam Operation Continues Rapid Growth

Foster City, CA - October 15, 2007 - LogiGear Corporation today announced the acquisition of additional facilities in Vietnam to support rapid growth of the LogiGear Test & Research Center, doubling the capacity of the company’s operations there. The first and only US-led software testing center in Vietnam, LTRC will employ 500 test and software engineers and other personnel by the end of 2008, with more growth planned for the future.

Key Success Factors for Keyword Driven Testing

Hans Buwalda, Chief Technology Officer, LogiGear Corporation

Introduction

Keyword driven testing is a software testing technique that separates much of the programming work of test automation from the actual test design. This allows tests to be developed earlier and makes the tests easier to maintain. Some key concepts in keyword driven testing include:
  • Keywords, which are typically base level and describe generalized UI operations such as "click", "enter", "select"
  • Business templates which are typically high level such as "login", "enter transaction"
  • Action Words, or short "Actions", which can be both base level and high level and in their most general form allow earlier defined key words to be used to define higher level action words
Keyword driven testing is a very powerful tool helping organizations to do more automated testing earlier in the testing process and making it easier to maintain tests over time. As with any complex undertaking, there are "success factors" that can determine whether or not a testing effort will be successful. This paper will outline key success factors for keyword driven testing including base requirements, the vision for automation, success factors for automation, and how to measure success.

Classic Presentation: The Roles of Software Testing & QA in Security Testing

The Roles of Software Testing & QA in Security Testing

Hung Q. Nguyen
LogiGear, President and CEO

Bob Johnson
Independent, Security Consultant

ASQ-SSQA Presentation, May 14, 2002

Subscribe to LogiGear's latest software testing articles here: http://feeds.feedburner.com/LogiGearArticles

QA City - Linux Testing Resources

QA City New to QA City's "Resource directory" section - a page of links to Linux testing resources. This section offers links to a selection of websites with useful information on software testing for Linux.

All of QA City's categories include:

Subscribe to LogiGear's latest software testing articles here: http://feeds.feedburner.com/LogiGearArticles


Warning: main(../footer.shtml): failed to open stream: No such file or directory in /hsphere/local/home/qualasco/qualasco.com/News/news1.php on line 180

Warning: main(../footer.shtml): failed to open stream: No such file or directory in /hsphere/local/home/qualasco/qualasco.com/News/news1.php on line 180

Warning: main(): Failed opening '../footer.shtml' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/lib/php/PEAR:/usr/local/share/pear') in /hsphere/local/home/qualasco/qualasco.com/News/news1.php on line 180