Bên cạnh định nghĩa về kiểm thử phần mềm, để nắm vững chuỗi các nội dung kiến thức quan trọng cho 1 Tester, mình sẽ giới thiệu cho các bạn về các quy trình phát triển ứng dụng.
Đây chính là 1 kiến thức cực kì quan trọng và cần thiết không chỉ Tester cần hiểu rõ mà ngay cả các Developer cũng cần phải biết đến.
I. Tổng quan về quy trình phát triển phần mềm
- Một quy trình tốt & có lí luôn làm ra những sản phẩm đạt chuẩn mực. Nó giúp tương tác hóa các hoạt động & yếu tố với nhau một các nhịp nhàng, đem tới hiệu quả.
- Có thể cho rằng quá trình ứng dụng đem lại chất lượng, năng suất, giá cả phần mềm, từ đó tăng tính cạnh tranh & đem đến lợi nhuận cao cho doanh nghiệp.
1. Định nghĩa quy trình phát triển phần mềm
Quy trình phát triển phần mềm là một tập hợp các hoạt động tổ chức mà mục đích của chúng là xây dựng & phát triển phần mềm.
- Những câu hỏi được đặt ra ở đâu là:
- Nhân sự: Ai sẽ làm? Ai làm gì?
- Thời gian: Khi nào làm? Làm mất bao nhiêu thời gian?
- Phương pháp: Làm như thế nào?
- Công cụ: sử dụng công cụ gì để làm công việc này?
- Chi phí: số tiền bỏ ra bỏ ra bao nhiêu? Thu về bao nhiêu? (Ước tính)
- Mục tiêu: mục đích hướng mục tiêu tới là gì?
- Mỗi loại hệ thống khác nhau thì cần những quá trình phát triển không giống nhau.
2. Các hoạt động cơ bản của quy trình phát triển ứng dụng
Có 4 thực hành các bước là nền tảng của hầu hết các quá trình phát triển phần mềm:
- Đặc tả phần mềm: khái niệm được các chức năng, điều kiện hoạt động của ứng dụng.
- Quá trình phát triển phần mềm: là công đoạn xây dựng các đặc tả.
- Nhận định phần mềm: Phần mềm phải được nhận định để cam kết rằng tối thiểu có thể thực hiện những gì mà tài liệu đặc tả yêu cầu.
- Tiến hóa phần mềm: Đây là công đoạn hoàn thiện các chức năng cũng như giao diện để ngày càng hoàn thiện ứng dụng cũng như các yêu cầu đưa ra từ phía khách hàng.
II. Các mô hình phát triển ứng dụng
1. Mô hình thác nước – Waterfall model
Mô hình thác nước (tiếng Anh: waterfall model) là một mô hình của quá trình phát triển ứng dụng, trong số đó quy trình phát triển trông giống như một dòng chảy, với các pha được thực hiện theo trật tự nghiêm ngặt & không có sự quay lui hay nhảy vượt pha là: phân tích yêu cầu, thiết kế, khai triển thực hiện, kiểm thử, liên kết & bảo trì.
>>> Xem thêm: Học cách suy luận logic khi làm việc hiệu quả
Các giai đoạn của mô hình thác nước
Thu thập yêu cầu (Requirement gathering) : đây chính là giai đoạn xác định các yêu cầu chức năng & phi chức năng mà hệ thống phần mềm phải có. Kết quả của giai đoạn này là bản tài liệu đặc tả yêu cầu. Tài liệu này sẽ là một nền tảng cho những giai đoạn tiếp theo cho đến cuối dự án.
Phân tích hệ thống ( System Analysis): Là giai đoạn định ra làm thế nào để hệ thống phần mềm thuyết phục đúng yêu cầu của khách hàng. Giai đoạn này thực hiện phân tích, thiết kế hệ thống phần mềm.
Coding: Là giai đoạn thực hiện sản phẩm dựa trên đặc tả yêu cầu và tài liệu thiết kế module.
Testing: Tester sẽ nhận sản phẩm từ dev & thực hiện kiểm thử cho nhóm các thành phần & kiểm thử hệ thống. Khâu kiểm thử cuối cùng sẽ là Kiểm thử chấp thuận, giai đoạn này còn có sự tham gia của khách hàng.
Implementation: Khai triển hệ thống ra môi trường của khách hàng.
Operations &Maintenance: Đây là giai đoạn cài đặt, cấu hình và đào tạo cho khách hàng. Giai đoạn này sửa chữa những lỗi của sản phẩm (nếu có) và phát triển những thay đổi mới được khách hàng yêu cầu.
Áp dụng
Hay được áp dụng cho các dự án không thường xuyên bị thay đổi về yêu cầu.
Đặc điểm
Ưu điểm:
Dễ dàng để sử dụng, dễ tiếp cận Các giai đoạn & hoạt động được xác định rõ ràng xác nhận ở từng giai đoạn, bảo đảm phát hiện sớm các lỗi Nhược điểm:
Rất khó để quay lại giai đoạn nào khi nó đã kết thúc Ít tính linh hoạt và phạm vi điều chỉnh của nó khá là khó khăn, tốn kém.
2. V-model – mô hình chữ V
Mô hình chữ V được coi là phiên bản cải tiến cho mô hình thác nước. Có nghĩa là việc kiểm thử sẽ được thực thi sớm hơn & có các cấp kiểm thử thích hợp với các giai đoạn tập hợp yêu cầu, và thực thi viết mã.
Phương pháp này giúp cho việc phát triển & kiểm thử xảy ra song song & các kiểm thử viên có thể tham gia vào rất sớm ở giai đoạn đầu của dự án & có thể phát hiện lỗi thiết kế từ rất sớm và tăng chất lượng sản phẩm.
3. Spiral Model – Mô hình xoắn ốc
- Mô tả
- Là mô hình kết hợp giữa các tính năng của mô hình prototyping và mô hình thác nước.
- Mô hình xoắn ốc được ưa dùng cho các dự án lớn, đắt tiền & phức tạp.
- Mô hình này dùng nhiều những giai đoạn tương tự như mô hình thác nước, về thứ tự, plan, nhận định nguy cơ, …
- Áp dụng
- Hay được sử dụng cho các ứng dụng lớn & các hệ thống được tạo ra theo các giai đoạn ngắn hoặc theo các phân đoạn
- Đặc điểm
- Ưu điểm:
- Estimates (i.e. Budget, schedule, etc.) trở nên thực tế hơn như là một quá trình làm việc, bởi vì những yếu tố thiết yếu đã được phát hiện sớm hơn.
- Có sự tham gia sớm của deverlopers
- Quản lý rủi ro và phát triển hệ thống theo phase
- Nhược điểm:
- Số tiền bỏ ra cao & thời gian dài để có sản phẩm cuối cùng
- Phải có kỹ năng tốt để đánh giá nguy cơ và giả định.
- Ưu điểm:
4. Iterative – mô hình lặp – Mô hình AGILE
Trong thế Dân Công Nghệ biến đổi không ngừng vào thời điểm hiện tại, thì đây được coi là phương pháp để tối ưu nhất bởi sự hiệu quả mà nó đem lại. Các sản phẩm ứng dụng ngày nay thì không còn chỉ dễ dàng như trước kia, các tính năng ngày càng phức tạp và cần đáp ứng đúng yêu cầu của khách hàng hơn, do vậy nếu cứ giữ cách làm việc như trước kia thì không thể bảo đảm được hiệu quả của dự án. Trước khi triển khai dự án, sẽ có nhiều các yêu cầu về sản phẩm không giống nhau. Việc tập hợp hết tất cả các yêu cầu chi tiết của sản phẩm ngay từ đầu gần như là bất khả thi và gây lãng phí vì có thể các tính năng không thực sự quan trọng.
Phương pháp này chia thành các phân đoạn ngắn, & trong các yêu cầu đó được làm cho rõ chi tiết khi sắp được thực thi. Mỗi phân đoạn ngắn cũng gồm các bước làm rõ yêu cầu, thiết kế, thực thi, kiểm thử & triển khai. Mô hình này còn có một tên gọi khác là mô hình Agile. Mô hình này được ưa sử dụng & chiếm ưu thế do nó có thể cho ra sản phẩm nhanh, tiết kiệm số tiền bỏ ra, giảm bớt nguy cơ & phù hợp sát nhất với nhu cầu của người sử dụng.
Kết
Đến đây, chúng ta đã cùng nhau tìm hiểu về quy trình phát triển phần mềm là gì & 4 mô hình phát triển ứng dụng phổ biến nhất được dùng trên thực tế. Hi vọng rằng, những kiến thức này có thể giúp bạn chọn được quy trình thích hợp và xây dựng ứng dụng của mình một cách hiệu quả nhất!
Nhật Minh – Tổscom
Bình luận về chủ đề post