Working environment and testing

When a developer writes a program, he makes sure that it works in many different environments, on machines with different resources, and in different time zones. The software should run on screens of various sizes and orientations, with limited memory and low processing power.
For example, if software is written for a web browser, it should work on all major browsers. When creating classic software, in most cases it should work on both Mac and Windows platforms. If the application you are creating depends on receiving data, it should continue to work even if the data connection is slow or even completely absent for a while.
To write a software component, developers try to think through every possible scenario imaginable and plan to test them. They start with what is called the default scenario (or “happy path”), in which nothing unexpected happens, and all possible problems along the way – which is important – are documented and a test is planned for each. Some developers start by writing “test cases” that simulate such scenarios. They then write functional code that passes these test cases.
Developers need to understand the requirements for software, which are often ambiguous and incomplete. The skill of the developer is not manifested in how he writes the solution, but rather in which solution he deems necessary.

