Báo cáo tiến độ thực tập chuyên ngành | Học viện Nông Nghiệp Việt Nam

Báo cáo tiến độ thực tập chuyên ngành | Học viện Nông Nghiệp Việt Nam. Tài liệu gồm 44 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

1
HC VIN NÔNG NGHIP VIT NAM
KHOA CÔNG NGH THÔNG TIN
BÁO CÁO TIẾN ĐỘ THC TP CHUYÊN NGÀNH
ĐỀ TÀI: “Kim th phn mm và ng dng
Hà Ni - 2019
Ngưi thc hin:
Giảng viên hướng dn:
B môn qun lý:
Võ Th Anh- 601267- K60QLTT
Nguyn Th Mai- 601309- K60QLTT
Th.S Trn Trung Hiếu
Công ngh phn mm
2
MC LC
PHN I: M ĐẦU .......................................................................................... 6
1.1 Đặt vấn đề ........................................................................................................................ 6
1.2 Mục đích và yêu cầu ........................................................................................................ 6
1.2.1 Mục đích ............................................................................................................. 6
1.2.2 Yêu cu ............................................................................................................... 7
PHN II: TNG QUAN TÌNH HÌNH NGHIÊN CU TRONG VÀ NGOÀI
C ............................................................................................................... 8
2.1 Tình hình nghiên cứu trong nước ..................................................................................... 8
2.2 Tình hình nghiên cu ngoài nước .................................................................................... 8
2.3 Đề tài và tính thi s, tm quan trng ca đề tài.............................................................. 9
PHN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU ................ 10
3.1 Địa đim và thi gian nghiên cu .................................................................................. 10
3.2 Ni dung nghiên cu ..................................................................................................... 10
3.3. Phương pháp nghiên cứu ............................................................................................... 11
PHN IV: KT QU VÀ THO LUN ................................................... 12
Chương 1: Tổng quan v kim th phn mm .......................................... 12
1. Các khái niệm cơ bản v kim th phn mm ................................................................. 12
1.1 Kim th phn mm là gì? .................................................................................. 12
1.2 Li phn mm là gì? Nguyên nhân sinh ra li ca phn mm ............................ 12
1.3 Vai trò ca kim th phn mm .......................................................................... 14
1.4 Ai là người thc hin Test (kim th) ................................................................. 15
1.5 Thc hin kim th khi nào? Khi nào thì vic kim th phn mm kết thúc? ... 16
1.6 Các vai trò trong kim th phn mm ................................................................. 16
2. Quy trình kim th phn mm ......................................................................................... 17
3
2.1 Lp kế hoch kim th (Test plan) ...................................................................... 17
2.2 Viết testcase ........................................................................................................ 18
2.3 Thc hin test ...................................................................................................... 18
2.4 Viết báo cáo kim th (test report) ...................................................................... 19
3. Các mc kim th(Test level) .......................................................................................... 19
3.1 Kim th đơn vị (Unit test): ................................................................................ 19
3.2 Kim th tích hp (Intergration testing): ............................................................ 20
3.3 Kim th h thng (System test): ........................................................................ 20
3.4 Kim th chp nhn (Acceptance test): ............................................................... 20
4. Các phương pháp kiểm th phn mm ............................................................................ 21
4.1 Phương pháp kiểm th hộp đen ........................................................................... 21
4.2 Phương pháp kiểm th hp trng ........................................................................ 22
4.3 Phương pháp kiểm th hp xám (Gray Box Testing) ......................................... 24
5. Kim th động và Kim th tĩnh ..................................................................................... 24
5.1 Kim th tĩnh (Static Testing) ............................................................................ 24
5.2 Kim th động (Dynamic Testing) ..................................................................... 25
6. Các k thut kim th ...................................................................................................... 26
6.1 K thut phân vùng tương đương ........................................................................ 26
6.2 K thut phân tích giá tr biên ............................................................................. 28
6.3 Bng quyết đnh ................................................................................................... 29
6.3 K thuật đoán li ................................................................................................. 31
7. Phân loi kim th............................................................................................................ 32
7.1 Kim th th công (Manual Test) ....................................................................... 32
7.2 Kim th t đng (Automation Test) .................................................................. 33
Chương 2: Các công cụ h tr quá trình kim th ................................... 35
1.Công c qun lý li trong Redmine .................................................................................. 35
4
1.1. Tng quan v Redmine ....................................................................................... 35
1.2. ng dn s dng Redmine ............................................................................. 36
1.2.1.Nn tng ca Redmine .................................................................................. 36
1.2.2.Hướng dn qun lý li trên Redmine ........................................................... 37
2.Công c kim th hiệu năng JMeter ................................................................................. 39
2.1. Tng quan kim th hiệu năng ........................................................................... 39
2.2.JMeter .................................................................................................................. 41
2.3.Các bước thc hin kim th ............................................................................... 41
PHN VI: TÀI LIU THAM KHO ......................................................... 43
5
Kết qu thc hiện đ tài theo đề cương thực tp chuyên ngành ến ngày 10
tháng 3 năm 2019)
1. Nhng kết qu đã hoàn thành đưc theo tiến độ thc tp chuyên ngành
Tng quan tình hình nghiên cu v Software Tesing trong nước và
ngoài nước
Nội dung và các phương pháp nghiên cứu Kim th phn mm
Tng quan v kim th phn mm:
- Các khái niệm cơ bản v kim th phn mm
- Các phương pháp về kim th phn mm
- Các kĩ thuật trong kim th phn mm
- Phân loi kim th
Tìm hiu lý thuyết cơ bản các công c h tr trong quá trình kim th
2. D kiến tiến độ tiếp theo
Gii thiu v Website thương mại điện t YSheer, các chức năng
chính và mô t nghip v ca h thng này.
ng dng kim th n Website, s dng các công c h tr và báo
cáo kết qu.
6
PHN I: M ĐẦU
1.1 Đặt vấn đề
Trong những năm gần đây với s phát trin rt mnh ca công ngh thông tin,
ngành công ngh phn mềm đang chiếm mt v trí hết sc quan trọng trong xu ng
phát trin kinh tế công nghip hóa, hiện đi hóa của nước ta. Cùng vi s phát trin
y các chương trình phn mềm ra đời ngày càng nhiều, đòi hi các nhà sn sut phn
mm phi một phương pháp đ nâng cao chất lượng sn phẩm cũng như tối ưu
hiu sut làm việc để có th cnh tranh. Vì vy kim th phn mềm đang ngày càng
đóng vai trò quan trng trong ngành công nghip phát trin phn mm không ch
Vit Nam trên thế gii. Kim th phn mm mt khâu rt quan trng trong
quá trình phát trin phn mm. Kim th phn mềm để kim tra phn mềm có đúng
với đặc t và thiết kế h thống không, có đáp ng yêu cầu người dùng không, có li
lp trình không, hoạt động hiu qu không,…Như vậy, kim th phn mềm để
đáp ứng yêu cầu ngưi dùng, phát trin lỗi để t đó nâng cao chất lượng phn mm.
Vy làm thế nào để th kim tra d án phn mm ca ta chy ổn định, đạt được
tính hiu qu cao, nhưng lại tiết kiệm được thời gian cũng như kinh phí trong quá
trình kim th là mt điều thiết yếu đối vi các nhà kim th.
Vi mong mun cái nhìn xác thực, ràng hơn về quy trình kim th phn
mềm, đm bo chất lượng phn mm tiếp cn vi các công c h tr kim th,
gii quyết phn nào vấn đề v tiết kim thi gian, kinh phí trong vic tìm kiếm li,
qun lý li khi tiến hành kim thử; đồng thi rèn k năng làm việc, to tiền đề định
ớng cho tương lai sau khi ra trường. Được s đồng ý ca Th.S Trn Trung Hiếu
và Khoa CNTT chúng em chọn đề i “Kim th phn mm và ng dng”.
1.2 Mục đích và yêu cầu
1.2.1 Mục đích
Tìm hiu s thuyết v kim th phn mm, các công c h tr trong quá
trình kim th ng dụng để kim th mt s chức năng của website thương mi
đin t Ysheer. Mc tiêu c th như sau:
7
Nắm được tng quan v quá trình kim th phn mm.
Hiểu được tm quan trng, mục đích, vai trò kiểm th phn mm.
Tìm hiu v các cấp đ, các nguyên tắc, các phương pháp, k thut kim th
phn mm.
Biết cài đặt và s dng các công c trong quá trình kim th.
Áp dng tiến hành kim th chức năng, hiệu năng trên website cụ th.
1.2.2 Yêu cu
Để đạt được mục đích như trên, thì trong qtrình thc hiện đề tài phi nm
đưc các yêu cu và cn tp trung vào tìm hiu tài liệu liên quan đến vấn đề nghiên
cu:
Hiểu được các kiến thức bản v (khái nim, quy trình, cấp độ, nguyên
tc…) trong kim th và tn dụng theo đúng quy trình.
Hiu biết các phương pháp kiểm th, thiết kế các trường hp kim th cho
mt phn mềm xác định.
S dng công c quán li Redmine, công c kim th hiệu năng Jmeter, và
ng dng vào d án thc tế.
8
PHN II: TNG QUAN TÌNH HÌNH NGHIÊN CU TRONG VÀ NGOÀI
C
2.1 Tình hình nghiên cứu trong nước
ng ngh thông tin Vit Nam nói chung và phát trin phn mm nói riêng đang
có nhng bước phát trin tt và sinh động. Tuy nhiên, có mt thc tế là kim th
phn mm Vit Nam đã đi sau nhiu nước khác. V mt s lượng thì Vit Nam
thp hơn rt nhiu so vi thế gii. T l developer và tester trong d án ca th gii
là 3:1 còn Vit Nam li là 5:1.
Trước đây, v mt cht lượng, Vit Nam ch yếu là các d án outsource (gia
công phn mm), mà đa phn các d án này ch yếu tp trung vào nhngng vic
cp thp. Dù đã có nhiu ng ty đảm nhn nhng d án ln, giá tr cao nhưng s
lượng đó còn rt ít, do đó cn phi tăng tc để bt kp trình độ ca thế gii.
thi đim hin ti, nhiu công ty, doanh nghip trước kia phát trin mnh v
xây dng phn mm cũng đã phát trin mnh v kim th, có th k đến 1 s doanh
nghip ln như: IT Sol, Citigo, Fsoft, Viettel, Simax
V xu hướng kim th phn mềm đang phát triển mnh Vit Nam, nó vn
mt bài toán không ch vi các công ty sn xut phn mm. vừa để kim soát li
trong quá trình lập trình cũng vừa là chng minh cho khách hàng phn mềm đã thực
hiện đúng các yêu cu h dt ra. các xu hướng v kim th trên nn web, kim
th app mobile, s dng các công c h tr đang được nhiu công ty, doanh nghip
ớng đến và ưu tiên phát triển.
2.2 Tìnhnh nghiên cu ngoài nước
Testing thế giới đã phát triển t lâu, nếu n Vit Nam t l ch 1 Tester
thì có 5 lập trình viên nhưng c ngoài t l này 4:1, như vậy vi 4 Tester thì
mi có mt lp trình viên. Có th nói Testing có rt nhiu tiềm năng phát triển.
9
Nht Bn là mt quc gia có nn Công ngh thông rt phát triển. Người Nht
vốn đã tỉ m nên h mun sn phm ca h làm ra phải đạt được chất lượng, cũng
như quy trình làm ra sn phm phải được qun cht ch k t giai đoạn đầu ca
d án. Nên với QA/Tester người Nht không ch kim th sn phm h còn
va phải đảm bo quy trình ca phn mm, va phi tìm ra nhng li ca sn phm.
vy Test Matrix mt phn quan trng không th thiếu trong các d án ca
Nht Bn.
2.3 Đề tài và tính thi s, tm quan trng ca đề tài
Tha mãn nhu cu của người dùng là vic rt quan trng khi to ra sn phm
hay đảm bo chất lượng phn mm là mt phn không th thiếu trong quá trình sn
xut phn mềm. Để to ra mt sn phm chất lượng li tiết kim kinh phí, ngun
lc, thi gian không phi mt vic d dàng. Vì vy, vic s dng công c h tr
giúp qun chất lượng phn mềm được ưu tiên phát trin trong ngành công ngh
phn mm. Với đề tài “ Kim th phn mmng dng” sẽ giúp ta hiểu rõ hơn
vic tìm kiếm, theo dõi, x lý, cp nht và qun li phát sinh trong quá trình kim
tra, kim th phn mềm đảm bo chất lượng phn mềm trước khi được trin khai
vào thc tế.
10
PHN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1 Địa đim và thi gian nghiên cu
Địa đim nghiên cu:
- Hc Vin Nông Nghip Vit Nam - Trâu Qu - Gia Lâm - Hà Ni.
Địa điểm thc tp:
- Công ty c phn Công nghGii pháp Simax (Phòng 1406, Tòa HH1,
Dương Đình Nghệ - Yên Hòa, Cu Giy, Hà Ni.).
Thi gian thc tp và nghiên cu:
- Bắt đầu: 02/01/2019
- Kết thúc: 28/02/2019
Công vic thc hiên:
- Viết đề cương thực tp chuyên ngành.
- Tìm hiu v các nguyên tắc cơ bản ca kim th phn mm.
- Tìm hiu v hình phát trin ca phn mm, qun cht ng phn
mm.
- Tìm hiu v quy trình ca kim th phn mm, các mc kim th, các loi
kim thử, các phương pháp kiểm th, các k thut kim th.
- Tìm hiu các công c h tr kim th: Jmeter, Redmine.
- Tìm hiu h thống website Thương mại điện t.
- ng dng kim th chương trình và viết báo cáo kim th.
- Hoàn thành báo cáo thc tp chuyên ngành.
3.2 Ni dung nghiên cu
Bài báo cáo được t chc là 5 phần như sau:
Phn I: Nêu tên đề tài, trình bày do, mc đích và yêu cầu khi thc hin đề
tài.
Phn II: Trình bày tng quan v tình hình nghiên cứu trong nước và ngoài
c.
Phn III: Trình bày nội dung và phương pháp nghiên cứu.
11
Phn IV: Kết qutho lun.
Chương 1: Tng quan v kim th phn mềm: Chương này nêu ra các khái
niệm bản như: Kiểm th phn mm gì? Vai trò ca kim th phn mm, quy
trình phát trin phn mm, quy trình kim th phn mềm, các giai đoạn kim th
phn mềm, phương pháp kiểm th phn mm…
Chương 2: Các công c h tr quá trình kim thử: Chương này trình bày tng
quan v c công c: JMeter, Redmine.
Chương 3: Chương này giới thiu v website, các chức năng chính, t
nghip v h thng ca website này.
Chương 4: ng dng kim th website .ng dng kim th s dng các công
c h tr và báo cáo kết qu.
- Phn V: Kết luận và đề ngh
- Phn VI: Tài liu tham kho
3.3. Phương pháp nghiên cứu
- Tham kho các giáo trình, tài liệu liên quan đến nội dung đề tài (ebook, các
bài viết, bài hc trên các website và làm vic thc tế trên website).
- Khảo sát bài toán thực tế.
- Lấy yêu cầu ngườing.
- Thu thập dữ liệu.
- Kim th và nhn ý kiến đánh giá của người s dụng giáo viên hướng dn.
12
PHN IV: KT QU VÀ THO LUN
Chương 1: Tổng quan v kim th phn mm
1. Các khái niệm cơ bản v kim th phn mm
1.1 Kim th phn mm là gì?
Kim th phn mm (Software testing) hoạt động nhm tìm kiếm, phát hin
các li ca phn mềm; đảm bo sn phm phn mềm đáp ứng chính xác, đầy đủ
đúng theo yêu cầu của khách hàng đã đặt ra; cung cp mục tiêu, cái nhìn độc lp v
phn mm, cho phép việc đánh giá và hiểu rõ hơn các rủi ro khi thc thi phn mm,
tạo điều kin cho bn tn dng tối đa tư duy đánh giá sáng tạo để bn có th phát
hin ra nhng điểm mà người khác chưa tìm thấy.
1.2 Li phn mm là gì? Nguyên nhân sinh ra li ca phn mm
Li phn mm là: Li phn mm mt tht bi hoc sai sót gây ra kết qu sai
hoc không mong mun trong một chương trình. Đó là một li khiến cho ng
dng không th vn hành như mong muốn.
Nguyên nhân sinh ra li ca phn mm:
rt nhiu nguyên nhân dẫn đến li phn mềm. do thường gp
nhất đó là do sai sót của con người trong quá trình thiết kế lp trình. Khi
đã biết được nguyên nhân dẫn đến nhng khiếm khuyết ca phn mm, vic
sa chữa để gim thiu nhng khiếm khuyết đó sẽ tr nên d dàng hơn rt
nhiu.
Các li ph biến như:
Hiu lm trong giao tiếp hoc không giao tiếp: Thành công ca ng
dng phn mềm nào cũng đều da vào s giao tiếp gia các bên liên quan,
đội ngũ phát triển đội ngũ kim th. Nhng yêu cu không ràng
nhng hiu lm v các yêu cu hai do chính dẫn đến khiếm khuyết
trong phn mm. Ngoài ra, nhng khiếm khuyết phát sinh trong giai đon
13
phát triển còn là do đội ngũ phát triển không được thông báo chính xác v
các yêu cu.
S phc tp ca các ng dng phn mm hin hành có th tr nên rt khó
hiểu đối vi bt k ai không kinh nghiệm trong lĩnh vực phát trin phn
mm hiện đại. Các giao din loi Windows, cu trúc máy khách-máy ch
các ng dng phân tán, truyn thông d liệu, sở d liu quan h
khng lồ, kích thước ca các ng dụng đã góp phần làm tăng thêm s
phc tp ca phn mm/h thng. Và vic áp dng nhng k thuật hướng
đối tượng có th phc tạp hóa, thay vì đơn gin hóa, mt d án, tr khi d
án đó được thiết kế tt.
Li lp trình: Các lập trình viên cũng là con ngưi, nên vic h mc sai sót
là điều bình thường. Không phi thành viên nào của đội phát triển cũng là
chuyên gia v min. Nhng lp trình viên thiếu kinh nghim hay không có
kiến thc thích hp v min có th mc phi nhng li rất đơn giản trong
khi lp trình. Vic thiếu thc hành các thao tác lập trình đơn giản, kim
th đơn vị hay g li là mt s nguyên nhân thường thy dẫn đến các li
phát sinh trong quá trình phát trin.
Thay đổi yêu cu: Khách hàng th không hiểu được ảnh hưởng
những thay đổi đó gây ra, hoc h hiểu nhưng vẫn yêu cầu thay đổi -
thiết kế lại, thay đi nhân s, ảnh hưởng đến nhng d án khác, những đu
việc đã hoàn thành th cn làm li hoc b đi, những yêu cu v phn
cng th b nh hưởng, v.v...Khi thay đổi xy ra, ln hay nh thì
nhng mt xích gia các phn ca d án cũng rất có kh năng s tương tác
vi nhau và gây ra vấn đề; và quá trình giám sát những thay đi s rt phc
tp d dẫn đến li. Qua đó, tinh thần làm vic của đội ngũ nhân sự cũng
có th b ảnh hưởng.
Áp lc thi gian: Vic lên lch cho các d án phn mm khó nht,
thường đòi hỏi con người phi phỏng đoán rất nhiu. Khi hn chót gn k
và khng hong xut hin thì sai lầm là điều rt khó tránh khi. Lch trình
không thc tế, mc không ph biến, nhưng li mi quan tâm chính
trong các d án quy nh/công ty d dẫn đến li phn mm. Nếu
không đủ thời gian đ thiết kế, coding kim th mt cách hoàn chnh
thì chc chn phn mm s có li.
14
Các công c phát trin phn mm: Các công c trực quan, các thư vin
lp, trình biên dch, công c kch bản, v.v...thường cũng có li riêng hoc
đưc tài liu hóa rt kém, dẫn đến vic sn sinh thêm li. Các lp trình viên
phn mềm thường dùng nhng công c phn mềm thay đổi liên tục, nhưng
vic gi bt kp vi các phiên bn khác nhau và kh năng tương thích của
chúng là mt vấn đề rt lớn đang hiện hu.
Không thiết lp th nghim thích hợp (môi trường th nghiệm) để kim tra
tt c các yêu cu.
Viết code hoc kim th các trường hợp khi chưa hiu tt c các yêu
cu.
Thiết kế sai dẫn đến vic trong tt c các giai đoạn ca chu k phát trin
phn mềm đều có vấn đề.
Thường xuyên phát hành các bn li phn mềm trong khi chưa hoàn
thành vic kim tra vòng đời ca phn mm.
Dành ít thi gian hoc b qua hoàn toàn vic kim tra hi quy.
Không theo dõi quá trình phát trin kim th mt cách lin mch.
Những thay đổi vào phút cui rt có th s dẫn đến li.
1.3 Vai trò ca kim th phn mm
Li th xut hin bất giai đoạn o trong vòng đời phát trin phn
mm, kim tra nghiêm ngt là cn thiết trong quá trình phát trin bảo trì để xác
định các lỗi để gim tht bi khi hoạt động và làm tăng chất lượng ca h thng khi
đi vào vận hành.
- Tìm các bug (li) phát sinh do lp trình viên to ra khi code.
- Đạt được s t tin và cung cp thông tin v mc độ chất lượng.
- Để ngăn ngừa li.
- Đảm bo rng kết qu cuối cùng đápng các yêu cầu kinh doanh và người s
dng.
- Để đạt được s tín nhim ca khách hàng bng cách cung cp cho h mt sn
phm chất lượng.
Kim th phn mm s giúp hoàn thin các ng dng phn mm hoc sn
phm so vi yêu cầu kinh doanh người s dng. Nó là rt quan trọng để đảm bo
15
kim th tốt đ kim th các ng dng phn mm hoàn toàn chc chn rng
hoạt động tt và theo các thông s k thut.
Kim tra phn mềm để chc chn kim th đang thực hiện đúng cách hệ
thống đã sẵn sàng để s dng. Kim th bao ph các lĩnh vực khác nhau như: chc
năng của các ng dng, kh năng tương thích của các ng dng vi các h điu hành,
phn cng các loi khác nhau ca các trình duyt, thc hin kim th để kim tra
hiệu năng của các ng dụng để đảm bo rng h thống đáng tin cậy và không trc
trc hay không nên bt k vấn đề cn trở. Xác đnh rng các ng dng th đưc
trin khai mt cách d dàng vi máy tính và không bt k s cố. Do đó các ng
dng rt d dàng để cài đặt, tìm hiu và s dng.
Kim th phn mm cho phép to ra những đánh gkhách quan về mức độ
phù hp ca h thng các yêu cầu đã nêu và thông số k thut.
Kim tra xác nhn rng h thống đáp ng các yêu cu khác nhau bao gm:
chức năng, hiệu suất, đ tin cy, an toàn, kh năng sử dụng như vậy. Vic xác
nhận này được thc hiện để đảm bo rằng chúng ta đang xây dng h thng phù hp.
Xác nhận để đm bảo đang xây dựng h thng phù hp. Ngoài việc giúp đưa
ra quyết định, các thông tin t các kim th phn mm giúp qun lý ri ro.
Cui cùng ca vic kim th hướng đến chất lượng ca phn mm. Mt d
án chất lượng tốt khi đã đáp ứng được đầy đủ nhng yêu cu ca khách hàng,
ngoài những đặc điểm k thuật được xây dng chính xác, khách hàng còn mun d
án s nm trong ngân sách, thời gian hoàn thành đúng như yêu cầu.
1.4 Ai là người thc hin Test (kim th)
Ai người thc hin Test phn mềm? Điều này ph thuc vào quy trình ca
các bên liên quan đến d án. Trong ngành công nghip phn mm, nhng công ty
ln có mt team chuyên chu trách nhim v việc đánh giá phn mềm đã phát triển
vi nhng yêu cầu được ch định t trước gi là Tester
Trong hu hết các trường hợp, người kim th (Tester) có th là:
- Software Tester nhân viên kim th phn mm
16
- Software Developer nhân viên phát trin phn mm
- Leader hoc manager ca d án
- Product Owner ngưi s hu sn phm
- User ngưi dùng cui
1.5 Thc hin kim th khi nào? Khi nào thì vic kim th phn mm kết thúc?
Tùy vào tng mô hình phát trin phn mm mà thi gian thc hin test là khác
nhau.
Thc hin kim th khi:
- Kim th thc hin càng sm càng tt. Theo quy trình phát trin phn
mm thì kim th đưc thc hiện sau giai đoạn coding. Code xong thì
Dev s build và bàn giao cho Tester thc hin test.
- Thc tế thì tester tham gia sớm hơn, chỉ cn tài liệu Đặc t Yêu
cu/Nghiêp vtester thc hin tìm hiu nghip v d án và thc hin
viết testcase.
Vic kim th phn mm kết thúc khi
- Dng test th theo yêu cu của người quán d án dng test
do nào đấy.
- Dng test khi tt c các chức năng đã đưc test xong. Đm bo tt c
các chức năng đã chạy đúng theo Đặc t phn mm toàn b lỗi đã
đưc sa và test xong hết.
1.6 Các vai trò trong kim th phn mm
Test Manager: Là người đứng đầu b phn kim th, qun chung v các
vấn đề liên quan như quy trình làm việc, nhân s.
Test Leader: Là người trc tiếp tham gia vào quá trình kim th d án cùng
với Tester, Test Leader đm nhim vai trò qun công vic ca Tester, thc hin
17
Verify các sn phm Tester tạo ra cũng như báo cáo ca Test Menager khi
yêu cu.
Tester: Là ni trc tiếp thc hin quá trình kim thử, đảm bo chất lượng
ca sn phm theo nhng nhim v đưc phân công.
2. Quy trình kim th phn mm
Hình 2: Quy trình kim th phn mm
Trong đó:
2.1 Lp kế hoch kim th (Test plan)
Kế hoch kim th là mt tài liu mô t các mc tiêu, phạm vi, phương pháp
tiếp cn, và tp trung vào n lc kim th phn mm.
- Cu trúc chung ca mt test plan:
+ Tên project (Tên d án)
+ Danh sách các module cn test
18
+ Ngày bắt đầu, ngày kết thúc
+ Danh sách các test case
+ Nhân s tham gia
+ Tài nguyên s dụng (Servers, Workstations, Printers,…)
+ Kế hoch thc hin (s dng MS Project lp kế hoạch)…
2.2 Viết testcase
Test case: t mt d liệu đầu vào (input), hành đng (action) và mt kết
qu mong đợi (expected response), đ xác định mt chức năng của ng dng phn
mm hoạt động đúng hay không.
Một trường hp kim th có th có các phần đặc thù khác nhau như
test case, tên test case, mc tiêu kim thử, các điều kin kim th, các
yêu cu v d liệu đầu vào, các bước thc hin và các kết qu mong đợi.
Gồm 3 bước cơ bản:
- Mô tả: Đặc t các điều kin cn c để tiến hành kim tra.
- Nhập: Đặc t đối tượng hoc d liu cn thiết, được s dng làm
đầu vào để thc hin kim tra.
- Kết qu mong ch: Kết qu tr v t đối tưng kim tra.
Quá trình phát trin test case th giúp tìm ra li trong các yêu cu hoc
thiết kế ca ng dng, đòi hỏi phải duy hoàn toàn thông qua các
hoạt động ca ng dng.
2.3 Thc hin test
- Thưc hiện test dựa trên testcase đã viết.
- Chy li các case b li trước đó để xác nhn là case đó đã được sa.
- So sánh kết qu kết qu ghi nhận đc khi thực thi vi kết qu mong đợi.
- Đánh giá kết qu kim th cho các trường hp kim th.
- Viết báo cáo li khi có bug.
19
2.4 Viết báo cáo kim th (test report)
Báo cáo kim th th hin tiến độ kim th, tiến độ sa li và s ng lỗi được
tìm thy hay còn tn ca d án. Nó công c để phc v cho đánh giá hay giám sát
d án kp tiến độ hay không, th bàn giao cho khách hàng hay không các
vấn đề cn gii quyết khi s ng li còn nhiu, gây ra các ri ro v tiến độ hoàn
thành ca d án đểnhững điều chnh kp thi.
3. Các mc kim th(Test level)
Quy trình kim th phn mm s đưc thc hin theo 4 giai đoạn như sau:
Hình 3: Các mc kim th phn mm
3.1 Kim th đơn vị (Unit test):
vic kim th các đơn vị chương trình mt cách lp, và cần được kim
th riêng biệt để phát hin li trong ni ti và khc phục trước khi được tích hp vi
các đơn vị khác
+ Do lập trình viên đảm nhn.
+ Unit test được thc hin càng sm càng tt trong giai đoạn viết code
xuyên sut chu k phát trin phn mm.
20
+ Mục đích: Bảo đảm thông tin được x xut d liu mt cách chính xác
trong mối tương quan nhập d liu và chức năng.
3.2 Kim th tích hp (Intergration testing):
Mc kế tiếp ca kim th đơn v kim th tích hp. Sau khi các đơn vị chương
trình để cu thành h thống đã được kim th, chúng cần được kết ni với nhau để
to thành h thống đầy đủ và có th làm vic. Công vic này không h đơn giản
th li v giao din giữa các đơn vị, cn xác minh các thành phn trong
phn mềm có tương tác được vi nhau hay , có hoạt động phi hợp cùng nhau được
hay không và cn phi kim th để phát hin nhng li này.
+ Do kim th viên thc hin
+ Các nhóm kim th ln dần cho đến khi thành mt h thng.
+ Mục đích: Tìm ra lỗi trong các giao din và giao tiếp gia các thành phn.
3.3 Kim th h thng (System test):
kim th mức này được áp dụng khi đã có một h thống đầy đủ sau khi tt c các
thành phần đã được tích hp. mc đích của vic kim th h thống đ đảm bo
rng việc cài đặt tuân th đầy đ các yêu cầu được đặc t của người dùng. mc
kim th nhằm đưa hệ thng vào vn hành th nghim tại các môi trường khác nhau
nhm tìm ra các li v h thống, tính tương thích, kim th c h thng v chức năng
chính, s liên kết gia các modules vi nhau, kim th giao diện…vvv.
+ Do kim th viên thc hin.
+ Mc đích: Chứng thc rng h thống đã được tích hp vi các h thng bên
ngoài hoc h thng th 3 đã được xác minh trog các yêu cu ca h thng.
3.4 Kim th chp nhn (Acceptance test):
Khi nhóm kim th h thống đã thõa mãn với mt sn phm, sn phẩm đó đã sn
sàng để đưa vào s dụng. được thc thi bi chính khách hàng nhm đảm bo rng
| 1/44

