Tải bản đầy đủ (.ppt) (57 trang)

tìm hiểu về nghề tester

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.75 MB, 57 trang )


Testing là gì
Là quá trình thực hiện một chương trình (hay
một phần của một chương trình) để tìm ra lỗi
Là pha quan trọng trong quá trình phát triển hệ
thống giúp cho người xây dựng hệ thống và khác
hàng đã thấy được hệ thống mới đã thoả mãn yêu
cầu đề ra chưa
Test phần mềm là vấn đề kỹ thuật thách thức
hơn cả việc xây dựng phần mềm

Tầm quan trọng của nó đối với
ngành phần mềm

Một phần mềm được làm ra không ai có thể đảm bảo nó
không có lỗi

Testing sẽ tìm và phát hiện lỗi (mang tính ứng dụng
hoặc thậm chí mang tính công nghệ) với mục đích cuối
cùng là bảo đảm sản phẩm đến tay người dùng phải là
tốt nhất, nhanh nhất, ổn định nhát

Hoạch định chiến lược nghiên cứu và ứng dụng, đảm bảo
sp làm ra đạt tiêu chí và kỹ thuật đề ra

Ghi nhận các ý kiến, đề xuất hoặc báo cáo hỏng hóc từ
người dùng

Các phương pháp testing

Black box test



White box test

Black-box Test – Khái niệm

Black box test: hay còn gọi là test hộp đen

Test dựa trên hoạt động của chức năng,
không đòi hỏi kiến thức về các mã phần mềm
hoặc cấu trúc

Phương pháp này quan tâm tới việc thực hiện
các chức năng (hành vi), dữ liệu đầu vào và
kết quả đầu ra ra sao  fải chuẩn bị và sử
dụng các khả năng có thể xảy ra của dữ liệu
Input

Black-box Test – Phương pháp

Để thực hiện phương pháp này cần dựa
trên:

Yêu cầu của phần mềm

Các trạng thái

Các trường hợp sử dụng (use case)

Kiểm tra các giá trị biên


Phân lớp tương đương

Test cú pháp

Test luồng dữ liệu (dữ liệu được lấy từ đặc tả
yêu cầu)

White box Test – Khái niệm

Quan tâm tới cấu trúc và logic bên trong của
đoạn mã.  cần có kiến thức về cấu trúc
phần mềm

Được định nghĩa bởi:

Programming style

Control method

Language

Database design

Coding details

White box Test – Kỹ thuật

Test cấu trúc

Test nhánh


Luồng dữ liệu test

Test điều kiện nhánh

Test điều kiện nhánh tích hợp

Test các điều kiện thay đổi

Các giai đoạn test
Software V&V
Plan
System Test
Plan
Integration
Test Plan
Unit Test
Plan
Acceptance
Demonstration
Plan
Software
Development Phases
Test Planning Phase
Test Execution Phase
Project Plan
Requirements
Spec
Architectural
Design Spec

Code
System
Test
Acceptance
Demonstration
Integration
Test
Install
Unit
Test
Detailed
Design Spec

Các giai đoạn test

Unit Test

Intergration Test

System Test

Acceptance Test

Unit Test – Khái niệm

Một Unit là thành phần nhỏ nhất của phần
mềm, như là: Function, Procedure, Class,
Method

Là kỹ thuật kiểm nghiệm các hoạt động của

mọi chi tiết mã với một quy trình tách biệt
với QT PTPM giúp phát hiện sai sót kịp thời
trước khi đưa ra test

Unit Test – Đặc điểm

Test ở mức thấp nhất

Sử dụng phương pháp test hộp trắng

Kiểm tra độc lập từng thành phần

Thường được thực hiện bởi lập trình viên

Có giá trị khi phát hiện các vấn đề tiềm ẩn
hoặc lỗi kỹ thuật

Intergration test – Khái niệm

Là test kết hợp các thành phần của một ứng
dụng và kiểm tra như một ứng dụng đã hoàn
thành

Mục đích

Phát hiện lỗi giao tiếp xảy ra giữa các Unit

Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ
và cuối cùng là nguyên hệ thống hoàn chỉnh


Intergration test - Type

