Software Testing Foundation
Software Testing Foundation
Software Development Life Cycle (SDLC) Vòng đời phát triển phần mềm
Software Maintenance Life Cycle (SMLC) Vòng đời bảo hành phần mềm
Phân tích
Chủ sản phẩm
Quản lí dự án
Phân tích
doanh nghiệp
01/21/2025 09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 6
CTO
Flowchart
Initiation
Initiation
Đặc điểm của các giai đoạn Quality Gate
1. Characteristics of stages
A stage has its own objectives and work Definition
Definition
products generated by internal processes of
Requirement
the stage.
Review
A stage may have one or more iterations Solution
Solution
depending on the complexity of the stage.
Architecture
Stages may be combined to one depending Review
Những
on giai đoạn
the complexity có thể kết hợp
of project. Construction
Construction
thành
2. Quality Gate Final
Inspection
To be performed by QA to determine: Transition
Transition
If the objectives of the stage have been met.
Customer
If the mandatory work products have acceptance
Termination
Termination
satisfied the requirements.
7
Initiation State / Trạng thái bắt đầu
1. Overview 1. Tổng quan
The Initiation stage is the start of the SLC. Giai đoạn Bắt đầu là giai đoạn bắt đầu của SLC.
The main activities: Các hoạt động chính:
Establish project's software scope and boundary Thiết lập phạm vi phần mềm của dự án và các điều
conditions kiện biên
Estimate overall cost and schedule of the project Ước tính chi phí tổng thể và tiến độ của dự án
Build the project team Xây dựng nhóm dự án
Draft a project plan Dự thảo một kế hoạch dự án
Define potential risks Xác định rủi ro tiềm tàng
Providing all necessary resources/tools/supports Cung cấp tất cả các nguồn lực/công cụ/hỗ trợ cần
required to carry out the project thiết để thực hiện dự án
Opening Decision: Decision for PM, actual Start date of Quyết định mở đầu: Quyết định cho Thủ tướng, ngày
the project bắt đầu thực tế của dự án
Project Kick-off Dự án khởi động
2. Outputs 2. Outputs
User Requirement Document User Requirement Document
Proposal Proposal 8
Definition State
2. Outputs 2. Đầu ra
Project plan Kế hoạch dự án
Test plan Kế hoạch kiểm tra
Prototype Nguyên mẫu
9
Solution State/ Giải pháp
2. Outputs 2. Đầu ra
Customer requests (CRs) Yêu cầu của khách hàng (CR)
18
Bug Fixing
19
Enhancement Workflow/ Quy trình làm việc nậng cao
20
Release Sub-stage
1. Overview: 1. Tổng quan:
The focus of this sub-stage is to ensure Trọng tâm của giai đoạn phụ này là đảm bảo
that updated software is available for its rằng phần mềm cập nhật có sẵn cho người
end users. dùng cuối.
The main activities are: Các hoạt động chính là:
Deliver the updated software to customer Cung cấp phần mềm cập nhật cho khách
Implement the updated software systems hàng
on customer site and conduct test Triển khai các hệ thống phần mềm được cập
activities for release acceptance. nhật trên trang web của khách hàng và tiến
Normally there are two kind of release: hành các hoạt động thử nghiệm để chấp
Emergency and Periodical which is nhận phát hành.
mandatory Thông thường có hai loại phát hành: Khẩn
2. Outputs
2. Đầu ra
Gói phần mềm
Software package
Tài liệu dự án
Project documents
Ghi chú phát hành
Release note Báo cáo dự án
Project report 22
Termination State
Iterative
Spiral
Kanban
25
Waterfall Development Model
Advantages:
Disadvantages:
Good for large and mission-critical
Can be a costly model to use.
Strong approval and documentation control.
Risk analysis requires highly specific
Software is produced early in the software
expertise.
life cycle
Project’s success is highly dependent on
Additional Functionality can be added at a the risk analysis phase.
later date. Doesn’t work well for smaller projects.
When to use:
For medium to high-risk projects.
Long-term project commitment unwise because of potential changes to economic
priorities.
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
01/21/2025 09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 34
Agile Development Model
Advantages: Disadvantages:
Customer satisfaction by rapid, continuous delivery of In case of some software deliverables, especially
useful software.
the large ones, it is difficult to assess the effort
Customers, developers and testers constantly interact required at the beginning of the software
with each other. development life cycle.
Face-to-face conversation is the best form of There is lack of emphasis on necessary designing
communication. and documentation.
Close, daily cooperation between business people and The project can easily get taken off track if the
developers. customer representative is not clear what final
Continuous attention to technical excellence and good outcome that they want.
design. Only senior programmers are capable of taking
Regular adaptation to changing circumstances. the kind of decisions required during the
Even late changes in requirements are welcomed. development process.
When to use:
When new changes are needed to be implemented
Advantages: Disadvantages:
High risk and uncertainty.
This is a highly-disciplined model and
Not a good model for complex and object-
Phases are completed one at a time. oriented projects.
Works well for smaller projects where Poor model for long and ongoing projects.
requirements are very well understood. Not suitable for the projects where
requirements are at a moderate to high risk of
Simple and easy to understand and use. changing.
Easy to manage due to the rigidity of Once an application is in the testing stage, it is
the model. Each phase has specific difficult to go back and change a functionality.
No working software is produced until late
deliverables and a review process.
during the life cycle.
When to use:
Requirements are well defined, clearly documented and fixed.
Product definition is stable.
There are no ambiguous or undefined requirements.
The project is short.
01/21/2025 09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 42
Testing in other Models