Web application development is an extension of standard software development with distinctive characteristics such as an increased need for an iterative development process. Security is also a greater issue for web applications than traditional desktop applications since they have much greater exposure to attack. For example, a website that’s used to trade stocks may be accessed by millions of users with a strong financial incentive to exploit vulnerabilities in the application. Web developers can mitigate this risk with methodologies that place greater emphasis on documentation, testing, change control and quality assurance, especially for the high workloads common with web applications.
Web applications tend to have shorter development lifecycles and use more business models than desktop applications. Development teams are also smaller, but with a greater variety of test plans in most cases as compared to traditional software development. Additional differences include more evaluations from end-users, resulting in more specific requirements.
The testing process of web applications generally have the same phases as traditional development, including unit, integration and system testing. The general goal of this process is to determine if the application responds as expected and identify the changes needed to correct its behavior. The information that web applications use has a higher rate of errors, including omissions, redundancies and incorrect labels. Web applications also have multiple layers and a greater number of dynamic configurations. The testing process for web applications is therefore more complex since each layer requires separate testing.
Web developers rely on frameworks and reuse code more frequently than desktop developers to reduce time-to-market. Reusing external components is particularly important for reducing development time, which can also reduce costs in many cases. However, the time needed to develop small components is often less than that needed for developers to learn new APIs. Furthermore, organizations may want greater control over the development of components that are critical to an organization’s operations.