Showing posts with label Vulnerability. Show all posts
Showing posts with label Vulnerability. Show all posts
On 14 August 2010, Japanese developer Masato Kinugawa reported a scripting vulnerability in Twitter’s automatic URL-linking functionality. Twitter reportedly fixed the problem, but with an upgrade to the service in September, the problem appears to have been reintroduced.
Comprehensive test coverage is a means developers use to ensure code quality. In test-driven development, programmers create tests before there’s even any code to test, then write code to satisfy the requirements of the tests. Less extreme approaches to test coverage are probably more common in practice, and are sometimes a better approach to tackling a particular development project. For a major project like maintaining the Twitter codebase, though, at least some kind of testing coverage is important — including regression testing and other means of checking for the re-emergence of previously fixed errors in new code.
A particularly common means for the reappearance of old errors is poor version control practice. Perhaps even more important for protecting against the reintroduction of old bugs is proper use of a version control system. For those who are not familiar with the concept, version control software is like a highly optimized means of keeping backups during software development that can help do things like back out of changes that turned out to be a bad idea, keep all developers on a project up to date, merge changes between separate development branches, and manage patches. If new code is improperly merged with old, allowed to become out of sync then committed in a way that clobbers previous fixes, or otherwise mismanaged in version control, or if version control is simply not used at all and human beings have to manually handle the tasks automated by version control, previously fixed bugs can all too easily be reintroduced with new code.