Author:
Wing Kum Amy Law
Affiliation:
TransCanada, Canada
Keyword(s):
Software engineering, software development methodology, agile, test driven development, automated tests, junit tests, software design pattern, requirement analysis, software maintenance and reliable software.
Related
Ontology
Subjects/Areas/Topics:
Applications
;
Applications and Software Development
;
Component-Based Software Engineering
;
Engineering Information System
;
Enterprise Information Systems
;
Enterprise Software Technologies
;
Information Systems Analysis and Specification
;
Maintenance
;
Management Information Systems
;
Model-Driven Software Development
;
Operational Research
;
Pattern Recognition
;
Reliable Software Technologies
;
Requirements Analysis And Management
;
Software Engineering
Abstract:
The tests needed to prove, verify, and validate a software application are determined before the software application is developed. This is the essence of test driven development, an agile practice built upon sound software engineering principles. When applied effectively, this practice can have many benefits. The question becomes how to effectively adopt test driven development. This paper describes the experiences and lessons learned by two teams who adopted test driven development methodology for software systems developed at TransCanada. The overall success of test driven methodology is contingent upon the following key factors: experienced team champion, well-defined test scope, supportive database environment, repeatable software design pattern, and complementary manual testing. All of these factors and the appropriate test regime will lead to a better chance of success in a test driven development project.