Linux - Simulating Degraded Network Conditions. When testing an application or service, it can be very useful to simulate degraded network conditions.
This allows you to see how they might perform for real users. Testing on a controlled LAN is not always realistic, since the LAN has much different network properties than a real user would experience over a WAN. I will give examples using 2 tools that alter a network interface's properties. The tools are: NetEm and Wondershaper. NetEm is an enhancement of the Linux traffic control facilities that allows you to add delay, packet loss, duplication, corruption, reordering, and more to outgoing packets from a specified network interface.
Unit Testing is a Means to an End. We Recommend These Resources Most professional software developers these days understand the importance and value of writing and using unit tests.
A nice summary of some of the oft-touted and oft-realized benefits of unit testing can be found in the StackOverflow.com thread Is Unit Testing worth the effort? [my only very minor criticism is the mixing of more specialized Test-Driven Development (TDD) with the more general unit test concept]. As with most good things, however, even unit testing enthusiasm can go too far.
The benefits of unit testing can lead to overly enthusiastic unit testing developers forgetting that unit tests are not the end themselves, but rather are a means to the real end. The "end" that most software developers are striving for is delivery of software solutions that make their users' lives easier and more productive. Overreaching Unit Testing. Measuring Code. Alvor - SQL checker for Eclipse. Alvor is an Eclipse plug-in, which statically validates SQL sentences embedded in Java code.
It can be used either as one-shot full-program analyzer or as incremental as-you-type error guard. SQL strings found in the code can be checked against built-in SQL grammar or against actual test database. NB! Alvor is currently in BETA quality! Installation Use following Eclipse update-site: NB! Alvor works with Eclipse 3.5 - 3.7 (Possibly also with 3.8/4.2) Screenshot. Sebastian Kübeck's Weblog. Testing Runtime Dependencies, Part 3 In the previous part I showed that it is all but quantum physics to gain rapid feedback when dependencies between configuration and source code are violated.
In this part I want to finish the dependency tests as far as the configuration file struts.xml is concerned. So let's have a look at the sample configuration file again: <? Xml version="1.0" encoding="UTF-8"? Catching slowdowns in Lucene. Lucene has great randomized tests to catch functional failures, but when we accidentally commit a performance regression (we slow down indexing or searching), nothing catches us!
This is scary, because we want things to get only faster with time. So, when there's a core change that we think may impact performance, we run before/after tests to verify. But this is ad-hoc and error-proned: we could easily forget to do this, or fail to anticipate that a code change might have a performance impact. Even when we do test performance of a change, the slowdown could be relatively small, easily hiding within the unfortunately often substantial noise of our tests.
Over time we might accumulate many such small, unmeasurable slowdowns, suffering the fate of the boiling frog. To address this problem, I've created a script that runs standard benchmarks on Lucene's trunk (to be 4.0), nightly. This has been running for a few weeks now, and the results are accessible to anyone. The First Open Source enterprise diff framework released - TheServerSide.com. DiffKit is an application, and a framework, for comparing two tables of data, field-by-field.
The tables can come from any of a number of sources, such as an RDBMS or CSV file, and DiffKit is able to mix different kinds of sources in the same diff operation. DiffKit is like the Unix diffutility, but for tables instead of lines of text. DiffKit is able to report the diffs at both the row and field level, and allows the user to configure the comparison (what to compare, how to compare it, what to ignore). DiffKit is highly customizable with respect to the sources of tabular data, the details of the comparison, and the characteristics of the output (diff report). DiffKit is Free Open Source Software (FOSS), licensed under the Apache License, Version 2.0. The principal use of DiffKit is for regression testing of processes that create or manipulate persistent table data: from Database Testing: How to Regression Test a Relational Database Features. Survey Finds Developers Would Rather Do Taxes than Test Software. Although most developers in a recent study said they wouldn't prefer a trip to the dentist or a fender bender over testing software, a majority said they would rather do their taxes (which is becoming increasingly complicated in the US) instead of dealing with buggy code.
With the help of Osterman Research, Electric Cloud conducted this survey to find out the causes and effects behind poor testing practices and infrastructure. 144 developers, managers, testers, and executives participated in the study - each from a company with more than 1,000 employees and 50 developers. Most organizations were located in North America. The study found that 58% of the developers polled said most of their software bugs were caused by insufficient testing time, poor testing procedures, or limited testing infrastructure. 31% cited design flaws as the key contributor. Building anything other than a unit test can be time consuming, and some developers don't even bother with the unit tests.