quality assurance comparison in traditional and agile methodologies
TRANSCRIPT
Quality Assurance Comparison in Traditional and Agile
Methodologies
Aafia Kamal Sidra Sarwar Rana
Abstract Introduction Limitations Of Traditional Or Heavyweight Methodologies Limitations Of Agile Or Lightweight Methodologies Traditional VS Agile methods Quality Assurance Techniques Waterfall Model with SQA and V & V Agile methods : Quality techniques Agile methods : Quality Practices Conclusion Future work
Software quality is one of most important software concerns now days. There are several methodologies for software development but the most common among them are heavyweight and lightweight methodologies
There are weaknesses and strengths in both methodologies
In this paper we analyze various quality assurance techniques of traditional methods and agile processes to show how agile methods and traditional methods achieve software quality
Heavyweight methodologies are considered to be the traditional way of developing software
Heavyweight methodologies require defining and documenting a stable set of requirements at the beginning of a project
Agile methods emphasize working software as the primary measure of progress
Agile methods very little written documentation, develop s/w in short time boxes called iterations
The major objective of our research paper is to compare the quality assurance techniques of agile and traditional software development processes
Determine the similarities and differences between agile and traditional software quality assurance techniques
Investigate how agile methods integrate the support for software quality within their life cycle
Heavyweight methods disallow change as opposed to agile processes
A further limitation of heavyweight methodologies is the management of complexity
Treatment of people involved in developing a process
Biggest limitation of agile methodologies is the Handling of Larger Teams
Agile manifesto which states satisfy the customer through early and continuous delivery of valuable software
Most agile techniques do not support traditional walkthroughs and code inspections during the life-cycle
Relies on tacit knowledge embodied by the team, rather than writing the knowledge down as documentation
Agile methods are adaptive where as traditional methods are predictive
Waterfall model is the oldest and the most mature software development model so we have chosen it to investigate its QA process
Despite the success of Waterfall model, it has a number of drawbacks, like inflexibility in the face of changing requirements
Agile methods deal with unstable and volatile requirements by using a number of techniques i.e. simple planning, short iteration, earlier release, and frequent customer feedback
This enable agile methods to deliver product releases in a much short period of time compared traditional approach
This brings us to our research question, how can agile methods ensure product quality
The most widely used quality-focused processes are, Software Quality Assurance (SQA) and Verification and Validation (V&V)
Quality assurance techniques can be categorized into two types, static and dynamic
Waterfall model uses both static and dynamic techniques. However, agile methods mostly use dynamic techniques
Waterfall model with SQA and V&V Since the artifacts of one activity are the
input for the succeeding activity, no succeeding phase can begin until the predecessor phase finishes
It’s a slow Process too many dependents No customer involvement
Primary characteristics of Agile methods include Simple Planning, Short Iteration, Earlier release and Frequent customer feedback
In order to support high quality assurance agile methods include the following concepts & techniques
Refactoring Test Driven Development (TDD) Tests replace traditional artifacts Agile model driven development (AMDD)
A disciplined way to make small changes to source code to improve its design and making it easier to work
The developers neither add nor remove any functionality or logic they merely improve its quality
Refactoring throughout entire project life cycle saves time and increase quality
TDD also known as test first programming
An approach to programming where agile software developers must first write a test that fails before they write new functional code
TDD forces developers to do detailed design just in time (JIT) before they write a code
It ensures that agile developers have testing code available to validate their work, ensuring that they test as early as possible
It encourages them to refractor their code to keep it at highest quality possible because they know that there is a test suite in place that will detect if they have broken anything as the result of refractoring
Agile developers believe that tests are the artifacts that need to be developed and maintained throughout a project.
Agilest consider acceptance tests to be the first requirement artifact.
AMDD suggests that it’s a good idea to model before you code
With AMDD you do a little bit of modeling and then a lot of coding, iterating back when you need to
Your design efforts are now spread out between your modeling and coding activities, with the majority of design being done as part of your implementation efforts
Agile methods include many practices to support quality assurance. We now list these practices and compare them with the quality techniques used in waterfall model
On-site customer Pair programming Continuous integration Acceptance testing
The quality of software in agile framework is better than traditional framework because the Agilist developers ensure their code’s good design, quality and functionality through refactoring, TDD and other practices
Also the quality assurance and testing and bug fixing activities are more frequent and start at a very early stage in the agile process as compared to the traditional framework
In our research paper we analyze the quality assurance techniques of both Waterfall model and agile approach and conclude with the comparison.
We have focused and highlighted a few quality practices in this paper. Further work can be done in order to identify more quality practices of both Waterfall model and agile approach.
The application of agile SQA practices is still a new topic and much research can be done in this field to better improve the software quality with agile development
Thank You!!!!!