Problem: A feature of a
product was working in one of the previous releases, but it is not working now.
We might have come across this problem statement many times in software development.
Due to some correction of issue or enhancement of the product might lead to
this kind of issue. And sometimes this broken functionality issue gets missed
from the organization and it comes back as a customer reported issue.
Analysis: This kind of issue
is not uncommon. Some products have a life cycle of more than 10 years like Windows.
In such cases, the code would have been written long back by some developer and
fix would be done by some one else. So the impact of changes on the existing
functionality may not be fully known by the new developer who is working on that
code. With busy schedule and manual testing, even the testers some time miss to
test all the scenarios or features of the product.
Solution: Impact analysis of both
major and minor changes should be conducted thoroughly. Code review also can
detect this kind of issues. Automated testing of the features is another way of
catching this kind of bugs early. Let’s takes a scenario, where the issue has
been reported of some broken functionality in the product. How do we easily
find out the reason for the same?
Ø
First understand the
problem, the workflow and trigger to repeat the problem.
Ø
Target the area in
the repository where the change history is maintained. Check the difference between
the newer code and the older code (where the issue is not there).
Ø
The feature that is
not working, get the User Interface that was supposed to do the work. For example,
if it’s a menu item or button click. Then search for that item in the code of
the identified project. Check all the reference of the item, where we are
writing the controller logic for that user interface.
Ø
Get all the places
where the code that has changed due to new fix.
Ø
Replace it with the
older version code in those places one by one and try to identify the reason of
the issue.
Ø
Then finally merge
the older and new code so that both the newer and older functionality of the
product is maintained.
Comments
Post a Comment