Preview text:

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TIẾN ĐỘ THỰC TẬP CHUYÊN NGÀNH
ĐỀ TÀI: “Kiểm thử phần mềm và ứng dụng”
Người thực hiện:
Võ Thị Anh- 601267- K60QLTT
Nguyễn Thị Mai- 601309- K60QLTT
Giảng viên hướng dẫn:
Th.S Trần Trung Hiếu Bộ môn quản lý:
Công nghệ phần mềm Hà Nội - 2019 1 MỤC LỤC
PHẦN I: MỞ ĐẦU .......................................................................................... 6
1.1 Đặt vấn đề ........................................................................................................................ 6
1.2 Mục đích và yêu cầu ........................................................................................................ 6
1.2.1 Mục đích ............................................................................................................. 6
1.2.2 Yêu cầu ............................................................................................................... 7
PHẦN II: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI
NƯỚC ............................................................................................................... 8
2.1 Tình hình nghiên cứu trong nước ..................................................................................... 8
2.2 Tình hình nghiên cứu ngoài nước .................................................................................... 8
2.3 Đề tài và tính thời sự, tầm quan trọng của đề tài.............................................................. 9
PHẦN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU ................ 10
3.1 Địa điểm và thời gian nghiên cứu .................................................................................. 10
3.2 Nội dung nghiên cứu ..................................................................................................... 10
3.3. Phương pháp nghiên cứu ............................................................................................... 11
PHẦN IV: KẾT QUẢ VÀ THẢO LUẬN ................................................... 12
Chương 1: Tổng quan về kiểm thử phần mềm .......................................... 12
1. Các khái niệm cơ bản về kiểm thử phần mềm ................................................................. 12
1.1 Kiểm thử phần mềm là gì? .................................................................................. 12
1.2 Lỗi phần mềm là gì? Nguyên nhân sinh ra lỗi của phần mềm ............................ 12
1.3 Vai trò của kiểm thử phần mềm .......................................................................... 14
1.4 Ai là người thực hiện Test (kiểm thử) ................................................................. 15
1.5 Thực hiện kiểm thử khi nào? Khi nào thì việc kiểm thử phần mềm kết thúc? ... 16
1.6 Các vai trò trong kiểm thử phần mềm ................................................................. 16
2. Quy trình kiểm thử phần mềm ......................................................................................... 17 2
2.1 Lập kế hoạch kiểm thử (Test plan) ...................................................................... 17
2.2 Viết testcase ........................................................................................................ 18
2.3 Thực hiện test ...................................................................................................... 18
2.4 Viết báo cáo kiểm thử (test report) ...................................................................... 19
3. Các mức kiểm thử(Test level) .......................................................................................... 19
3.1 Kiểm thử đơn vị (Unit test): ................................................................................ 19
3.2 Kiểm thử tích hợp (Intergration testing): ............................................................ 20
3.3 Kiểm thử hệ thống (System test): ........................................................................ 20
3.4 Kiểm thử chấp nhận (Acceptance test): ............................................................... 20
4. Các phương pháp kiểm thử phần mềm ............................................................................ 21
4.1 Phương pháp kiểm thử hộp đen ........................................................................... 21
4.2 Phương pháp kiểm thử hộp trắng ........................................................................ 22
4.3 Phương pháp kiểm thử hộp xám (Gray Box Testing) ......................................... 24
5. Kiểm thử động và Kiểm thử tĩnh ..................................................................................... 24
5.1 Kiểm thử tĩnh (Static Testing) ............................................................................ 24
5.2 Kiểm thử động (Dynamic Testing) ..................................................................... 25
6. Các kỹ thuật kiểm thử ...................................................................................................... 26
6.1 Kỹ thuật phân vùng tương đương ........................................................................ 26
6.2 Kỹ thuật phân tích giá trị biên ............................................................................. 28
6.3 Bảng quyết định ................................................................................................... 29
6.3 Kỹ thuật đoán lỗi ................................................................................................. 31
7. Phân loại kiểm thử............................................................................................................ 32
7.1 Kiểm thử thủ công (Manual Test) ....................................................................... 32
7.2 Kiểm thử tự động (Automation Test) .................................................................. 33
Chương 2: Các công cụ hỗ trợ quá trình kiểm thử ................................... 35
1.Công cụ quản lý lỗi trong Redmine .................................................................................. 35 3
1.1. Tổng quan về Redmine ....................................................................................... 35
1.2. Hướng dẫn sử dụng Redmine ............................................................................. 36
1.2.1.Nền tảng của Redmine .................................................................................. 36
1.2.2.Hướng dẫn quản lý lỗi trên Redmine ........................................................... 37
2.Công cụ kiểm thử hiệu năng JMeter ................................................................................. 39
2.1. Tổng quan kiểm thử hiệu năng ........................................................................... 39
2.2.JMeter .................................................................................................................. 41
2.3.Các bước thực hiện kiểm thử ............................................................................... 41
PHẦN VI: TÀI LIỆU THAM KHẢO ......................................................... 43 4
Kết quả thực hiện đề tài theo đề cương thực tập chuyên ngành (Đến ngày 10 tháng 3 năm 2019)
1. Những kết quả đã hoàn thành được theo tiến độ thực tập chuyên ngành
▪ Tổng quan tình hình nghiên cứu về Software Tesing trong nước và ngoài nước
▪ Nội dung và các phương pháp nghiên cứu Kiểm thử phần mềm
▪ Tổng quan về kiểm thử phần mềm:
- Các khái niệm cơ bản về kiểm thử phần mềm
- Các phương pháp về kiểm thử phần mềm
- Các kĩ thuật trong kiểm thử phần mềm - Phân loại kiểm thử
▪ Tìm hiểu lý thuyết cơ bản các công cụ hỗ trợ trong quá trình kiểm thử
2. Dự kiến tiến độ tiếp theo
▪ Giới thiệu về Website thương mại điện tử YSheer, các chức năng
chính và mô tả nghiệp vụ của hệ thống này.
▪ Ứng dụng kiểm thử lên Website, sử dụng các công cụ hỗ trợ và báo cáo kết quả. 5 PHẦN I: MỞ ĐẦU 1.1 Đặt vấn đề
Trong những năm gần đây với sự phát triển rất mạnh của công nghệ thông tin,
ngành công nghệ phần mềm đang chiếm một vị trí hết sức quan trọng trong xu hướng
phát triển kinh tế công nghiệp hóa, hiện đại hóa của nước ta. Cùng với sự phát triển
ấy các chương trình phần mềm ra đời ngày càng nhiều, đòi hỏi các nhà sản suất phần
mềm phải có một phương pháp để nâng cao chất lượng sản phẩm cũng như tối ưu
hiệu suất làm việc để có thể cạnh tranh. Vì vậy kiểm thử phần mềm đang ngày càng
đóng vai trò quan trọng trong ngành công nghiệp phát triển phần mềm không chỉ ở
Việt Nam mà trên thế giới. Kiểm thử phần mềm là một khâu rất quan trọng trong
quá trình phát triển phần mềm. Kiểm thử phần mềm để kiểm tra phần mềm có đúng
với đặc tả và thiết kế hệ thống không, có đáp ứng yêu cầu người dùng không, có lỗi
lập trình không, hoạt động có hiệu quả không,…Như vậy, kiểm thử phần mềm là để
đáp ứng yêu cầu người dùng, phát triển lỗi để từ đó nâng cao chất lượng phần mềm.
Vậy làm thế nào để có thể kiểm tra dự án phần mềm của ta chạy ổn định, đạt được
tính hiệu quả cao, nhưng lại tiết kiệm được thời gian cũng như kinh phí trong quá
trình kiểm thử là một điều thiết yếu đối với các nhà kiểm thử.
Với mong muốn có cái nhìn xác thực, rõ ràng hơn về quy trình kiểm thử phần
mềm, đảm bảo chất lượng phần mềm và tiếp cận với các công cụ hỗ trợ kiểm thử,
giải quyết phần nào vấn đề về tiết kiệm thời gian, kinh phí trong việc tìm kiếm lỗi,
quản lý lỗi khi tiến hành kiểm thử; đồng thời rèn kỹ năng làm việc, tạo tiền đề định
hướng cho tương lai sau khi ra trường. Được sự đồng ý của Th.S Trần Trung Hiếu
và Khoa CNTT chúng em chọn đề tài “Kiểm thử phần mềm và ứng dụng”.
1.2 Mục đích và yêu cầu 1.2.1 Mục đích
Tìm hiểu cơ sở lý thuyết về kiểm thử phần mềm, các công cụ hỗ trợ trong quá
trình kiểm thử và ứng dụng để kiểm thử một số chức năng của website thương mại
điện tử Ysheer. Mục tiêu cụ thể như sau: 6
✓ Nắm được tổng quan về quá trình kiểm thử phần mềm.
✓ Hiểu được tầm quan trọng, mục đích, vai trò kiểm thử phần mềm.
✓ Tìm hiểu về các cấp độ, các nguyên tắc, các phương pháp, kỹ thuật kiểm thử phần mềm.
✓ Biết cài đặt và sử dụng các công cụ trong quá trình kiểm thử.
✓ Áp dụng tiến hành kiểm thử chức năng, hiệu năng trên website cụ thể. 1.2.2 Yêu cầu
Để đạt được mục đích như trên, thì trong quá trình thực hiện đề tài phải nắm
được các yêu cầu và cần tập trung vào tìm hiểu tài liệu liên quan đến vấn đề nghiên cứu:
✓ Hiểu được các kiến thức cơ bản về (khái niệm, quy trình, cấp độ, nguyên
tắc…) trong kiểm thử và tận dụng theo đúng quy trình.
✓ Hiểu biết các phương pháp kiểm thử, thiết kế các trường hợp kiểm thử cho
một phần mềm xác định.
✓ Sử dụng công cụ quán lý lỗi Redmine, công cụ kiểm thử hiệu năng Jmeter, và
ứng dụng vào dự án thực tế. 7
PHẦN II: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC
2.1 Tình hình nghiên cứu trong nước
Công nghệ thông tin Việt Nam nói chung và phát triển phần mềm nói riêng đang
có những bước phát triển tốt và sinh động. Tuy nhiên, có một thực tế là kiểm thử
phần mềm ở Việt Nam đã đi sau nhiều nước khác. Về mặt số lượng thì Việt Nam
thấp hơn rất nhiều so với thế giới. Tỷ lệ developer và tester trong dự án của thể giới
là 3:1 còn ở Việt Nam lại là 5:1.
Trước đây, về mặt chất lượng, ở Việt Nam chủ yếu là các dự án outsource (gia
công phần mềm), mà đa phần các dự án này chủ yếu tập trung vào những công việc
cấp thấp. Dù đã có nhiều công ty đảm nhận những dự án lớn, giá trị cao nhưng số
lượng đó còn rất ít, do đó cần phải tăng tốc để bắt kịp trình độ của thế giới.
Ở thời điểm hiện tại, nhiều công ty, doanh nghiệp trước kia phát triển mạnh về
xây dựng phần mềm cũng đã phát triển mạnh về kiểm thử, có thể kể đến 1 số doanh
nghiệp lớn như: IT Sol, Citigo, Fsoft, Viettel, Simax…
Về xu hướng kiểm thử phần mềm đang phát triển mạnh ở Việt Nam, nó vẫn là
một bài toán không chỉ với các công ty sản xuất phần mềm. Nó vừa để kiểm soát lỗi
trong quá trình lập trình cũng vừa là chứng minh cho khách hàng phần mềm đã thực
hiện đúng các yêu cầu họ dặt ra. Là các xu hướng về kiểm thử trên nền web, kiểm
thử app mobile, sử dụng các công cụ hỗ trợ đang được nhiều công ty, doanh nghiệp
hướng đến và ưu tiên phát triển.
2.2 Tình hình nghiên cứu ngoài nước
Testing ở thế giới đã phát triển từ lâu, nếu như ở Việt Nam tỉ lệ chỉ có 1 Tester
thì có 5 lập trình viên nhưng ở nước ngoài tỉ lệ này là 4:1, như vậy với 4 Tester thì
mới có một lập trình viên. Có thể nói Testing có rất nhiều tiềm năng phát triển. 8
Nhật Bản là một quốc gia có nền Công nghệ thông rất phát triển. Người Nhật
vốn đã tỉ mỉ nên họ muốn sản phẩm của họ làm ra phải đạt được chất lượng, cũng
như quy trình làm ra sản phẩm phải được quản lý chặt chẽ kể từ giai đoạn đầu của
dự án. Nên với QA/Tester người Nhật không chỉ có kiểm thử sản phẩm mà họ còn
vừa phải đảm bảo quy trình của phần mềm, vừa phải tìm ra những lỗi của sản phẩm.
Vì vậy Test Matrix là một phần quan trọng và không thể thiếu trong các dự án của Nhật Bản.
2.3 Đề tài và tính thời sự, tầm quan trọng của đề tài
Thỏa mãn nhu cầu của người dùng là việc rất quan trọng khi tạo ra sản phẩm
hay đảm bảo chất lượng phần mềm là một phần không thể thiếu trong quá trình sản
xuất phần mềm. Để tạo ra một sản phẩm chất lượng lại tiết kiệm kinh phí, nguồn
lực, thời gian không phải là một việc dễ dàng. Vì vậy, việc sử dụng công cụ hỗ trợ
giúp quản lý chất lượng phần mềm được ưu tiên phát triển trong ngành công nghệ
phần mềm. Với đề tài “ Kiểm thử phần mềm và ứng dụng” sẽ giúp ta hiểu rõ hơn
việc tìm kiếm, theo dõi, xử lý, cập nhật và quản lý lỗi phát sinh trong quá trình kiểm
tra, kiểm thử phần mềm đảm bảo chất lượng phần mềm trước khi được triển khai vào thực tế. 9
PHẦN III: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1 Địa điểm và thời gian nghiên cứu
• Địa điểm nghiên cứu:
- Học Viện Nông Nghiệp Việt Nam - Trâu Quỳ - Gia Lâm - Hà Nội.
• Địa điểm thực tập:
- Công ty cổ phần Công nghệ và Giải pháp Simax (Phòng 1406, Tòa HH1,
Dương Đình Nghệ - Yên Hòa, Cầu Giấy, Hà Nội.).
• Thời gian thực tập và nghiên cứu: - Bắt đầu: 02/01/2019 - Kết thúc: 28/02/2019
• Công việc thực hiên:
- Viết đề cương thực tập chuyên ngành.
- Tìm hiểu về các nguyên tắc cơ bản của kiểm thử phần mềm.
- Tìm hiểu về mô hình phát triển của phần mềm, quản lý chất lượng phần mềm.
- Tìm hiểu về quy trình của kiểm thử phần mềm, các mức kiểm thử, các loại
kiểm thử, các phương pháp kiểm thử, các kỹ thuật kiểm thử.
- Tìm hiểu các công cụ hỗ trợ kiểm thử: Jmeter, Redmine.
- Tìm hiểu hệ thống website Thương mại điện tử.
- Ứng dụng kiểm thử chương trình và viết báo cáo kiểm thử.
- Hoàn thành báo cáo thực tập chuyên ngành.
3.2 Nội dung nghiên cứu
Bài báo cáo được tổ chức là 5 phần như sau:
Phần I: Nêu tên đề tài, trình bày lý do, mục đích và yêu cầu khi thực hiện đề tài.
Phần II: Trình bày tổng quan về tình hình nghiên cứu trong nước và ngoài nước.
Phần III: Trình bày nội dung và phương pháp nghiên cứu. 10
Phần IV: Kết quả và thảo luận.
Chương 1: Tổng quan về kiểm thử phần mềm: Chương này nêu ra các khái
niệm cơ bản như: Kiểm thử phần mềm là gì? Vai trò của kiểm thử phần mềm, quy
trình phát triển phần mềm, quy trình kiểm thử phần mềm, các giai đoạn kiểm thử
phần mềm, phương pháp kiểm thử phần mềm…
Chương 2: Các công cụ hỗ trợ quá trình kiểm thử: Chương này trình bày tổng
quan về các công cụ: JMeter, Redmine.
Chương 3: Chương này giới thiệu về website, các chức năng chính, mô tả
nghiệp vụ hệ thống của website này.
Chương 4: Ứng dụng kiểm thử website .Ứng dụng kiểm thử sử dụng các công
cụ hỗ trợ và báo cáo kết quả.
- Phần V: Kết luận và đề nghị
- Phần VI: Tài liệu tham khảo
3.3. Phương pháp nghiên cứu
- Tham khảo các giáo trình, tài liệu liên quan đến nội dung đề tài (ebook, các
bài viết, bài học trên các website và làm việc thực tế trên website).
- Khảo sát bài toán thực tế.
- Lấy yêu cầu người dùng. - Thu thập dữ liệu.
- Kiểm thử và nhận ý kiến đánh giá của người sử dụng và giáo viên hướng dẫn. 11
PHẦN IV: KẾT QUẢ VÀ THẢO LUẬN
Chương 1: Tổng quan về kiểm thử phần mềm
1. Các khái niệm cơ bản về kiểm thử phần mềm
1.1 Kiểm thử phần mềm là gì?
Kiểm thử phần mềm (Software testing) là hoạt động nhằm tìm kiếm, phát hiện
các lỗi của phần mềm; đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và
đúng theo yêu cầu của khách hàng đã đặt ra; cung cấp mục tiêu, cái nhìn độc lập về
phần mềm, cho phép việc đánh giá và hiểu rõ hơn các rủi ro khi thực thi phần mềm,
tạo điều kiện cho bạn tận dụng tối đa tư duy đánh giá và sáng tạo để bạn có thể phát
hiện ra những điểm mà người khác chưa tìm thấy.
1.2 Lỗi phần mềm là gì? Nguyên nhân sinh ra lỗi của phần mềm
Lỗi phần mềm là: Lỗi phần mềm là một thất bại hoặc sai sót gây ra kết quả sai
hoặc không mong muốn trong một chương trình. Đó là một lỗi khiến cho ứng
dụng không thể vận hành như mong muốn.
Nguyên nhân sinh ra lỗi của phần mềm:
Có rất nhiều nguyên nhân dẫn đến lỗi phần mềm. Lý do thường gặp
nhất đó là do sai sót của con người trong quá trình thiết kế và lập trình. Khi
đã biết được nguyên nhân dẫn đến những khiếm khuyết của phần mềm, việc
sửa chữa để giảm thiểu những khiếm khuyết đó sẽ trở nên dễ dàng hơn rất nhiều.
Các lỗi phổ biến như:
Hiểu lầm trong giao tiếp hoặc không có giao tiếp: Thành công của ứng
dụng phần mềm nào cũng đều dựa vào sự giao tiếp giữa các bên liên quan,
đội ngũ phát triển và đội ngũ kiểm thử. Những yêu cầu không rõ ràng và
những hiểu lầm về các yêu cầu là hai lý do chính dẫn đến khiếm khuyết
trong phần mềm. Ngoài ra, những khiếm khuyết phát sinh trong giai đoạn 12
phát triển còn là do đội ngũ phát triển không được thông báo chính xác về các yêu cầu.
Sự phức tạp của các ứng dụng phần mềm hiện hành có thể trở nên rất khó
hiểu đối với bất kỳ ai không có kinh nghiệm trong lĩnh vực phát triển phần
mềm hiện đại. Các giao diện loại Windows, cấu trúc máy khách-máy chủ
và các ứng dụng phân tán, truyền thông dữ liệu, cơ sở dữ liệu quan hệ
khổng lồ, và kích thước của các ứng dụng đã góp phần làm tăng thêm sự
phức tạp của phần mềm/hệ thống. Và việc áp dụng những kỹ thuật hướng
đối tượng có thể phức tạp hóa, thay vì đơn giản hóa, một dự án, trừ khi dự
án đó được thiết kế tốt.
Lỗi lập trình: Các lập trình viên cũng là con người, nên việc họ mắc sai sót
là điều bình thường. Không phải thành viên nào của đội phát triển cũng là
chuyên gia về miền. Những lập trình viên thiếu kinh nghiệm hay không có
kiến thức thích hợp về miền có thể mắc phải những lỗi rất đơn giản trong
khi lập trình. Việc thiếu thực hành các thao tác lập trình đơn giản, kiểm
thử đơn vị hay gỡ lỗi là một số nguyên nhân thường thấy dẫn đến các lỗi
phát sinh trong quá trình phát triển.
Thay đổi yêu cầu: Khách hàng có thể không hiểu được ảnh hưởng mà
những thay đổi đó gây ra, hoặc là họ hiểu nhưng vẫn yêu cầu thay đổi -
thiết kế lại, thay đổi nhân sự, ảnh hưởng đến những dự án khác, những đầu
việc đã hoàn thành có thể cần làm lại hoặc bỏ đi, những yêu cầu về phần
cứng có thể bị ảnh hưởng, v.v...Khi thay đổi xảy ra, dù lớn hay nhỏ thì
những mắt xích giữa các phần của dự án cũng rất có khả năng sẽ tương tác
với nhau và gây ra vấn đề; và quá trình giám sát những thay đổi sẽ rất phức
tạp và dễ dẫn đến lỗi. Qua đó, tinh thần làm việc của đội ngũ nhân sự cũng
có thể bị ảnh hưởng.
Áp lực thời gian: Việc lên lịch cho các dự án phần mềm là khó nhất, và
thường đòi hỏi con người phải phỏng đoán rất nhiều. Khi hạn chót gần kề
và khủng hoảng xuất hiện thì sai lầm là điều rất khó tránh khỏi. Lịch trình
không thực tế, mặc dù không phổ biến, nhưng lại là mối quan tâm chính
trong các dự án quy mô nhỏ/công ty và dễ dẫn đến lỗi phần mềm. Nếu
không có đủ thời gian để thiết kế, coding và kiểm thử một cách hoàn chỉnh
thì chắc chắn phần mềm sẽ có lỗi. 13
Các công cụ phát triển phần mềm: Các công cụ trực quan, các thư viện
lớp, trình biên dịch, công cụ kịch bản, v.v...thường cũng có lỗi riêng hoặc
được tài liệu hóa rất kém, dẫn đến việc sản sinh thêm lỗi. Các lập trình viên
phần mềm thường dùng những công cụ phần mềm thay đổi liên tục, nhưng
việc giữ bắt kịp với các phiên bản khác nhau và khả năng tương thích của
chúng là một vấn đề rất lớn đang hiện hữu.
Không thiết lập thử nghiệm thích hợp (môi trường thử nghiệm) để kiểm tra
tất cả các yêu cầu.
Viết code hoặc kiểm thử các trường hợp khi chưa hiểu rõ tất cả các yêu cầu.
Thiết kế sai dẫn đến việc trong tất cả các giai đoạn của chu kỳ phát triển
phần mềm đều có vấn đề.
Thường xuyên phát hành các bản vá lỗi phần mềm trong khi chưa hoàn
thành việc kiểm tra vòng đời của phần mềm.
Dành ít thời gian hoặc bỏ qua hoàn toàn việc kiểm tra hồi quy.
Không theo dõi quá trình phát triển và kiểm thử một cách liền mạch.
Những thay đổi vào phút cuối rất có thể sẽ dẫn đến lỗi.
1.3 Vai trò của kiểm thử phần mềm
Lỗi có thể xuất hiện ở bất kì giai đoạn nào trong vòng đời phát triển phần
mềm, kiểm tra nghiêm ngặt là cần thiết trong quá trình phát triển và bảo trì để xác
định các lỗi để giảm thất bại khi hoạt động và làm tăng chất lượng của hệ thống khi đi vào vận hành. -
Tìm các bug (lỗi) phát sinh do lập trình viên tạo ra khi code. -
Đạt được sự tự tin và cung cấp thông tin về mức độ chất lượng. - Để ngăn ngừa lỗi. -
Đảm bảo rằng kết quả cuối cùng đáp ứng các yêu cầu kinh doanh và người sử dụng. -
Để đạt được sự tín nhiệm của khách hàng bằng cách cung cấp cho họ một sản phẩm chất lượng.
Kiểm thử phần mềm sẽ giúp hoàn thiện các ứng dụng phần mềm hoặc sản
phẩm so với yêu cầu kinh doanh và người sử dụng. Nó là rất quan trọng để đảm bảo 14
kiểm thử tốt để kiểm thử các ứng dụng phần mềm hoàn toàn và chắc chắn rằng nó
hoạt động tốt và theo các thông số kỹ thuật.
Kiểm tra phần mềm để chắc chắn kiểm thử đang thực hiện đúng cách và hệ
thống đã sẵn sàng để sử dụng. Kiểm thử bao phủ các lĩnh vực khác nhau như: chức
năng của các ứng dụng, khả năng tương thích của các ứng dụng với các hệ điều hành,
phần cứng và các loại khác nhau của các trình duyệt, thực hiện kiểm thử để kiểm tra
hiệu năng của các ứng dụng để đảm bảo rằng hệ thống đáng tin cậy và không có trục
trặc hay không nên có bất kỳ vấn đề cản trở. Xác định rằng các ứng dụng có thể được
triển khai một cách dễ dàng với máy tính và không có bất kỳ sự cố. Do đó các ứng
dụng rất dễ dàng để cài đặt, tìm hiểu và sử dụng.
Kiểm thử phần mềm cho phép tạo ra những đánh giá khách quan về mức độ
phù hợp của hệ thống các yêu cầu đã nêu và thông số kỹ thuật.
Kiểm tra xác nhận rằng hệ thống đáp ứng các yêu cầu khác nhau bao gồm:
chức năng, hiệu suất, độ tin cậy, an toàn, khả năng sử dụng và như vậy. Việc xác
nhận này được thực hiện để đảm bảo rằng chúng ta đang xây dựng hệ thống phù hợp.
Xác nhận để đảm bảo đang xây dựng hệ thống phù hợp. Ngoài việc giúp đưa
ra quyết định, các thông tin từ các kiểm thử phần mềm giúp quản lý rủi ro.
Cuối cùng của việc kiểm thử là hướng đến chất lượng của phần mềm. Một dự
án có chất lượng tốt khi đã đáp ứng được đầy đủ những yêu cầu của khách hàng,
ngoài những đặc điểm kỹ thuật được xây dựng chính xác, khách hàng còn muốn dự
án sẽ nằm trong ngân sách, thời gian hoàn thành đúng như yêu cầu.
1.4 Ai là người thực hiện Test (kiểm thử)
Ai là người thực hiện Test phần mềm? Điều này phụ thuộc vào quy trình của
các bên liên quan đến dự án. Trong ngành công nghiệp phần mềm, những công ty
lớn có một team chuyên chịu trách nhiệm về việc đánh giá phần mềm đã phát triển
với những yêu cầu được chỉ định từ trước – gọi là Tester
Trong hầu hết các trường hợp, người kiểm thử (Tester) có thể là:
- Software Tester – nhân viên kiểm thử phần mềm 15
- Software Developer – nhân viên phát triển phần mềm
- Leader hoặc manager của dự án
- Product Owner – người sở hữu sản phẩm
- User – người dùng cuối
1.5 Thực hiện kiểm thử khi nào? Khi nào thì việc kiểm thử phần mềm kết thúc?
Tùy vào từng mô hình phát triển phần mềm mà thời gian thực hiện test là khác nhau.
Thực hiện kiểm thử khi:
- Kiểm thử thực hiện càng sớm càng tốt. Theo quy trình phát triển phần
mềm thì kiểm thử được thực hiện sau giai đoạn coding. Code xong thì
Dev sẽ build và bàn giao cho Tester thực hiện test.
- Thực tế thì tester tham gia sớm hơn, chỉ cần có tài liệu Đặc tả Yêu
cầu/Nghiêp vụ là tester thực hiện tìm hiểu nghiệp vụ dự án và thực hiện viết testcase.
Việc kiểm thử phần mềm kết thúc khi
- Dừng test có thể theo yêu cầu của người quán lý dự án dừng test vì lý do nào đấy.
- Dừng test khi tất cả các chức năng đã được test xong. Đảm bảo tất cả
các chức năng đã chạy đúng theo Đặc tả phần mềm và toàn bộ lỗi đã
được sửa và test xong hết.
1.6 Các vai trò trong kiểm thử phần mềm
• Test Manager: Là người đứng đầu bộ phận kiểm thử, quản lý chung về các
vấn đề liên quan như quy trình làm việc, nhân sự.
• Test Leader: Là người trực tiếp tham gia vào quá trình kiểm thử dự án cùng
với Tester, Test Leader đảm nhiệm vai trò quản lý công việc của Tester, thực hiện 16
Verify các sản phẩm mà Tester tạo ra cũng như báo cáo của Test Menager khi có yêu cầu.
• Tester: Là người trực tiếp thực hiện quá trình kiểm thử, đảm bảo chất lượng
của sản phẩm theo những nhiệm vụ được phân công.
2. Quy trình kiểm thử phần mềm
Hình 2: Quy trình kiểm thử phần mềm Trong đó:
2.1 Lập kế hoạch kiểm thử (Test plan)
Kế hoạch kiểm thử là một tài liệu mô tả các mục tiêu, phạm vi, phương pháp
tiếp cận, và tập trung vào nỗ lực kiểm thử phần mềm.
- Cấu trúc chung của một test plan:
+ Tên project (Tên dự án)
+ Danh sách các module cần test 17
+ Ngày bắt đầu, ngày kết thúc + Danh sách các test case + Nhân sự tham gia
+ Tài nguyên sử dụng (Servers, Workstations, Printers,…)
+ Kế hoạch thực hiện (sử dụng MS Project lập kế hoạch)… 2.2 Viết testcase
Test case: mô tả một dữ liệu đầu vào (input), hành động (action) và một kết
quả mong đợi (expected response), để xác định một chức năng của ứng dụng phần
mềm hoạt động đúng hay không.
❖ Một trường hợp kiểm thử có thể có các phần đặc thù khác nhau như mã
test case, tên test case, mục tiêu kiểm thử, các điều kiện kiểm thử, các
yêu cầu về dữ liệu đầu vào, các bước thực hiện và các kết quả mong đợi.
❖ Gồm 3 bước cơ bản:
- Mô tả: Đặc tả các điều kiện cần cố để tiến hành kiểm tra.
- Nhập: Đặc tả đối tượng hoặc dữ liệu cần thiết, được sử dụng làm
đầu vào để thực hiện kiểm tra.
- Kết quả mong chờ: Kết quả trả về từ đối tượng kiểm tra.
❖ Quá trình phát triển test case có thể giúp tìm ra lỗi trong các yêu cầu hoặc
thiết kế của ứng dụng, vì nó đòi hỏi phải tư duy hoàn toàn thông qua các
hoạt động của ứng dụng. 2.3 Thực hiện test
- Thưc hiện test dựa trên testcase đã viết.
- Chạy lại các case bị lỗi trước đó để xác nhận là case đó đã được sửa.
- So sánh kết quả kết quả ghi nhận đc khi thực thi với kết quả mong đợi.
- Đánh giá kết quả kiểm thử cho các trường hợp kiểm thử.
- Viết báo cáo lỗi khi có bug. 18
2.4 Viết báo cáo kiểm thử (test report)
Báo cáo kiểm thử thể hiện tiến độ kiểm thử, tiến độ sửa lỗi và số lượng lỗi được
tìm thấy hay còn tồn của dự án. Nó là công cụ để phục vụ cho đánh giá hay giám sát
dự án có kịp tiến độ hay không, có thể bàn giao cho khách hàng hay không và các
vấn đề cần giải quyết khi mà số lượng lỗi còn nhiều, gây ra các rủi ro về tiến độ hoàn
thành của dự án để có những điều chỉnh kịp thời.
3. Các mức kiểm thử(Test level)
Quy trình kiểm thử phần mềm sẽ được thực hiện theo 4 giai đoạn như sau:
Hình 3: Các mức kiểm thử phần mềm
3.1 Kiểm thử đơn vị (Unit test):
Là việc kiểm thử các đơn vị chương trình một cách cô lập, và cần được kiểm
thử riêng biệt để phát hiện lỗi trong nội tại và khắc phục trước khi được tích hợp với các đơn vị khác
+ Do lập trình viên đảm nhận.
+ Unit test được thực hiện càng sớm càng tốt trong giai đoạn viết code và
xuyên suốt chu kỳ phát triển phần mềm. 19
+ Mục đích: Bảo đảm thông tin được xử lý và xuất dữ liệu một cách chính xác
trong mối tương quan nhập dữ liệu và chức năng.
3.2 Kiểm thử tích hợp (Intergration testing):
Mức kế tiếp của kiểm thử đơn vị là kiểm thử tích hợp. Sau khi các đơn vị chương
trình để cấu thành hệ thống đã được kiểm thử, chúng cần được kết nối với nhau để
tạo thành hệ thống đầy đủ và có thể làm việc. Công việc này không hề đơn giản và
có thể có lỗi về giao diện giữa các đơn vị, và cần xác minh các thành phần trong
phần mềm có tương tác được với nhau hay , có hoạt động phối hợp cùng nhau được
hay không và cần phải kiểm thử để phát hiện những lỗi này.
+ Do kiểm thử viên thực hiện
+ Các nhóm kiểm thử lớn dần cho đến khi thành một hệ thống.
+ Mục đích: Tìm ra lỗi trong các giao diện và giao tiếp giữa các thành phần.
3.3 Kiểm thử hệ thống (System test):
kiểm thử mức này được áp dụng khi đã có một hệ thống đầy đủ sau khi tất cả các
thành phần đã được tích hợp. mục đích của việc kiểm thử hệ thống là để đảm bảo
rằng việc cài đặt tuân thủ đầy đủ các yêu cầu được đặc tả của người dùng. Là mức
kiểm thử nhằm đưa hệ thống vào vận hành thử nghiệm tại các môi trường khác nhau
nhằm tìm ra các lỗi về hệ thống, tính tương thích, kiểm thử cả hệ thống về chức năng
chính, sự liên kết giữa các modules với nhau, kiểm thử giao diện…vvv.
+ Do kiểm thử viên thực hiện.
+ Mục đích: Chứng thực rằng hệ thống đã được tích hợp với các hệ thống bên
ngoài hoặc hệ thống thứ 3 đã được xác minh trog các yêu cầu của hệ thống.
3.4 Kiểm thử chấp nhận (Acceptance test):
Khi nhóm kiểm thử hệ thống đã thõa mãn với một sản phẩm, sản phẩm đó đã sẵn
sàng để đưa vào sử dụng. được thực thi bởi chính khách hàng nhằm đảm bảo rằng 20