Articles filed in category 'Testing and Quality Control'

  • May/June 06 Finalize Column
  • If you’ve ever argued with management about how unit testing is beneficial, speeds up the process in the long run, and makes the software work better, you’ll recognize John’s point of view. If you haven’t (yet) had the argument, you’ll want to have this article handy.
  • Jeffrey shows you how to organize your code to suit DevOps, configure the five Azure DevOps products, automate your pipeline for speed, and build quality into each stage of your process.
  • Software developers are good at writing applications. Testers are good at testing applications. In the software development world where separation of concerns is a never-ending quest, it seems logical to apply the rule to the software development cycle. “Let the developers code; QA can be responsible for making sure it works.” It provides an object-oriented management approach where each team is responsible only for what they are best at, and the two teams interface thro...See More
  • Nov/Dec 2007 Doc Detective Column
  • Although I’m now a huge advocate of test-driven-development, I was not an immediate convert to the school of thought. I understood the necessity of unit testing:
  • Extreme Programming and Scrum compliment each other, but they weren’t made from the start to fit together hand in glove.Practicing Extreme Programming and Scrum are more effective when practiced together, and even more effective when practiced together as Behavior-Driven Development.
  • Jason explores TestFlight, a new tool for testing your iOS apps. It has some nifty notification tools, which makes it easier to have a lot of testers—or just a few, depending on what your product needs. Check out what else it has going for it.
  • Jason explores TestFlight, a new tool for testing your iOS apps. It has some nifty notification tools, which make it easier to have a lot of testers—or just a few, depending on what your product needs. Check out what else it has going for it.
  • Automated build tools have been around for a long time.Many of the early tools were simple batch scripts that made calls out to other command-line tools like compilers and linkers. As the need for more and more complexity in the build scripts was realized, specialized tools like Make were introduced. These tools offered more than just sequential processing of commands. They provided some logic and decision making as well as coordination of the various parts of the build ...See More
  • The CODE Framework provides a set of tools for developing n-tier, service-oriented applications. In addition, there is a set of recommended patterns and practices that provide guidance in enabling developers to achieve Rapid Application Development, Contract-First implementation, and a system that allows you to change a contract without breaking an implementation. However, one question which has been repeatedly asked throughout our trainings and seminars is, “How do I Un...See More
  • It’s crucial to understand how your ASP.NET code compiles in order to debug your Web applications effectively. ASP.NET 2.0 has changed the way compilation and deployment works, and in this article I’ll dig in and show you how compilation works now and what has changed from ASP.NET 1.x.
  • Software developers live and breathe debugging. It’s an essential and integral part of our day-to-day job. Whenever we are confronted with any bug in code, our typical first question is, “How can I reproduce this issue?” Any problems that cannot be reproduced are generally considered tricky to resolve. In order to really understand the challenges with debugging hard to reproduce issues, let’s walk through a few scenarios here.
  • Every developer needs to test their code, or have it tested by someone.I don’t know about you, but I am horrible at testing my own code. Does this mean that I do not need to test my code? Heck, no! It is always best if you do not rely on your end user to test your code. This can end up with a very frustrated user, and your user can lose faith in your ability to get their project done.
  • Learn how to use XP (eXtreme Programming) techniques to improve the way you deliver softwareIn my book, "eXtreme .NET," I introduce a team of developers who are learning how to improve their ability to deliver great software. In this article, you'll follow this team as they learn about a new tool to help them develop software solutions using the .NET Framework. The tool they are going to explore is called Cruise Control and it helps the team continuously integrate their code.
  • Punit explores the necessary detail of testing and a useful collection of tools that you can employ. His advice ensures not only that your code runs as designed, but that the testing process is as painless as possible.
  • May/June 2008 .NET Rocks! column
  • Jeffrey takes a look at the state of the industry and comes up with some interesting ways to measure efficiency and accuracy.
  • Hudson makes continuous integration easy and powerful.Though Hudson is a Java project, it can easily build your .NET applications. You configure Hudson easily via the web interface rather than tweaking XML. With plenty of plugins available to .NET projects, Hudson provides plenty of powerful features.
  • Every system needs to be tested before being set loose on an unsuspecting public. Keith uses Coverage.py to figure out how much information about code is enough, and what kinds of statistics and measurements can make you confident that your work will endure whatever a user throws at it.
  • Insufficient testing can lead to devastating results. Find out what you can do to minimize outages as Keith explores unit testing using a Python tool called Coverage.py.
  • Application instrumentation gives you the ability to perform runtime diagnosis of enterprise application state, which is critical to mission success.To help with instrumentation and logging, .NET ships with tracing types in the System.Diagnostics namespace. Using these types, you have the ability to log information to multiple output streams for diagnosis of application runtime behavior. Information produced by instrumentation and tracing types enable you to examine the ...See More
  • Martin introduces Design by Contract and Code Contracts, and gives you a sneak preview of Pex—Microsoft’s new test-suite generator. Along the way, he will show you how to add contracts to ADO.NET entities and some interesting coding strategies, good practices, and pitfalls you may encounter while making a deal with your code.With Code Contracts, Microsoft delivers its own flavor of Design by Contract for the .NET Framework. But wait, what is this thing sometimes called C...See More
  • Studies indicate that between 40% and 60% of all defects found in software projects can be traced back to errors made while gathering requirements.This is huge! Finding problems while they are just in the planning stages is MUCH easier to deal with than finding them after the code has been written. So, how can developers avoid these errors and create a solid design for their software? This article will describe various methods for gathering software requirements and w...See More
  • Scrum is an agile software development process to manage software projects. Scrum is based on three simple principles: visible progress, constant inspection, and adaptation. With Scrum, teams use an empirical approach to adapt to changing requirements and priorities. Teams using Scrum focus on delivering working software to their customers on a frequent basis.
  • Unit tests are not “unit” tests if they test things other than the System Under Test (SUT).In order to test a SUT (the class to be tested), a developer must make sure that the class’s dependencies won’t interfere with its unit tests. Enter mocks and stubs.
  • Sahil explores the three cardinal rules of working on any JavaScript project and introduces some cool new tools.
  • Building loosely coupled application architectures requires more than just separating your application into different layers.In this article, I’ll take a project that was built using techniques that result in fragile, hard-to-test code and introduce some principles, techniques, and refactorings that will help you realize flexibility and testability in your applications.
  • Microsoft's Web Application Stress Tool provides an easy way to simulate large numbers of users against your Web application.This tool makes it possible to make intelligent decisions about hardware and software load incurred by your application and how much traffic a given machine or group of machines can handle. In this article Rick shows how the tool works and how to properly interpret the performance data it generates.
  • Testing computer software is more than just randomly executing portions of the software.Professional-level testing uses industry-accepted practices to write tests that are the most likely to find bugs. This article will examine how to use a combination of several common testing methods to maximize the results of the time you spend on testing.
  • Rod continues the tale of an enormous conversion project.
  • Jimmy explores what went right and what went wrong with version 1.0 of AutoMapper.
  • Do you ever feel like you’re beating your head against a wall? I know I do; quite often, in fact. It seems like developers spend half of their time bending technology to their purposes when the technology doesn’t really quite fit. Well, I’m actually thinking of one problem in particular right now, namely that of validation. Can you think of a more boring topic? There are few, but I think you can agree that it is an extremely important one in business software.
  • Derick outlines how to achieve the benefits of low coupling, high cohesion, and strong encapsulation. He also shows how the five S.O.L.I.D. design principles can get you there.Most professional software developers understand the academic definitions of coupling, cohesion, and encapsulation.However, many developers do not understand how to achieve the benefits of low coupling, high cohesion and strong encapsulation, as outlined in this article. Fortunately, others have cr...See More
  • If you’ve ever had to step through legacy code—even your own—you understand what a mystery some of it can be. Chris provides some tips and tricks for figuring it out.
  • Automate high-friction, unpredictable tasks in your environment to regain sanity and achieve a rapid, sustainable pace.Every environment has them: The dreaded manual tasks that drain productivity from the team and adds instability to the processes. We usually only dedicate half our brain power and never enough time to deal with them, which only compounds the problem. What if you could easily automate out the most painful tasks and gain a huge boost in productivity and speed of delivery?
  • We've all faced those irritable questions about our applications running in production. Typically a system administrator will spring one on you on a Friday afternoon just when you're finishing out the week with a game of foosball. Why did this request fail? What is causing so many disk IO spikes? What requests are failing as a result of this error? Why is the application running so slowly? Why are all the resources being gobbled up on the Web server? These questions ofte...See More
  • You have been given the task of creating some business objects for a new .NET project.The UI has not been created (or designed) yet, so you start coding right away. After creating the first few objects, you decide that maybe you should do some unit testing. How?
  • Utilize unit testing in your Visual Studio .NET development. Automated unit testing enables a team to exercise its entire code base against a battery of tests. This facilitates a quick, reactive environment by providing instant feedback during development. Changes to the code will be tested for validity and any errors will become apparent. Your code will become simpler and you will have great example documentation for using your code.
  • It’s so new that the dust is still settling, and VS2017 was worth the wait. Markus explores the ins and outs of his favorite new features.
  • As readers of this magazine, you are all experts at certain facets of software development, be it for the desktop, the web, SQL Server and now mobile platforms. Mobile programming was a fairly arcane development arena up until the recent announcement of Windows Phone 7 (WP7). Prior to WP7, you had to become intimately familiar with the myriad platforms and form factors available and write your programs to each of those phones. With the advent of WP7, Microsoft is now con...See More