|
Software engineering interview - October 14, 2008 at
18:10 pm by Rajmeet Ghai
Describe the differences between the waterfall model and the spiral model.
Answer
In case of a waterfall model, the stages are in a sequence. Once one
stage is over, the process moves to the next phase. Hence, accommodating
changes in the middle is difficult. On the other hand, accommodating changes in
requirement is easy in a spiral model. This is because we need not start from
the beginning because prototypes are created in every phase. Waterfall model is
best suited for large projects. Spiral model is best suited in case of complex
projects.
Secondly, because of the sequential nature of Waterfall model, if any mistake is
done in between of a phase, we may need to begin from scratch. On the other
hand, in spiral model because the prototypes are tested at the end of each
phase, mistakes can be handled.
Explain types of tests performed during the stabilizing phase.
Answer
Component testing
Testing done on individual components is called as component testing. Component
here can be a software item for which separate requirements are given. For e.g.
payment gateways
Database testing
As the name suggests; database testing is performed on the database used in the
application. Testing typically includes checking of the database interaction,
integrity of the database, and security of the database. SQL queries needs to
be fired in order to test the database in case the front end fails to produce
result.
Infrastructure testing
Infrastructure testing is usually performed in case of networking projects. It
involves the testing of the hardware, software, Web servers like Apache,
Tomcat. It ensures proper communication between the hardware and software
components of the system.
Security testing
Security testing aims to protect or secure the data in the system. It must
ensure that the data is kept confidential and properly authenticated if needed.
To ensure the data is available at all times, properly authorized and not
changed. To ensure that the data is available even though there may be some
failure.
Integration testing
An application is usually split into modules. On performing module testing on
these modules (individually), they are integrated. On integration, integration
testing is performed to ensure that the functionality is not broken.
Integration testing needs to ensure that on integration, the modules continue
to work as before.
User acceptance and usability testing
User acceptance testing is performed at the end. The user tests the application
to ensure that the requirements are implemented as specified. Once the user is
satisfied, the project is ready to be closed. Usability testing is performed on
the user as well. It is used to evaluate the product depending on the user’s
response.
Stress, capacity, and performance testing
Stress testing is performed to evaluate how the system responds to stress. It
decides how well can the system handle errors and how robust. It is e.g.
inputting many characters in a text box.
Capacity testing
Capacity testing is performed by simulating the application with more inputs as
compared to the capacity. E.g. more number of users.
Performance testing
Performance testing is used to test the performance of the system. Performance
is measured in terms of response time to a particular request, number of
requests that can be processed per second etc.
Regression testing
Regression testing is done on the changes made to the application to ensure
that the older functionality works the same way. Test scenarios are prepared
for regression testing.
Recording the number of bugs
On testing the application, if bugs are found; they should be recorded. The
bugs decided the quality of the system. The bugs need to be reported to the
developers and tracked. The number of bugs decides the performance of the
application.
Explain importance of creating a vision statement for the project during the
envisioning phase.
Answer
Envisioning phase of a project gathers the scope of the project, identifies
risks etc. A vision statement is a clear idea of the description of the
project. The statement gives the reader an idea or helps him visualize the
application. Vision statement should describe the outcomes that are not
expected in the near future. The vision statement helps the team understand the
goals and objectives of the project.
|