BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM VÀ ỨNG DỤNG KIỂM THỬ PHẦN MỀM Q
SINH VIÊN
Giảng viên hướng dẫn: ThS. Nguyễn Hương Lan
Lớp
: KHMT1-K4
Sinh viên thực hiện:
Đào Thị Nhung
Mã SV:0441060017
Hà Nội 03 - 2013
1
Lời cảm ơn
Trong thời gian 4 tuần thực hiện báo cáo tốt nghiệp này. Cùng với sự cố gắng
nỗ lục của bản thân. Em Em xin chân thành cảm ơn các thầy giáo, cô giáo Khoa Công
nghệ thông tin của Trường Đại Học Công Nghiệp Hà Nội đã tạo điều kiện thuận lợi
cho em trong quá trình học tập 4 năm qua và trong quá trình thực hiện báo cáo thực
tập tốt nghiệp này
Em xin gửi lời cảm ơn đặc biệt đến thạc sĩ Nguyễn Thị Hương Lan – Giảng
viên khoa công nghệ thông tin đã nhiệt tình hướng dẫn và chỉ bảo em trong suốt thời
gian thực hiện bản báo cáo.
Hà Nội, ngày…….tháng…….năm 2013
Sinh Viên
Đây chính là lý do thúc đấy em thực hiện đề tài này. Mục đích của đề tài là tìm
hiểu những kiến thức tổng quan nhất về chất lượng phần mềm, quản lý chất lượng
phần mềm, kiểm thử và cách thiết kế các tài liệu test trong kiểm thử phần mềm. Việc
thực hiện đề tài sẽ giúp em tìm hiểu sâu hơn và lĩnh vực rất hấp dẫn này, vận dụng
được các kiến thức đã biết để có thể thiết kế được test plan, test case một cách có hiệu
quả và áp dụng vào những bài toán thực tế.
Bản báo cáo được hoàn thành dưới sự chỉ bảo tận tình của THs. Nguyễn Hương
Lan. Em hi vọng sẽ nhận được sự đóng góp ý kiến của các thầy cô và các bạn để bản
báo cáo được hoàn thiện hơn.
Em xin chân thành cám ơn.
4
A.
I.
I.1
Chất lượng phần mềm và kiểm thử chất lượng phần mềm
Tìm hiểu về chất lượng phần mềm
Sơ lược về chất lượng phần mềm
Chất lượng phần mềm là một khái niệm phức tạp, nó không thể so sánh một
cách trực tiếp với chất lượng trong sản xuất.Trong sản xuất, khái niệm của chất
lượng được đưa ra là: “sản phẩm phát triển phải phù hợp với đặc tả của nó
“( Crosby, 1979)
Chất lượng phần mềm là sự đáp ứng yêu cầu chức năng, sự hoàn thiện và các
chuẩn được phát triển, các đặc trưng phổ biến của 1 phần mềm chuyên nghiệp.
Một phần mềm tốt là một phần mềm đảm bảo được các yêu cầu: Tính đúng đắn,
5
Tính mang chuyển được (Công sức để chuyển phần mềm sang một môi
trường khác đạt mức chấp nhận được)
-
Tính sử dụng lại được (Khả năng phần mềm hoặc một bộ phần của nó có
thể sử dụng lại trong môi trường hay hệ thống khác)
Tính liên lạc được (Khả năng hệ thống hoặc một bộ phận nào đó có thể sử
dụng lại được trong hệ thống khác)
Đối với những hệ thống nhỏ, quản lý chất lượng vẫn rất quan trọng, nhưng với
một cách tiếp cận đơn giản hơn được áp dụng. Không cần thiết nhiều công việc giấy tờ
bởi vì một nhóm phát triển nhỏ có thể trao đổi trực tiếp. Vấn đề then chốt chất lượng
cho sự phát triển các hệ thống nhỏ là việc thiết lập một “văn hoá chất lượng” và bảo
đảm rằng tất cả các thành viên nhóm có tiếp cận một cách tích cực với chất lượng phần
mềm.
Quản lý chất lượng phần mềm cho các hệ thống lớn có thể được chia vào 3 hoạt
động chính.
1. Sự đảm bảo chất lượng: sự thiết lập của một khung của tổ chức các thủ
tục và các chuẩn để hướng đến sản phẩm chất lượng cao.
2. Lập kế hoạch chất lượng: Việc chọn lựa các thủ tục và các chuẩn thích
hợp từ khung này, được sửa chữa cho các dự án phần mềm riêng biệt.
3. Kiểm soát chất lượng: Định nghĩa và đưa ra các quá trình để đảm bảo
rằng đội phát triển phần mềm phải tuân theo các thủ tục và các chuẩn chất lượng
dự án.
Quản lý chất lượng cung cấp một kiểm tra độc lập trong quá trình phát triển
phần mềm. Quá trình quản lý chất lượng kiểm tra mức độ thực hiện dự án để đảm bảo
Giúp nhà thiết kế có được thiết kế chất lượng cao
Theo dõi chất lượng phần mềm
Đánh giá ảnh hưởng của thay đổi về phương pháp luận và thủ tục lên
chất lượng phần mềm
Việc đảm bảo chất lượng phần mềm thuộc trách nhiệm của:
-
Các kỹ sư phần mềm
Nhà quản lí dự án
Khách hàng
Người bán hàng
Những thành viên trong nhóm đảm bảo chất lượng phần mềm
Đảm bảo chất lượng là quá trình của việc định rõ làm cách nào để chất lượng
sản phẩm có thể đạt được và làm thể nào để cho tổ chức phát triển biết phần mềm có
yêu cầu chất lượng ở cấp độ nào. Đảm bảo chất lượng tiến trình có liên quan đầu tiên
đến việc định ra hoặc chọn lựa các chuẩn sẽ được áp dụng cho quá trình phát triển
phần mềm hay sản phẩm phần mềm. Như là một phần của quá trình đảm bảo chất
lượng, bạn có thể chọn lựa hoặc tạo ra các công cụ và các phương pháp để phục vụ
cho các chuẩn này.
7
Có 2 loại chuẩn có thể được áp dụng như là một phần của quá trình đảm bảo
chất lượng là:
Các chuẩn quá trình và chuẩn sản phẩm
II.2 Lỗi phần mềm
Có rất nhiều định nghĩa khác nhau về lỗi phần mềm, nhưng nhìn chung, có thể
phát biểu một cách tổng quát: “Lỗi phần mềm là sự không khớp giữa chương trình và
đặc tả của nó.”
Dựa vào định nghĩa, chúng ta có thể thấy lỗi phần mềm xuất hiện theo ba dạng
sau:
•
•
Sai: Sản phẩm được xây dựng khác với đặc tả.
Thiếu: Một yêu cầu đã được đặc tả nhưng lại không có trong sản phẩm
được xây dựng.
• Thừa: Một yêu cầu được đưa vào sản phẩm mà không có trong đặc tả.
Cũng có trường hợp yêu cầu này có thể là một thuộc tính sẽ được người dùng
chấp nhận nhưng khác với đặc tả nên vẫn coi là có lỗi.
II.3 Kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định
xem phần mềm đó có đúng với đặc tả không và thực hiện trong môi trường như mong
đợi hay không.
Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, tìm một
cách sớm nhất và đảm bảo rằng lỗi đã được sửa, mà kiểm thử phần mềm không làm
công việc chẩn đoán nguyên nhân gây ra lỗi đã được phát hiện và sửa lỗi.
Mục tiêu của kiểm thử phần mềm là thiết kế tài liệu kiểm thử một cách có hệ
thống và thực hiện nó sao cho có hiệu quả, nhưng tiết kiệm được thời gian, công sức
và chi phí.
Định nghĩa về KTPM:
- Theo IEEE: Kiểm thử là tiến trình vận hành hệ thống hoặc thành phần dưới
những điều kiện xác định, quan sát hoặc ghi nhận kết quả và đưa ra đánh giá về hệ
Khi kiểm thử, nếu các lỗi được phát hiện tại bất kì mức nào , chúng đòi hỏi
chương trình phải gỡ lỗi và hiệu chỉnh cho chính xác, sau đó cần kiểm thử lại, tức là
cần được lặp lại những kiểm thử nào đó ở mức trước. Trong quy trình này, thông tin
lỗi gặp phải hay mức độ tin cậy đạt được của chương trình ở mỗi giai đoạn sau đều
được phản hồi về giai đoạn trước của tiến trình. Vì vậy, tiến trình kiểm thử là tiến trình
lặp.
11
Bảng tổng hợp các mức kiểm thử:
Lo
Đơn vị
ại hình
Đố
i tượng
Môđun
đơn vị
Cơ
sở
đối
sánh
Tích hợp
Lập
trình viên
trường đích
Thiết
kế
Thiết
đặc tả chức năng
phần mềm
hộp trắng
Nhóm
kiểm thử độc lập
Vòng đời của kiểm thử
12
Đặc tả yêu
cầu phần mềm
đen,
Hộp đen
II.5 Chiến lược của kiểm thử phần mềm
Một chiến lược kiểm thử phần mềm là sự tích hợp các kỹ thuật thiết kế các
phép thử tạo thành một dãy các bước để hướng dẫn quá trình kiểm thử phần mềm
thành công. Nó đưa ra một bản đồ đường đi mô tả các bước trong quá trình kiểm thử.
Vì thế, bất kỳ chiến lược kiểm thử nào cũng phải tích hợp được:
-
-
Thiết kế các ca kiểm thử.
Tạo dữ liệu thử:
• Kiểm thử với tất cả các dữ liệu vào là cần thiết ( không thể kiểm thử
vét cạn).
• Chọn tập các dữ liệu thử đại diện từ miền dữ liệu vào dựa trên các
tiêu chuẩn chọn dữ liệu thử.
Thực thi chương trình trên dữ liệu thử gồm : cung cấp, thực thi và ghi nhận
kết quả.
Quan sát kết quả kiểm thử :
• Thực hiện trong hoặc sau khi thực thi.
• So sánh kết quả nhận được với kết quả mong đợi.
Hình 2, Tiến trình kiểm thử phần mềm.
13
Chiến lược kiểm thử phần mềm phải đủ mềm dẻo để cổ vũ các cách tiếp cận
sáng tạo của người thực hiện. Nhưng với tư cách là một tiến trình trong dự án , nó
cũng phải đủ chặt chẽ để hỗ trợ các kế hoạch và phương thức quản lý.
sản phẩm. Nó cần phải hoàn hảo đủ để dùng được nhưng không đủ hoàn hảo vì không
ai bên ngoài nhóm test sẽ đọc nó. Sau đây là một số hạng mục có thể được bao gồm
trong một test plan, tùy thuộc vào từng dự án cụ thể:
- Tiêu đề
- Định nghĩa version của phần mềm (version release)
- Lưu lại quá trình hiệu chỉnh tài liệu như tác giả, ngày cập nhật, duyệt
- Mục lục
- Mục đích của tài liệu, ý kiến chung
- Mục tiêu của chi phí kiểm thử (test)
14
2.
a.
Giới thiệu tổng quan về sản phẩm
Danh sách tài liệu liên quan như spec, tài liệu thiết kế, các kế hoạch
test khác,...
Các tiêu chuẩn thích hợp, các yêu cầu hợp lệ
Nguồn gốc của các sự thay đổi
Phân tích rủi ro của dự án
Các vấn đề ưu tiên và tập trung test
Phạm vi và giới hạn test
Test tự động - giải thích và tổng quan
Các công cụ test được sử sụng, bao gồm các version, bản vá lỗi,...v.v
các qui trình bảo trì và quản lý version của test script/test code
Theo dõi và giải quyết vấn đề - Các công cụ và qui trình
Các thước đo về test sản phẩm được sử dụng
Báo cáo các yêu cầu và khả năng giao test
Điều kiện đầu vào và đầu ra của phần mềm
Một trong những lý do quan trọng nhất trong kiểm thử chương trình là thiết kế
và tạo ra các ca kiểm thử - các Test case có hiệu quả. Với những ràng buộc về thời
gian và chi phí đã cho, thì vấn đề then chốt của kiểm thử trở thành:
Tập con nào của tất cả ca kiểm thử có thể có khả năng tìm ra nhiều lỗi nhất?
15
Thông thường, phương pháp kém hiệu quả nhất là kiểm tra tất cả đầu vào ngẫu
nhiên – quá trình kiểm thử một chương trình bằng việc chọn ngẫu nhiên một tập con
các giá trị đầu vào có thể. Về mặt khả năng tìm ra nhiều lỗi nhất, tập hợp các ca kiểm
thử được chọn ngẫu nhiên có rất ít cơ hội là tập hợp tối ưu hay gần tối ưu. Sau đây là
một số phương pháp để chọn ra một tập dữ liệu kiểm thử một cách thông minh.
Để kiểm thử hộp đen và kiểm thử hộp trắng một cách thấu đáo là không thể. Do
đó, một chiến lược kiểm thử hợp lý là chiến lược có thể kết hợp sức mạnh của cả hai
phương pháp trên: Phát triển 1 cuộc kiểm thử nghiêm ngặt vừa bằng việc sử dụng các
phương pháp thiết kế ca kiểm thử hướng hộp đen nào đó và sau đó bổ sung thêm
những ca kiểm thử này bằng việc khảo sát tính logic của chương trình, sử dụng
phương pháp hộp trắng.
Những chiến lược kết hợp đó bao gồm:
Hộp đen
Hộp trắng
1. Phân vùng tương đương
1. Bao phủ câu lệnh
2. Phân tích giá trị biên
2. Bao phủ quyết định
trong việc quản lý sinh viên và quá trình học của họ.
Trong trung tâm đào tạo lập trình viên ThăngLong - aptech, mỗi sinh viên bắt
đầu nhập trường phải nộp một bộ hồ sơ thông tin cá nhân (bao gồm : Tên, ngày sinh,
giới tính, nơi sinh, số điện thoại, địa chỉ ... ). Trước tiên, giáo vụ tiến hành kiểm tra
xem hồ sơ có đầy đủ thông tin giấy tờ và có hợp lệ hay không. Nếu thiếu thông tin,
giấy tờ thì yêu cầu học sinh nộp bổ sung. Ngược lại nếu hợp lệ thì thu lại hồ sơ làm thủ
tục ký xác nhận cho học sinh. Giáo vụ sẽ nhập thông tin về học sinh (thông qua hồ sơ).
Sau khi nhà trường tiến hành xếp lớp cho học sinh. Mỗi năm sẽ có một khóa học mới
được tuyển.
Trong quá trình giảng dạy, nhà trường sẽ tổ chức thi kết thúc môn cho các sinh
viên trong trường. Các giáo vụ cố thể nhập điểm thi cho các thí sinh theo lớp hoặc theo
từng sinh viên. Thông tin chung gồm có ( tên môn thi, phòng thi, ngày thi, thời gian
thi, gv coi thi, gv chấm thi. Sau khi nhập điểm thi, giáo vụ có thể tra cứu điểm thi theo
tên môn thi, tên sinh viên hoặc tên lớp. Bảng điểm sẽ được hiển thị và xuất ra file
excel khi cần.
Để tiện theo dõi tình hình hình tập của sinh viên. Hàng ngày, đối với từng môn
học, giáo vụ sẽ điểm danh từng sinh viên. Việc điểm danh thường được thực hiện theo
từng lớp học. Những sinh viên mà không thực hiện đầy đủ thời gian trên lớp sẽ bị cấm
thi theo quy định của nhà trường.
Ngoài thông tin về sinh viên, hệ thống có lưu trữ thông tin về giảng viên. Bao
gồm: mã giảng viên, tên giảng viên, tên môn dạy, tên lớp dạy, thời gian dạy…
I.2
Các chức năng chính của hệ thống
17
Các use case được mô tả như bảng dưới đây
ST
Điểm danh
User có thể xem thông tin điểm danh của
sinh viên, và thực hiện điểm danh trong
1 khoảng thời gian xác định
Yêu cầu chức năng và phi chức năng của ứng dụng
Trong phạm vi của bài báo cáo này chỉ mô tả một số chức năng chính của
chương trình. Các môn học theo quy định đã có sẵn, cho phép người dùng lựa chọn,
không phải là đối tượng quản lý của chương trình.
18
1. Yêu cầu chức năng
1.1. Chức năng đăng nhập
Màn hình sau khi đăng nhập
Sau khi user login thành công sẽ hiển thị màn hình như sau
Hình 3.2: Màn hình sau khi login
Lúc này user có thể sử dụng các chức năng thông qua menu hoặc tool bar
button tương ứng trên màn hình. Các tool bar button sẽ hiển thị tooltip để hỗ trợ khi
user di chuột lên
19
Các menu chính sẽ gồm có các menu con như sau:
Tên các màn hình đang mở: có thể chọn để active 1 màn hình đang mở
-
Giúp đỡ
Giúp đỡ từ hệ thống: sẽ hiển thị màn hình tra cứu để hỗ trợ user
Thông tin phần mềm: sẽ hiển thị màn hình thông tin liên quan đến phần
mềm
1.2. Chức năng quản lý sinh viên
User quản lý thông tin sinh viên: xem, thêm mới, sửa, và xóa thông tin sinh viên.
User có thể thêm mới từng sinh viên hoặc import từ file excel có sẵn theo quy định.
Thông tin sinh viên
Màn hình hiển thị
20
Hình 3.2.1.1-1: Màn hình [Sinh viên] khi mới mở
Hình 3.2.1.1-2: Màn hình [Sinh viên] khi thực hiện Sửa
21
Hình 3.2.1.1-3: Màn hình [Sinh viên] khi thực hiện Thêm
Mô tả chức năng
S
TT
năng
và tổng số sinh viên.
[quản
lý sinh
viên]
2
22
C
N Toàn bộ thông tin lên các ô
hấp
tương ứng để có thể xem
đúp
nhưng không thể sửa, đồng
vào
thời kích hoạt thêm các chức
một
năng [Sửa], [Xóa] và [Hủy].
bản ghi
hoạt
1.
[Thêm
sinh
viên]
2. [Tìm
kiếm
Sẽ thực hiện xác nhận dữ
liệu. Nếu dữ liệu hợp lệ sẽ
lưu vào DB và hiển thị lại
màn hình ban đầu, đồng thời
hiển thị cả sinh viên mới vào
danh sách.
liệu nhập không hợp
lệ, hãy nhập lại” với
button [OK]
2.
Thông
họn
chức
năng
[Sửa]
23
báo
cảnh cáo: “Sinh viên
này đã có, hãy kiểm
tra và nhập lại” với
button [OK]
3.
Thông báo “ Có
lỗi xảy ra nên không
lưu được thông tin.
Hãy khởi động lại hệ
thống và làm lại” với
button [OK]. Sau đó
không được tự động
tắt chương trình,
mà quay lại màn
hình trước đó.
Xóa thông tin đã nhập, không
lưu vào DB và quay lại màn
hình ban đầu.
Cho phép thay đổi bât cứ
thông tin nào của sinh viên
này, trừ [Mã sinh viên].
1 [Lưu] 1.
2.[Hủy] [Thê
m]
thực
Trước khi lưu thì hiển thị
thông báo để xác nhận với
người dùng
hiện
giống
như khi
[Thêm].
hiển thị thông báo để xác
nhận.
Thông báo xác nhận:
“Bạn có muốn xóa
sinh viên này không”
với button [Yes / No]
Xóa thông tin sinh viên đang
hiển thị và đưa màn hình trở
về trạng thái ban đầu.
Có thể tìm theo tên sinh viên
hoặc theo lớp, hoặc cả 2. Kết
quả tìm được sẽ hiển thị
trong phần danh sách
Yêu cầu xác minh đối với dữ liệu
Tên ô
Mô tả
Loại
Độ dài tối Bắt
đa
buộc
Họ
6
Mã sinh viên
Mã portal
Mã sinh viên khi học các lớp
theo chương trình của Aptech
Ấn độ
Text box
Giới tính
Mặc định: không chọn
Radio button
Ngày sinh
Có thể input hoặc chọn
Calendar
Trạng thái
Chỉ được chọn, gồm: Đang
học, Tạm hoãn, Thôi học, Đã
học xong, Chuyển
Combo box
Combo box
24
Có
Khóa học hiện tại
Chỉ được chọn, gồm: DIM,
HDSE, Tester
Combo box
Ngày tham gia
Có thể input hoặc chọn
Calendar
TLA mail
Địa chỉ email của trường
Text box
Ghi chú của giáo vụ
Ghi chú của giáo vụ
Địa chỉ
Địa chỉ cá nhân
Text box
128
Địa chỉ liên hệ
Địa chỉ hiện tại
Text box
128
25
128