CHAPTER 2: TESTING IN THE LIFECYCLE- Test trong chu trình phát triển phần mềm (part 1) – Quality Resource Solutions
2.1 Software Development Models (K2)
2.2 Test Levels (K2)
2.3 Test Types (K2)
2.4 Maintenance Testing (K2)
Mục lục bài viết
2.1 Testing throughout the Software Life Cycle
Các khái niệm kiểm thử phần mềm xuyên xuốt chu trình dự án
2.1.1 V-model (Sequential Development Model) (K2)
Early test design – Thiết kế test sớm
- Test design finds faults – thiết kế test để phát hiện lỗi
- Faults found early are cheaper to fix – Lỗi được phát hiện sớm tốn ít chi phí hơn để sửa chữa
- Most signification faults found first – Hầu hết lỗi quan trọng tìm thấy đầu tiên
- Faults prevented, not built in – Lỗi được ngăn chặn, không được xây dựng trong PM
- No additional effort, re-schedule test design – Không mất công sức bổ sung, thiết kế thử nghiệm lại
- Changing requirements caused by test design – Các yêu cầu thay đổi được đưa ra bởi thiết kế thử nghiệm từ sớm
Term: VV&T – Verification, Validation and Test
Verification – Thẩm tra ( Do it right)
- The process of evaluating a system or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of that phase
- Quy trình đánh giá một hệ thống hay thành phần để xác định xem các sản phẩm của giai đoạn phát triển đã đáp ứng các điều kiện được đặt ra vào đầu của giai đoạn đó hay chưa
- Verification: Are we building the product right? The software should confirm to its specification
Validation – Xác nhận ( Do right it)
- Determination of the correctness of the products of software development with respect to the user needs and requirements- Xác định tính đúng đắn của các sản phẩm phát triển phần mềm đối với các nhu cầu của người sử dụng và yêu cầu
- Validation: Are we build the right product? The software should do what the user really requires.
Dynamic Testing
- The process of exercising software to verify that it satisfies specified requirements and to detect faults – Quy trình thực hiện phần mềm để xác minh rằng nó đáp ứng các yêu cầu quy định và để phát hiện lỗi
2.1.2 Iterative-incremental Development Models (K2)- Mô hình tang trưởng giai đoạn Involvement, spiral model
- Iterative-incremental development is the process of establishing requirements, designing, building and testing a system in a series of short development cycles. – Mô hình tăng trưởng giai đoạn là chuỗi quy trình từ khi thiết lập yêu cầu, thiết kế, xây dựng và test HT trong 1 chu trình ngắn và lặp lại
Examples are: prototyping, Rapid Application Development (RAD), Rational Unified Process (RUP) and agile development models.
- A system that is produced using these models may be tested at several test levels during each iteration. Một HT được sản xuất theo mô hình này có thể được test ở một số levels trong mỗi giai đoạn
- Regression testing is increasingly important on all iterations after the first one. – Test hồi quy được sử dụng liên tục và gia tang ở tất cả các giai đoạn sau GĐ đầu tiên.
- Verification and validation can be carried out on each increment. Kiểm tra và thẩm định được thực hiện ở mỗi GD
Rapid Application Development (RAD)
Less focus on planning, more focus on Develop and Evaluation
Agile – Scrum development
- It promotes the generation of business stories to define the functionality. – Nó đề cao việc sinh ra các câu chuyện nghiệp vụ để định nghĩa tính năng.
- It demands an on-site customer for continual feedback and to define and carry out functional acceptance testing. – Nó yêu cầu bắt buộc khách hàng phải onsite để lien tục phản hồi và định nghĩa, đưa ra các test nghiệm thu tính năng
- It promotes pair programming and shared code ownership amongst the – Đề cao việc lập trình đôi và chia sẻ quyền sở hữu code giữa các LTV
- It states that component test scripts shall be written before the code is written and that those tests should be automated. – Các scripts cho Unit test được viết trước khi code được viết và các test này nên đc tự động
- It states that integration and testing of the code shall happen several times a day.- Việc test tích hợp và test code diễn ra vài lần trong 1 ngày
- It states that we always implement the simplest solution to meet today’s problems. – Triển khai giải pháp đơn giản nhất để giải quyết vấn đề hàng ngày.
2.1.3 Testing within a Life Cycle Model (K2)- Test theo Mô hình
In any life cycle model, there are several characteristics of good testing- Mỗi mô hình đều có những đặc điểm tốt sau:
- For every development activity there is a corresponding testing activity- Cho mỗi một hoạt động phát triển đều có 1 hoạt động test tương ứng
- Each test level has test objectives specific to that level – Mỗi level test có 1 mục tiêu cụ thể cho mỗi level
- The analysis and design of tests for a given test level should begin during the corresponding development activity – Giai đoạn thực hiện analysis and design nên bắt đầu trong GD phát triển tương ứng
- Testers should be involved in reviewing documents as soon as drafts are available in the development life cycle – Tester nên tham gia vào review tài liệu càng sớm càng tốt ngay khi nó mới ở bản nháp