1. Software Development Models
In the previous section we learned what’s testing, why is testing and who is doing the testing. In this section we will talk about how the testing is incorporated as part of the software development activities in different software development models. We will also discuss the different levels and types of testing, and finally we will discuss maintenance testing. First, let’s talk about software development lifecycle models. There are many ways software activities are organized to create the software and how activities relate to one another logically and chronologically. Each one of them is called a software development model. Software models vary according to its objective, discipline, interest, time to market, documentation, type of activities performed at each stage, and other factors. There are a number of different software development lifecycle models.
The most appropriate software development model must be selected and applied for each software project. The testing approach or how do we do the testing? Varies according to the selected lifecycle model. It’s an important part of a tester’s role to be familiar with the common software development lifecycle models so that aboriginal activities can take place. Software Development and Software Testing no matter which software development lifecycle model is chosen, this activity should start in the early stages of the life cycle. Adhering to the testing principle of early testing. This syllabus categorizes common software development lifecycle models as follows sequential development models and Iterative and incremental development models sequential versus Iterative incremental development models can be considered as the two exercises.
On the very end of one extreme is the waterfall model and on the other end of the Xtreme is agile models. In between you can find tens of models lay in the spectrum. The Senate chose to talk about the waterfall, the model and various agile models. I will talk about each one of them in some detail. And if you need more information about various models, you can check my other course on software models where you can find a coburn for that course in the bonus lecture of this course. On one side, Sequential development models describes the software development to process as a linear sequential flow of activities.
This means that any phase in the development to process should begin when the previous phase is complete. In theory there is no overlap of phases, but in practice it’s beneficial to have early feedback from the following phase sequential development models deliver software that contains the complete set of features but typically require months or years for delivery to stakeholders and users. We will talk about the waterfall and the V model related to the sequential development models in future videos. On the other hand, we have incremental models and Iterative models where the software development process goes in short cycles of activities where can be visited multiple times. Duration of each cycle could be days, weeks or as low as a few hours. We will talk more about agile models related to ituative incremental models, but let’s start with the waterfall model in the coming video.
2. The Waterfall Model
The oldest and one of the very well known development models is known as the Waterfalls. Understanding the waterfall model will help in understanding many coming concepts. As seen in the graph, the waterfall model is a sequential model where every stage must be completely finished before moving to the next stage. Any software project starts with an idea of need that needs to be fulfilled by the software.
The requirement is collected from the user in what we call the User Requirements stage. An analyst will analyze the user requirements and boot it in the form of a requirement from the computer or system point of view, or in other words, defining the functions required to be carried out by the software to meet the user needs in the form of screens and dialogues and user scenarios. We will store this in a document called System Requirements. System Specification or Functional Specifications. For example, the user requirement may be something like an annual report showing the employees names and sellers. The system requirement will state that the report has to be printed in a four paper.
The logo in the upper left at position 210, with which 120. The font is time, the font size is 14 and the table header is bold and so on. Then comes the design phase, which is done in two stages global Design and Detailed Design. Global Design is concerned with mapping the system requirements to computer modules and how these modules interact with each other. Those modules can reside on a single computer or multicomputer or even different networks. This step is usually done by a designer or an architect and developers. Global design is also called architecture design or high level design.
Detailed Design is about detailing what each module should do individually. It’s also called Lowlevel Design and is done by designers and developers. The following stage is coding. This is where developers convert the detailed design of each module into a piece of software by using one of the many computer programming languages. Finally, testing is carried out. Once the code has been finally completed to make sure it’s ready to ship, testing happens towards the end of the project lifecycle, so defects are detected close to the ship date.
With this model, it’s difficult to get feedback passed back up the waterfall. In a waterfall, you can quickly get down, but it’s very hard to go against the waterfall. That was the waterfall model. I have seen many, many companies claim that they use the waterfall model. But after explaining the model to them, they realize that what they are doing is not waterfall at all. Actually, I haven’t seen any company using this model anymore. The key point in waterfall is that you would need to have a very, very detailed system requirements before you start the design.
Do you have very detailed system requirements? Do you agree with the client on the size of the font before coding? Do you finish the whole coding before moving to the testing stage. If not, then for sure you are not using the waterfall model. Now. Is waterfall a good model or not? Well, it has its benefits. It might be a good model for very, very specific circumstances, but journalists speaking, it has many drawbacks.