ST-Manual Testing - 1 - SDLC
Software Development Life Cycle
The Software Development Life Cycle (SDLC) is the process of developing software from the initial concept to the final deployment. It is a systematic approach that combines planning and requirement Analysis, design, coding, testing, and maintenance efforts to ensure quality and reliability. The SDLC is used to ensure that the software is developed in a systematic and well-documented manner to ensure quality, reliability, and cost-effectiveness.
The SDLC typically consists of the following phases:
Requirement analysis is a critical phase in the software development life cycle (SDLC) that involves gathering and defining the requirements of a project. It is an iterative process that uncovers customer needs and objectives and helps determine how the system should work.
Requirement analysis involves a lot of communication between the stakeholders and customers to ensure that the right goals and requirements are met. The stakeholders must also ensure that the customer's needs and objectives are met in a cost-effective way. During the process, the team must identify the various components that the system must include and evaluate the cost of each component.
It is important to note that requirement analysis is an iterative process that involves constant feedback from the customer. This helps to ensure that the final product meets the customer's expectations and meets both the customer's and the developer's needs. After the requirements have been gathered and defined, the team can then begin the design and development of the system.
Design :The technical specifications are the detailed requirements for the software application in terms of functionality, performance, scalability, cost, and other criteria.
Technical specification design is the process of defining the technical requirements for the software application. This includes the architecture, database design, user interface design, and other technical elements of the application. It is important to get the technical specifications right as it ensures that the software application meets the required standards. Technical specification design should be done in the early stages of the software development lifecycle. The design should reflect the requirements of the end users and the technology used to build the software application. In this stage, the architects or technical leads will create the high-level design of the software application. This includes the database design, user interface design, and the overall architecture of the application.
Software system architecture is the foundation from which software applications are built. It is a technical design of the components of the system and their relationships, including interfaces, protocols, and data structures. It defines the fundamental organizational structure of the software, its components, and their interactions. System architecture defines the components of the system, the relationships between them, and their interfaces. The architecture also defines how the components interact with each other and how they are connected. It may also include detailed diagrams and specifications of the various components and how they operate. The architecture helps define the overall design of the system and ensures consistency, scalability, and maintainability. It provides a blueprint for the design of the system and helps ensure that all components work together as expected.
A high-level design document typically includes an introduction, information about the overall system and its purpose, system architecture, components and relationships, external interfaces, design constraints, and design considerations. Additionally, it should provide details about the data models, interfaces and communication protocols, performance requirements, and security considerations. The document should also provide a summary of the design and any necessary diagrams, pictures, or charts. Overall, the document should provide a complete description of the system and the design decisions that were made. It should also include a description of the system's components, the relationships between them, and the overall architecture. Finally, it should define the design constraints, such as user interfaces and performance requirements, and the design considerations, such as system reliability and scalability.
A low-level design document should include a detailed description of all components, their interactions, and their implementation. It should also include a clear list of assumptions about user behaviour that the system should be built to accommodate, as well as any other external dependencies that will need to be managed properly. Additionally, performance considerations should be included, so that the system is able to operate optimally given the resources available.
Coding is the process of creating computer programs using a programming language. It involves writing instructions in a language that a computer can understand and execute to achieve a specific goal. Coding requires creativity, problem-solving skills, and logic to create a functional and efficient program. A coder must be able to think logically and break down a problem into smaller tasks that can be solved one at a time. The result of coding is a program that runs on any computer, smartphone, or tablet.
Software testing is the process of validating and verifying that a software program or application is working as intended. It is the process of ensuring that the software meets the user’s requirements, is of high quality, and is secure. Software testing involves running tests and verifying the results, fixing bugs, and repeating the process until all the issues have been identified and fixed. The goal of software testing is to ensure that the software is defect-free, meets all business and user requirements, and is suitable for use.
Software deployment is the process of installing, configuring, and running software applications on computers and other computing devices. Software deployments provide a solution for users to be able to quickly and easily use the software that they need and allow for faster updates and bug fixes. Deployment involves packaging up the software so that it can be easily transported, configuring the software for the target device, and ensuring that it runs properly once installed. In addition, software deployments are also used to maintain the security of the system, ensuring that only authorized users can access the software and its data.
Software maintenance is the process of updating and managing a software application over time. This process involves performing bug fixes, adding new features and functions, and improving the overall user experience. Maintenance is an important part of software development, as it helps to keep software up-to-date and prevent the application from becoming outdated.
· Software maintenance typically involves several different tasks, such as:
· Identifying and resolving software bugs and errors
· Updating existing software components to address new or changing user requirements.
· Adding new features or functions to the software
· Upgrading the underlying software architecture or infrastructure
· Improving the overall performance of the software
· Preparing and releasing software updates
· Troubleshooting any issues that arise
It is important to note that software maintenance is an ongoing process that requires regular attention and updates. It is important to regularly review and assess the software to ensure that it is functioning correctly and is up to date. Additionally, it is important to keep track of any changes made to the software to ensure that they are properly documented and that they do not create new issues or problems.
Reference
Some Terminology - Good to know!!
Client - Browser [Chrome / IE ] or Mobile Apps - Interface through which the user sends the request.
Server - Computer on which the software is installed and made available to the end users through the clients.
Client - One who sponsors/Funds the project.
End User - One who uses the software.
Comments
Post a Comment