4. Testing Methodology
There are numerous methodologies available for developing and testing software. The methodology you
choose depends on factors such as the nature of project, the project schedule, and resource availability.
Although most software development projects involve periodic testing, some methodologies focus on
getting the input from testing early in the cycle rather than waiting for input when a working model of the system is ready. Those methodologies that require early test involvement have several advantages, but also involve tradeoffs in terms of project management, schedule, customer interaction, budget, and communication among team members.
Testing fits into the various software development life cycles. But today’s we used the Agile Methodology & V Model:
4.1 Agile Methodology
Agile as the name refers implies something to do very quickly. Hence Agile Testing refers to validate the client requirements as soon as possible and make it customer friendly. As soon as the build is out, testing is expected to get started and report the bugs quickly if any found.
Emphasis has to be laid down on the quality of the deliverable in spite of short timeframe which will further help in reducing the cost of development.
Advantages of Agile Methodology:
The very first advantage that the company got to see with the Agile Methodology is the saving of time and money. There is less documentation required though documents help to a great deal in verifying and validating the requirements but considering the time frame of the project, this approach leads to focus more on the application rather than documenting the things. It tends to have a regular feedback from the end user so that the same can be implemented as soon as possible.
Agile Methodology offers to other approaches available is that in case there is any Change request or
enhancements come in between any phase, it can be implemented without any budget constrain.
Though it is useful for any Programming language or Technology around, it is advisable to make it
Employ For Web 2.0 or the projects which are new in media.
Daily meetings and discussions for the project following Agile approach can help to determine the
issues well in advance and work on it accordingly. Quick coding and Testing makes the management
aware of the gaps existing in either requirements or technology used and can try to find the workaround
for the same. Hence, with the quicker development, testing and constant feedbacks from the user, the
Agile methodology becomes the appropriate approach for the projects to be delivered in a short span of time.
4.2 V Model
The V-Model, also called the Vee-Model, is a product-development process originally developed in Germany for government defense projects.
The development process proceeds from the upper left point of the V toward the right, ending at the upper right point. In the left-hand, downward-sloping branch of the V, development personnel define business requirements, application design parameters and design processes. At the base point of the V, the code is written. In the right-hand, upward-sloping branch of the V, testing and debugging is done. The Unit Testing is carried out first, followed by bottom-up integration testing. The extreme upper right point of the V represents product release and ongoing support.
4.2.1 Unit testing
In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers. The purpose is to verify the internal logic code by testing every possible branch within the function, also known as test coverage. Static analysis tools are used to facilitate in this process, where variations of input data are passed to the function to test every possible case of execution.
4.2.1 Integration testing
In integration testing the separate modules will be tested together to expose faults in the interfaces and in the interaction between integrated components. Testing is usually black box as the code is not directly checked for errors.
4.2.2 System testing
After the integration test is completed, the next test level is the system test. System testing checks if the
integrated product meets the specified requirements. Why is this still necessary after the component and
integration tests?
The reasons for this are as follows:
In the lower test levels, the testing was done against technical specifications, i.e., from the
Technical perspective of the software producer.
the system test, though, looks at the system from the perspective of the customer and the future
user.
The testers validate whether the requirements are completely and appropriately met.
Many functions and system characteristics result from the interaction of all system components,
consequently, they are only visible on the level of the entire system and can only be observed
and tested there.
4.2.4 User acceptance testing
Acceptance testing is the phase of testing used to determine whether a system satisfies the requirements
specified in the requirements analysis phase. The acceptance test design is derived from the requirements
document. The acceptance test phase is the phase used by the customer to determine whether to accept
the system or not.
Acceptance testing helps:
To determine whether a system satisfies its acceptance criteria or not.
To enable the customer to determine whether to accept the system or not.
To test the software in the "real world" by the intended audience.
To determine system changes according to the original needs.
0 comments:
Post a Comment