Test Run
James McCaffrey
Some difficult problems, especially in the areas of machine learning and artificial intelligence, can't be solved easily using classical optimization techniques. In such situations, alternatives, such as amoeba method optimization, can be of value, as James McCaffrey explains.
June
2013
James McCaffrey
James McCaffrey presents a powerful new clustering algorithm that is relatively simple to implement, has worked well in practice, can be applied to both numeric and categorical data, and scales well to huge data sets.
May
2013
James McCaffrey
Naive Bayes classification is a fundamental machine-learning technique that can predict which category a data case belongs to. James McCaffrey explains how it works and gives you the foundation for adding prediction features to your .NET applications.
February
2013
James McCaffrey
Explore how artificial immune systems can model the behavior of the human immune system to detect harmful network packets.
January
2013
Shortest-path graph analysis is likely to increase in importance as enterprises gather more data and store that data in a cloud environment. This article shows how to use this approach on your data.
December
2012
James McCaffrey
Back-propagation is a complex, but tricky to code, algorithm that can be used to train a neural network. James McCaffrey explains how to implement back-propagation.
October
2012
James McCaffrey
There are plenty of resources describing the complex mathematics behind finding logistic regression beta parameters using Newton-Raphson, yet few implementation guides. James McCaffrey explains how logistic regression with Newton-Raphson works, and how to implement a solution in C#.
September
2012
James McCaffrey
In the May issue, James McCaffrey explained the basics of neural networks. Now he shows you how to use neural networks to classify existing data into groups, and to predict the group membership of new data.
July
2012
James McCaffrey
Why should you be interested in evolutionary optimization algorithms? There are at least three good reasons, James McCaffrey points out, and he shows you how to code them.
An evolutionary optimization algorithm is an implementation of a meta-heuristic modeled on the behavior of biological evolution. These algorithms can be used to find approximate solutions to difficult or impossible numerical minimization problems.
June
2012
James McCaffrey
Neural networks can be used to solve a variety of practical problems. James McCaffrey explains what they are and presents C# code that implements a neural network.
May
2012
James McCaffrey
Facing a tough numerical optimization problem? A probabilistic technique that models the food-seeking and reproductive behavior of common bacteria might be able to help.
April
2012
James McCaffrey
James McCaffrey introduces the Ant Colony Optimization algorithm, an artificial intelligence technique based on the pheromone-laying behavior of ants.
February
2012
James McCaffrey
James McCaffrey explores an artificial intelligence technique based on the behavior of cooling metal.
January
2012
James McCaffrey
Dr. McCaffrey wraps up his examination of the challenging and mysterious maximum clique problem—often used in social networking scenarios—with an advanced solution called the tabu algorithm.
December
2011
James McCaffrey
Dr. McCaffrey this month presents a greedy algorithm as a solution to the graph maximum clique problem, which is to find the largest group of nodes in a graph that are all connected to one another. He explains how to design and test these algorithms to solve the problem.
November
2011
James McCaffrey
In computer science, the maximum clique problem is challenging and not completely understood. But the code used to solve it can help developers out in important areas such as social networking. So dig in.
October
2011
James McCaffrey
This month’s dual-purpose column provides a walkthrough of a JavaScript function to draw a Bezier curve on a Bing Maps AJAX map control along with guidelines for testing a nontrivial JavaScript function.
June
2011
James McCaffrey
Mutation testing is known for being difficult and expensive, but we’re here to show you a real-world system you can build in just a few hours with a little C# code and Visual Studio.
May
2011
James McCaffrey
The doctor prescribes a little-known technique that—under the right circumstances—lets you automatically generate new test case data from existing test cases that yield a pass result, saving time and work.
March
2011
James McCaffrey
An important part of software testing -- or coding -- effort is the ability to measure the progress. One technique for doing this is a technique called Earned Value Management, and we'll show you how easy it is to apply EVM to your own projects.
February
2011
James McCaffrey
Although jQuery was created with Web development in mind, it has several characteristics that make it well-suited for lightweight Web UI test automation. We’ll show you how to build a simple jQuery-based test harness.
December
2010
James McCaffrey
Modal message boxes generated by a Web application pose a tricky problem for automated testing. We’ll show you a relatively simple technique for creating a test harness for these cases.
November
2010
James McCaffrey
Beef up your testing toolset by learning how to perform HTTP request-response tests of your ASP.NET Web apps using IronPython, a .NET Framework-compliant implementation of Python.
September
2010
James McCaffrey
Fault injection testing is the process of deliberately inserting an error into an application to determine whether it deals with the error properly. We’ll explain how you can introduce faults into .NET applications at run time using the Managed Code Fault Injection APIs of the TestApi library
August
2010
James McCaffrey
A common software-development task is generating a graph from a set of test-related data. But if you're doing it by hand and the underlying data changes frequently, this particular task can become quite tedious. James McCaffrey shows you how to automate the process using Windows Presentation Foundation technology.
June
2010
James McCaffrey
Understanding combinations and permutations is a fundamental skill in software testing. We show you how to work with combinations and permutations using code written in the new F# language.
May
2010
James McCaffrey
There are many ways to test WCF services, but the socket-based approach is flexible and very useful for security and performance testing. We show you show you how to test a WCF service using a network socket based approach.
February
2010
James McCaffrey
Write a simple browser-based request-response test automation using JavaScript that’s platform independent and useful when you are working in a highly dynamic environment.
January
2010
James McCaffrey
In this month's column, James McCaffrey explains exactly what pairwise testing is and provides you with complete C# source code for a production quality pairwise testing tool named QICT.
December
2009
James McCaffrey
This column presents an approach to Antirandom (AR) testing the author calls partial AR string testing, which can be used to test a wide range of software systems.
October
2009
James McCaffrey
This month we show you how to use F# to perform HTTP request-response testing for ASP.NET Web applications.
July
2009
James McCaffrey
This month we demonstrate how easy it is to use IronPython to test .NET-based libraries.
June
2009
James McCaffrey
This month we describe techniques for automating UI testing in Windows Presentation Foundation applications.
March
2009
Dr. James McCaffrey
Here James McCaffrey uses some statistical methods and a technique he calls PERIL to estimate risks to software projects involving timing, costs, and other potential resource shortfalls.
January
2009
Dr. James McCaffrey and Paul Despe
Because Virtual Server is built upon a set of COM modules, you can automate the creation and testing of virtual machines. Here we use Windows PowerShell to run the tests.
December
2008
Dr. James McCaffrey
There is a large body of research on group techniques to determine the best alternative from a set of options. Dr. James McCaffrey outlines five of them.
November
2008
Dr. James McCaffrey
This time James McCaffrey sets up a virtual environment to use for configuration testing to introduce you to software configuration testing with Microsoft Virtual Server
September
2008
Dr. James McCaffrey
This month James McCaffrey builds a test harness for WCF applications that really puts them through the paces.
July
2008
Dr. James McCaffrey
Did you know you can use Windows PowerShell to perform lightweight request/response testing for an ASP.NET Web app? Here's how.
May
2008
Dr. James McCaffrey
Language Integrated Query makes lots of things easier. Here we put LINQ, or more specifically the LINQ to SQL provider, to use testing SQL stored procedures.
April
2008
Dr. James McCaffrey
Here we show you how to use Windows PowerShell to create quick and easy UI test automation for ASP.NET and classic ASP Web applications.
March
2008
Dr. James McCaffrey
In this month's column Dr. James McCaffrey describes some of the ways you can use the Visual Studio 2005 Team System to manage custom software test automation.
Launch
2008
Dr. James McCaffrey
James McCaffrey shows you how to get started with UI test automation using the new Microsoft UI Automation library.
February
2008
Dr. James McCaffrey
This installment of Test Run is a guide to using Windows PowerShell to perform ultra lightweight UI automation.
December
2007
Dr. James McCaffrey and Mike Hall
This month's column explores how to create lightweight but powerful UI test automation for software systems that run on Windows XP Embedded.
October
2007
Dr. James McCaffrey
May
2007
Dr. James McCaffrey
March
2007
Dr. James McCaffrey
This month James McCaffrey presents a technique that allows you to write lightweight test automation to verify the functionality of AJAX Web applications.
February
2007
Dr. James McCaffrey
The ability to programmatically create and use string permutations is essential in software testing, as James McCaffrey explains.
December
2006
Dr. James McCaffrey
This month see how to use Excel for test automation storage, whether you’re just starting out with NET, or you’re an advanced programmer.
November
2006
Dr. James McCaffrey and Nasa Koski
The goal of competitive analysis is to compare the overall quality of your software against similar systems. But it’s not easy. Here James McCaffrey accomplishes the goal with the help of a little MAGIQ.
October
2006
Dr. James McCaffrey
In this installment of Test Run, James McCaffrey discusses how you can generate random test case data.
September
2006
Dr. James McCaffrey
The use of XML files in software testing has steadily increased over the past few years. Test case data, test harness configuration information, and test result data are now stored as XML. Recently I was writing some .
June
2006
Dr. James McCaffrey
Stress testing is a fundamental quality assurance activity that should be part of every significant software testing effort. The key idea behind stress testing is simple: instead of running manual or automated tests under normal conditions, you run your tests under conditions of reduced machine or system resources.
May
2006
James McCaffrey
Before you can test any software system effectively, you must understand the system under test. If the system includes the Microsoft® . NET Framework, understanding the system under test includes understanding its assembly and method dependencies.
March
2006
James McCaffrey
Paradoxes are fun. In this month's column I show you three interesting cases that can occur when you are performing software testing. They're fundamentally mathematical in nature, and they can be a useful addition to your troubleshooting arsenal.
December
2005
James McCaffrey
As Web applications have become more complex, testing them has become more important. There are many testing techniques available to you. For example, in the April 2005 issue of MSDN®Magazine, I describe a simple JScript®-based system that can test a Web app through its UI by using the Internet Explorer Document Object Model.
October
2005
James McCaffrey
There are several ways to test a Windows®-based application through its user interface. For example, in the January 2005 issue of MSDN®Magazine (Test Run: Lightweight UI Test Automation with . NET) I described a lightweight technique for testing .
September
2005
James McCaffrey and James Newkirk
The Microsoft® . NET Framework provides you with many ways to write software test automation. But in conversations with my colleagues I discovered that most engineers tend to use only one or two of the many fundamental test harness design patterns available to them.
August
2005
James McCaffrey
Most software testing takes place at a relatively low level. Testing an application's individual methods for functional correctness is one example. However, some important testing must take place at a very high level—for example, determining if a current build is significantly better overall than a previous build.
June
2005
James McCaffrey
The release of ASP. NET revolutionized Web development and made it easy to create full-featured Web applications. Visual Studio® 2005 and ASP. NET 2. 0 will let you add even more functionality to your applications, but the more features a Web application has, the more important testing becomes.
April
2005
James McCaffrey
It's no exaggeration to say that Web services are revolutionizing application-to-application communication. Web services are already being used extensively in corporate intranet environments and are making their way into commercial use, too.
March
2005
James McCaffrey
Manual user interface testing is one of the most fundamental types of software testing and it's the kind of testing that most software engineers first experience. Paradoxically, automated user interface tests are probably the most technically challenging kind of test to write.
January
2005
James McCaffrey
The most fundamental type of software test automation is automated API testing. API testing essentially entails testing the individual methods that make up a software system rather than testing the overall system itself.
November
2004
James McCaffrey
Many Windows®-based applications have a SQL Server™ back-end component that contains stored procedures. Although techniques to automatically test functions in the front-end code are well known, the techniques to write test automation for stored procedures are not.
September
2004
James McCaffrey
If you're encrypting user data with Secure Sockets Layer (SSL) over HTTP and you want to test your Web applications programmatically you'll find that the techniques are not widely known. In this month's column I'll show you how to set up a test SSL server and write test automation that verifies the functionality of a simple but representative Web application.
August
2004
James McCaffrey
July
2004