1. Waterfall model
It is the first and most basic technique to software development. It's a straightforward model that's simple to use and comprehend. The execution takes place in a sequential order, which means that the output of one step equals the input of the next. It's also known as the Linear-sequential life cycle model for this reason.
To avoid concerns with many stages overlapping, each step should be completed before moving on to the next. Each stage of the waterfall model includes the transfer of previous stage deliverables, such as requirements, to the design phase, design to development, and so on. The waterfall methodology will be frequently used when we have life critical (hospital application) and machine critical (military project) requirements.
- Requirement collection
- Feasibility study
- Design
- Coding
- Testing
- Installation
- Maintenance
Requirement Collection
The first phase of the waterfall model is requirement collection, in which a business analyst compiles all of the client's information or business requirements into a requirement
document. In addition, this document should be concise and easy to comprehend, with all needs specified appropriately.
The SRS document is created using Software Requirement Specification [SRS], Customer Requirement Specification [CRS], and Business Requirement Specification [BRS]. And this SRS document contains everything that has to be built and designed.
Features of a functional requirement
- It should be written in a simpler language so it can be easily understandable.
- The specification should be in the proper flow.
- The requirement should be countable.
Feasibility Study
The feasibility study is based on the project's requirements, and it involves a number of professionals (human resources, business analysts, and architects) determining if the project can be completed or not. To create a successful project, we must adhere to the following qualities, which are based on the needs of the customer:
Aspects |
Description |
Legal |
Is the company capable of managing the project in accordance with cyber law and other monitoring agreements? |
Technical |
Check whether the software is supported by the available machine. |
Operation feasibility |
Shouldn't the corporation be able to produce operations that are requested by customers? |
Economic |
Is the company capable of completing the product within the budget? |
Schedule |
Whether or not the project will be completed on time is debatable. |
Design
We'll go on to the next level, which is design, once the feasibility study is completed. We will design the product's architecture using a variety of technologies, including a mix of software and hardware, multiple programming languages (PHP, Java,.Net, and so on), and a database (MySQL, Oracle). After that, the designer prepares a plan for the application, which can be divided into two components:
- High-Level Design
- Low-Level Design
High-Level Design [HLD]:
The designer will focus solely on models such as decision trees, flow diagrams, decision tables, flow charts, and data dictionaries, while the architect will handle everything else.
Low-Level Design [LLD]:
The designer will focus on components such as the user interface (UI), while the developer manager will handle the rest.
Coding
We are now ready to develop the application after we have completed the design stage. For this, the developer will begin developing code using their programming language skills, which might include Python, C, Java, C#, C++, and other languages. Back-end developers will code the back-end depending on the required operations, while front-end developers will create an appealing user interface.
Testing
It will be sent along to the concerned test engineer after the coding has been compiled. The test engineer will then begin testing the application's functionality in accordance with the client's requirements.
They may notice some defects or problems (not operating as per the client's needs) when testing the programme and report them to the developer with the appropriate rationale. And the developer will check whether the reported bug is true or not. If it is correct, the developer will correct it and replace it with the new one. After that, the tester will re-test it to see if the bug has been fixed.
Installation
We'll go on to the next level once the application has been thoroughly tested (installation). The process will continue in this manner until the software is stable, bug-free, and meets all of the customer's needs. When the programme has reached a stable state, it will be installed in the client's environment for them to utilise.
After receiving the programme, the client will conduct one round of testing to ensure that it meets their requirements. If they encounter an error, they will notify the development team, who will work to remedy the issue for the specific application. The programme will be deployed for end-user use once all issues have been resolved.
Maintenance
After successfully completing the six stages of the waterfall model, we will proceed to the final stage (maintenance). The process will continue until the software is completed, at which point the end-user will begin to use the application and may encounter certain issues that must be tested and resolved. Maintenance is the process of looking after a product from time to time, which involves changes to the hardware and software in order to maintain operational effectiveness and improve performance.
Example of the waterfall model
Previously, it was utilised for applications such as Human Resource Management [HRM], Supply Chain Management System, Customer Relationship Management [CRM], and Retail Chains.
Software-testing is widely used technology because it is obligatory to assess each and every software beforehand deployment.
This Manual testing tutorial includes all topics relevant to testing such as Methods like Black Box Testing, White Box Testing, Gray Box Testing. Levels like Unit-testing, Integration-testing, Regression Testing etc.
Let’s get started…
What is Software-testing
Software-testing is a simpler process of identifying the correctness of software by considering the attributes likely Reliability, Scalability, Portability, Re-usability, Usability and gauging the execution of software components to find the software bugs or errors or defects. Testing is requisite because it will be a risky situation if the software be unsuccessful any of the time due to lack of testing, therefore, without testing software cannot be deployed to the end user.