Scrum, Behavior Driven Development, Continuous Integration and Refactoring Tools for Agile Software Development

 

Refactoring Tools for Code and Database

 

Blerby Test Runner

A flexible php based unit testing utility that improves a developers efficiency. This optimization is achieved through manually or automatically running tests via ajax while wrapping assert failures, fatal errors, and warnings in a consistent format. The blerby test runner is actively developed with the intent of optimizing a php developer's coding and refactoring efficiency while maintaining the safety net that unit testing provides.


ct-eclipse

CT-Eclipse (Continuous Testing for Eclipse) builds on the automated developer support in Eclipse to make it even easier to keep your Java code well-tested, if you have a JUnit test suite. With CT-Eclipse enabled, as you edit your code, Eclipse runs your tests quietly in the background, and notifies you if any of them fail or cause errors. It is most useful in situations where you would already have a test suite while you are changing code: when performing maintenance, refactoring, or using test-first development. CT-Eclipse includes the ability to run tests in a prioritized order, and to filter out irrelevant tests. We have found that with tests run so often, a simple "Most Recently Failed First" metric is sufficient to achieve very good prioritization. You may have more sophisticated ideas about prioritizing and filtering tests--these can be contributed as plug-ins to the extension points provided by CT-Eclipse.


Database Restyle

Database Restyle intended for database structure synchronization. Database Restyle in not an application, but a component which is integrated directly into your program. This means that you won't have to install any additional software on the client side. Moreover, once purchased license allows you to distribute the product within your applications without any additional fees. Full source code delivered with the Professional Edition license provides the opportunity to fully control the process of database structures development and synchronization. Database Restyle is extremely easy-to-use. A user friendly interface enables the developers to quickly examine the product functionality. Thus, you save your money on the licenses for your end users, staff training and obtain a powerful component with a set of advanced features. Database Restyle allows you to compare database structures, update them, make data refactoring and specify exact objects to be synchronized.


DbRefactor

C# library for versioning and refactoring database structure using Microsoft SQL Server


dotunit

dotunit is a port of JUnit (www.junit.org) to the Microsoft .net platform. This testing framework allows for automated unit and functional tests which are vital for refactoring and regression testing.


Flay

Flay analyzes ruby code for structural similarities. Differences in literal values, names, whitespace, and programming style are all ignored. Code that flay reports as similar is a good candidate for refactoring.


Flog

Flog is a tool build to analyze Ruby code complexity. It's dead simple to run, and immediately provides useful metrics in the form of a “Flog score” per method. High scores are prime candidates for difficult testing and refactoring. Flog essentially scores an ABC metric: Assignments, Branches, Calls, with particular attention placed on calls.


JUnitDoclet

JUnitDoclet lowers the step toward JUnit. It generates skeletons of TestCases based on your application source code. And it supports you to reorganize tests during refactoring.


JWebUnit

JWebUnit is a Java framework that facilitates creation of acceptance tests for web applications. It evolved from a project where we were using JUnit to create acceptance tests. Also, we can have different testing engines. Currently, only HtmlUnit plugin is ready. As the tests were being written, they were continuously refactored to remove duplication and other bad smells in the test code. JWebUnit is the result of these refactorings. JWebUnit provides a high-level API for navigating a web application combined with a set of assertions to verify the application's correctness. This includes navigation via links, form entry and submission, validation of table contents, and other typical business web application features. This code try to stay independent of the libraries behind the scenes. The simple navigation methods and ready-to-use assertions allow for more rapid test creation than using only JUnit and HtmlUnit. And if you want to switch from HtmlUnit to the other soon available plugins, no need to rewrite your tests.


Mia-Modernization

Mia-Modernization is a customizable solution for modernizing J2EE legacy applications according to specific enterprise contexts : * Retro-modeling : Java to UML transformations * Refactoring : Java to Java transformations Mia-Modernization can capture all the information contained within the Java or XML source files of any J2EE application (structure, variable definitions, statements, method invocations, ...) and provides a very powerful environment for defining transformation rules to apply on this information :


NDepend

NDepend is a tool that simplifies managing a complex .NET code base. Architects and developers can analyze code structure, specify design rules, plan massive refactoring, do effective code reviews and master evolution by comparing different versions of the code.


Neptuner

Neptuner is a codebase management suite. It puts together a set of tools to simplify and enable easier maintenance of source code. The tool-suite includes programs for: browsing, commenting/review, reformatting, enforcing coding standards, beautification, generating unit-test/boilerplate code, refactoring etc.


ReSharper

ReSharper is undoubtedly the most intelligent add-in to Visual Studio 2005. It comes equipped with a rich set of features that greatly increase the productivity of .NET developers. With ReSharper you get intelligent coding assistance, on-the-fly error highlighting and quick error correction, as well as unmatched support for code refactoring, unit testing, and a whole lot more. All of ReSharper's advanced features are available right from Visual Studio.


Resource Refactoring Tool

Resource Refactoring Tool provides developers an easy way to extract hard coded strings from the code to resource files.


Rhino.Mocks

A dynamic mock object framework for the .Net platform. It's purpose is to ease testing by allowing the developer to create mock implementations of custom objects and verify the interactions using unit testing. Rhino.Mocks is an attempt to create easier way to build and use mock objects and allow better refactoring support from the current tools. It's a hybrid approach between the pure Record/Replay of EasyMock.Net's model and NMock's expectation based model. Rhino.Mocks originated from EasyMock.Net and attempt to improve on their model to create easy to use and power mocking framework. It's free for use and modification for open source and commercial software.


RMock

RMock 2.0.0 is a Java mock object framework to use with jUnit. RMock has support for a setup-modify-run-verify workflow when writing jUnit tests. It integrates better with IDE refactoring support and allows designing classes and interfaces in a true test-first fashion.


SolidSDD - Software Duplication Detector

The Software Duplication Detector (SolidSDD) is a standalone application for detecting and managing source code duplication (i.e., code clones) in software. It can be used to analyze large projects and detect code that has been cloned (e.g., via cut-n-paste operations) during development. The currently supported programming languages are C, C++, C# and Java. In addition to identifying the code clone fragments, SolidSDD offers an intuitive graphical interface for assessing the code duplication characteristics and the location of the duplicated fragments in the code stack. This interface enables developers, architects and software managers to better manage the process of refactoring by assessing the required effort and establishing refactoring priorities.


SQL Enlight

SQL Enlight is an advanced code analysis, refactoring and productivity tool for Microsoft SQL Server. The tool is designed to facilitate and improve database development, administration, and maintenance. It can help development teams and database administrators to enforce common coding standards and best practices, identify problems early in the project lifecycle, implement automatic code reviews and improve their overall productivity. Using SQL Enlight analysis features, SQL Server developers and administrators can early find potential performance and design defects over SQL Server databases and T-SQL code.


SQL Schema Sync API

SQL Schema Sync API is extremely easy-to-use. The Intuitive visual tool allows the snapshotting of DB structure, and comparison of databases and their synchronization. The work of the visual tool in the wizard mode provides a user-friendly interface which allows quick saving of DB snapshots and synchronization. Thus, you save money on the licenses for your end users, staff training and obtain a powerful component with a set of advanced features. The SQL Schema Sync API allows you to compare database structures, to easily update them, use data refactoring and specify exact objects to be synchronized.


Telerik JustCode

JustCode is an agile development add-in for Visual Studio 2005, 2008 and 2010 that enhances .NET development productivity by providing blazing fast solution-wide, on-the-fly code analysis and error checking, smart code navigation and refactoring features. With a cross-language engine, JustCode provides features for C#, VB.NET, ASP.NET, XAML, JavaScript and HTML and supports multi-language solutions. JustCode instantly detects errors throughout your current solution in real time. Whenever code is changed, JustCode quickly checks for errors and exposes them in an easy to use Visual Studio error sidebar. With JustCode, you can instantly see how changes in a file affect other files in your solution, even across .NET language barriers.