Start United States USA — software Writing Code, Debugging, and Testing

Writing Code, Debugging, and Testing

116
0
TEILEN

This analysis explains the reasons and importance for not only writing code, but taking the time to complete debugging and testing for optimal results.
Join the DZone community and get the full member experience. Testing is learning by experimenting, a fundamental learning process ingrained in human nature. We test even when we don’t realize it. When we decide which route to take to work, what to do on vacations, how to spend our time, we test our options first. Newborn children understand the world by experimenting. They play around and run only to learn the meaning of falling and getting up. Our testing abilities and how much we can learn are usually aligned. This has to do with our cognitive ability to understand. Our curiosity, our attention to detail, and our ability to focus on the important and discard the unimportant. Our ability to improvise, make careful decisions, and be creative. We may have many ideas about how to solve a problem, each leading to a different solution. How do we pick the right one? We test our ideas, at least in our minds. If that’s not our first step then god help us! Blindly implementing solutions without much thought is not a good idea. We may end up with frustration and disappointment. Testing ideas and concepts is a basic first step for successful implementation. Until we interact with our system or product and test it, what we think we know about it is mere speculation. We have to observe our product’s actual behavior and compare that to our expectations. A day at work for a software engineer involves test engineering, either directly or indirectly. A software engineer will write code and debug. Above all, code writing involves decision-making. We think and test before we make decisions. This could be tested at any level (e.g., unit, integration, system), based on the results from test cases at different abstraction levels and different levels of detail. Different development tasks may call for different tools, different test strategies (e.g., proactive or reactive), and different test-case suites. But at the end of the day, all software engineers have the same goal: Build something that works as expected while learning as we build and improve.

Continue reading...