Methodologies
Waterfall Model
This model is used only when the requirements are very well known, clear and fixed. Product definition is stable. Technology is understood. There are no ambiguous requirements. Ample resources with required expertise are available freely. The project is short. The waterfall model provides a structured approach; the model itself progresses linearly through discrete, easily understandable and explainable phases and thus is easy to understand; it also provides easily identifiable milestones in the development process.
- This model is simple and easy to understand and use.
- It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process
- In this model phases are processed and completed one at a time. Phases do not overlap.
- Waterfall model works well for smaller projects where requirements are very well understood.
Advantages of waterfall model:
Agile model
When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced. To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world.
- Customer satisfaction by rapid, continuous delivery of useful software
- People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
- Working software is delivered frequently (weeks rather than months).
- Face-to-face conversation is the best form of communication.
- Close, daily cooperation between business people and developers.
- Continuous attention to technical excellence and good design.
- Regular adaptation to changing circumstances.
- Even late changes in requirements are welcomed.
Advantages of agile model:
Testing Methodologies
Manual Testing
Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user and use most of all features of the application to ensure correct behavior. To ensure completeness of testing, the tester often follows a written test plan that leads them through a set of important test cases.
- Choose a high level test plan where a general methodology is chosen, and resources such as people, computers, and software licenses are identified and acquired.
- Write detailed test cases, identifying clear and concise steps to be taken by the tester, with expected outcomes
- Assign the test cases to testers, who manually follow the steps and record the results.
- Author a test report, detailing the findings of the testers. The report is used by managers to determine whether the software can be released, and if not, it is used by engineers to identify and correct the problems.
A systematic approach focuses on predetermined test cases and generally involves the following steps.
Automation Testing
A test automation framework is an integrated system that sets the rules of automation of a specific product. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled to represent a business process. The framework provides the basis of test automation and simplifies the automation effort.
- Defining the format in which to express expectations
- Creating a mechanism to hook into or drive the application under test
- Executing the tests
- Reporting results
The Testing framework is responsible for: