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
Trang 1HỌ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
Th.S Trần Trung Hiếu Công nghệ phần mềm
Trang 2MỤC LỤ
Trang 3PHẦ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
Trang 42.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
Trang 51.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
Trang 6Kế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ả
Trang 7PHẦ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 xuhướ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ẩmcũ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ầnmềm đang ngày càng đóng vai trò quan trọng trong ngành công nghiệp phát triểnphần mềm không chỉ ở Việt Nam mà trên thế giới Kiểm thử phần mềm là mộtkhâ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êucầ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ầnmề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ờigian 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ácnhà 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ầnmề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 đề địnhhướ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:
Trang 8 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êncứu:
Hiểu được các kiến thức cơ bản về (khái niệm, quy trình, cấp độ, nguyêntắ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ử chomộ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ế
Trang 9PHẦ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ểmthử phần mềm ở Việt Nam đã đi sau nhiều nước khác Về mặt số lượng thì ViệtNam thấp hơn rất nhiều so với thế giới Tỷ lệ developer và tester trong dự án củathể 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 (giacô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ệccấ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átlỗ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, doanhnghiệ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ó 1Tester 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 4Tester 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áttriển
Trang 10Nhật Bản là một quốc gia có nền Công nghệ thông rất phát triển NgườiNhậ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 đầucủ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ảnphẩ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ẩmhay đả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ảnxuấ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ồnlự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ìnhkiể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ểnkhai vào thực tế
Trang 11PHẦ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
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ầnmề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ácloạ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:
Trang 12 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, quytrì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ácbà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ướngdẫn
Trang 13PHẦ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.2 Lỗi phần mềm là gì? Nguyên nhân sinh ra lỗi của phần mềm
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
Có rất nhiều nguyên nhân dẫn đến lỗi phần mềm Lý do thường gặpnhấ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ệcsửa chữa để giảm thiểu những khiếm khuyết đó sẽ trở nên dễ dàng hơn rấtnhiều
Các lỗi phổ biến như:
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ênquan, độ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
Trang 14khuyết trong phần mềm Ngoài ra, những khiếm khuyết phát sinh tronggiai đoạn phát triển còn là do đội ngũ phát triển không được thông báochính xác về các yêu cầu.
khó hiểu đối với bất kỳ ai không có kinh nghiệm trong lĩnh vực phát triểnphầ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ệuquan hệ khổng lồ, và kích thước của các ứng dụng đã góp phần làm tăngthê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
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ểncũng là chuyên gia về miền Những lập trình viên thiếu kinh nghiệm haykhô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 đơngiản trong khi lập trình Việc thiếu thực hành các thao tác lập trình đơngiả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
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
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ìnhkhông thực tế, mặc dù không phổ biến, nhưng lại là mối quan tâm chínhtrong các dự án quy mô nhỏ/công ty và dễ dẫn đến lỗi phần mềm Nếukhông có đủ thời gian để thiết kế, coding và kiểm thử một cách hoànchỉnh thì chắc chắn phần mềm sẽ có lỗi
Trang 15 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ìnhviê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ươngthí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ầnmề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
Trang 16bảo 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ứcnă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ềuhà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 ứngdụ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ự
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áchhà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ònmuố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ủacác bên liên quan đến dự án Trong ngành công nghiệp phần mềm, những công tylớ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ểnvớ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à:
Trang 17- Software Tester – nhân viên kiểm thử phần mềm
- 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
- 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ếttestcase
- 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ácvấn đề liên quan như quy trình làm việc, nhân sự
Trang 18Test Leader: Là người trực tiếp tham gia vào quá trình kiểm thử dự án cùngvới Tester, Test Leader đảm nhiệm vai trò quản lý công việc của Tester, thực hiệnVerify 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ượngcủ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áptiế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:
Trang 19+ Tên project (Tên dự án)
+ Danh sách các module cần test
+ 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ếtquả mong đợi (expected response), để xác định một chức năng của ứng dụng phầnmề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ácyê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ầuhoặc thiết kế của ứng dụng, vì nó đòi hỏi phải tư duy hoàn toàn thôngqua 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
Trang 20- 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
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 đượctì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ámsá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ểmthử 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ợpvới các đơn vị khác
+ Do lập trình viên đảm nhận
Trang 21+ 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.
+ Mục đích: Bảo đảm thông tin được xử lý và xuất dữ liệu một cách chínhxá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ớinhau để tạo thành hệ thống đầy đủ và có thể làm việc Công việc này không hề đơngiả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ầntrong phần mềm có tương tác được với nhau hay , có hoạt động phối hợp cùngnhau đượ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à để đảmbả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ườngkhá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ênngoài hoặc hệ thống thứ 3 đã được xác minh trog các yêu cầu của hệ thống
Trang 223.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ảorằng sản phẩm phần mềm làm việc đúng như họ mong đợi Có 2 loại kiểm thửchấp nhận: Kiểm thử chấp nhận doanh nghiệp (Alpha testing) là một nhóm ngườithực hiện test tại nơi sản xuất phần mềm Alpha testing là một hình thức kiểm thửchấp nhận nội bộ, được tiến hành bởi nhà sản xuất ra phần mềm, trước khi phầnmềm được tiến hành kiểm thử Beta Kiểm thử chấp nhận người dùng (Beta test)được thực hiện tại địa điểm của khách hàng/ người dùng thực hiện test hay sử dụngphần mềm bên ngoài-không phải tại nơi sản xuất phần mềm
4 Các phương pháp kiểm thử phần mềm
4.1 Phương pháp kiểm thử hộp đen
Khái niệm: Là phương pháp kiểm thử dựa trên đầu vào và đầu ra của chương
trình để kiểm thử, Chỉ kiểm thử chức năng và giao diện dựa trên nghiệp vụ của hệthống mà không quan tâm tới mã chương trình bên trong được viết ra sao Testerxem phần mềm như là một hộp đen Kiểm thử hộp đen không yêu cầu kỹ sư kiểmthử cần phải có bất kỳ kiến thức về mã hoặc thuật toán của chương trình Nó kiểmtra các chức năng của hệ thống tức là những gì hệ thống được cho là cần phải làmdựa trên các đặc tả yêu cầu (Requirement document)
Trang 23Hình 4: Black Box Testing
- Dữ liệu đầu vào yêu cầu một khối lượng mẫu khá lớn
- Chỉ có thể khám phá mù (không biết phần mềm kiểm thử được xây dựngnhư thế nào), do đó khi áp dụng phương pháp kiểm thử hộp đen đòi hỏi