Kiểm tra cấu trúc (structure): Tương tự White
Box Test, chú trọng đến hoạt động của các
thành phần cấu trúc nội tại của chương trình

Kiểm tra chức năng (functional): Tương tự
Black Box Test, chỉ khảo sát chức năng của
chương trình theo yêu cầu kỹ thuật

Kiểm tra hiệu năng (performance): Kiểm tra
vận hành của hệ thống

Kiểm tra khả năng chịu tải (stress): Kiểm tra
giới hạn của hệ thống

Intergration test - Plan

Cần được thực hiện tương đương với giai
đoạn thiết kế kiến trúc

Thứ tự tích hợp được xác định theo thứ tự
xây dựng

Các thành phần hoàn thành đúng thời hạn

Phát triển các thành phần và test tích hợp được
thực hiện song song

Intergration - Guidelines


Mỗi thành phần sẽ được tích hợp 1 lần
(tích hợp theo hướng tăng dần
Baseline 0: test thành phần
Baseline 1: 2 thành phần
Baseline 2: 3 thành phần)

Tích hợp từng mục nhỏ của từng thành phần
tại một thời điểm

Các thành phần chính hoặc thành phần có
khả năng nhiều lỗi

Kết hợp các thành phần liên quan đơn giản

Intergration-Approaches

Top-down

Bottom-down

Big-bang

Intergration-Approaches

Top-Down

Các module cấp trên được kiểm thử
trước
Baselines:


baseline 0: component a

baseline 1: a + b

baseline 2: a + b + c

baseline 3: a + b + c + d

Etc…
a
b c
d e f g
h i j k l m
n o
a
b c
d e f g
h i j

Intergration-Approaches

Ưu điểm Top-down

Phát hiện sớm các lỗi thiết kế

Có phiên bản hoạt động sớm

Nhược điểm


Khó có thể mô phỏng được các chức
năng của module cấp thấp phức tạp

Không kiểm thử đầy đủ các chức năng

Intergration-Approaches

Bottom-up

Các module cấp thấp được kiểm tra trước
a
b c
d e f g
h i j k l m
n o
a
b c
d e f g
h i j

Baselines:

baseline 0:
component

baseline 1: n + i

baseline 2: n + i + o

baseline 3: n + i + o +

d

Etc.

Intergration-Approaches

Ưu điểm Bottom-up

Thuận tiện cho phát triển các mô đun
thứ cấp dùng lại được

Nhược điểm

Phát hiện chậm các lỗi thiết kế

Chậm có phiên bản thực hiện được của
hệ thống

Intergration-Approaches

Big-bang

Tất cả các module được kết hợp trong 1
bước

Là phương pháp tích hợp thông thường

Là phương pháp ít hiệu quả nhất

Hạn chế dùng Big-bang


Rất khó tìm ra nguồn gốc của vấn đề

Không biết nơi nào để xem xét

Không ngoại trừ recommended cho các hệ
thống rất nhỏ

System test – Khái niệm

Là kiểm tra thiết kế và toàn bộ hệ thống (sau
khi tích hợp) có thỏa mãn yêu cầu đặt ra hay
không

Là Black box test

Được thực hiện độc lập bởi một nhóm test
(test hệ thống)

System test – Khái niệm

Về chức năng, thỏa mãn:

Requirements-based testing

Các yêu cầu là điều kiện đầu tiên cho việc test

Phân tích rủi ro để xác định thành phần quan
trọng nhất


Business process-based testing

Người sử dụng mong đợi: cái gì được sử dụng
thường xuyên và quan trọng nhất cho việc kinh
doanh

Thực hiện các giao dịch kinh doanh qtrọng

System test – Khái niệm

Yêu cầu phi chức năng:

Usability

Security

Storage

Volume

Configuration/installation

Reliability/qualities

Back-up/recovery

Performance, load, stress

Functional


Acceptance test

Được thực hiện sau giai đoạn System test, do
khách hàng thực hiện (hoặc ủy quyền cho
một nhóm thứ 3 thực hiện)

Mục đích: chứng minh phần mềm thỏa mãn
tất cả các yêu cầu của khách hàng

Đối với những PM bán rộng rãi trên thị
trường, cần thực hiện: Alpha test và Beta
Test

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×