CHƯƠNG 1. TỔNG QUAN VỀ DOANH NGHIỆP VÀ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM 1. Giới thiệu tổng quát về doanh nghiệp thực tập 1. Tổng quan về TMA Solutions Bình Định Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với 4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia.
TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 ở Tp. Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore). Logo CôngTMA ty TMA Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định. Sau 5 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 600 kỹ sư, trong đó có nhiều kỹ sư đang làm việc tại TP.HCM đã trở về làm việc tại quê hương.
Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng. Cơ hội việc làm đối với ngành 1. Mô tả công việc Có nhu cầu tuyển dụng cao: Nghề nghiệp ổn định, khi theo nghề tester sẽ thường xuyên được cập nhật những công việc mới và được tiếp xúc với các dự án khác nhau. 2 Nghề Tester không có tuổi: Có thể thấy rằng đối với nghề lập trình sự nhạy bén của tuổi trẻ rất quan trọng, tuy nhiên đối với nghề Tester thì kinh nghiệm đã được tích lũy nhiều năm mới là điều quan trọng nhất.
Nếu như một người Tester giỏi tiếng anh thì lại càng có nhiều cơ hội để làm ở các công ty phần mềm lớn với các dự án outsourcing của nước ngoài với mức lương rất cao. Mô tả vị trí việc làm: - Chuyên viên Tester phần mềm: ● Phân tích yêu cầu dự án phần mềm, lập kế hoạch test và thiết kế kịch bản test, chuẩn bị, dữ liệu test. ● Test các dự án phần mềm, phối hợp với các bộ phận liên quan để đảm bảo chất lượng dự án/sản phẩm. ● Quản lý, phân tích, theo dõi và báo cáo kết quả test.
- Manual Test: ● Xây dựng các Test Case và kịch bản Test phù hợp. ● Lưu trữ tài liệu Test theo từng dự án. ● Xây dựng tài liệu và đào tạo người dùng cuối. ● Tham gia vào việc hỗ trợ người dùng trong quá trình sử dụng phần mềm.
● Kiểm tra, giám sát kết quả các tiến trình thực hiện dự án được phân công hỗ trợ. - Nhân viên kiểm thử phần mềm QC: ● Viết Test Case và Test Plan, tạo môi trường kiểm thử. ● Thực hiện Test Case theo đúng yêu cầu thiết kế. ● Thực hiện kiểm thử thủ công và tự động.
● Viết báo cáo kết quả kiểm thử và báo cáo hằng ngày. ● Chịu trách nhiệm theo dõi lỗi. - Nhân viên kiểm thử phần mềm QA: 3 ● Lập kế hoạch kiểm thử ứng dụng web, app dựa trên kế hoạch phát triển của dự án. ● Viết kịch bản kiểm thử theo tài liệu phân tích yêu cầu và tài liệu thiết kế.
● Thực hiện kiểm thử theo tính năng, hiệu năng của sản phẩm. ● Tái tạo lỗi, kiểm soát lỗi, theo dõi kết quả kiểm thử để đảm bảo chất lượng của dự án. ● Viết tài liệu hướng dẫn sử dụng phần mềm. Các kỹ năng cần có của một tester - Kỹ năng phân tích - Kỹ năng học hỏi nhanh - Chi tiết, tỉ mỉ, cẩn thận, kiên trì - Kỹ năng giao tiếp - Tiếng Anh, ngoại ngữ tốt là một ưu thế - Nên có tính “support” 1.
Mức lương dành cho Fresher Tester Fresher Tester là những nhân viên mới, chưa có kinh nghiệm và kiến thức chuyên môn sâu rộng. Họ cần được đào tạo, training trong quá trình làm việc. Lương Fresher Tester non trẻ này dao động từ 4.000 đồng, với Tester cứng kinh nghiệm từ 4-6 năm mức lương có thể lên đến 12-15tr. Cơ hội thăng tiến Lộ trình phát triển của nghề Tester cũng rất rõ ràng và đầy tiềm năng, được chia theo các level sau: • Level 1: Fresher - Là những bạn mới tốt nghiệp các khóa đào tạo Tester cơ bản và bắt đầu đi làm Tester.
4 • Level 2: Junior - Ở level junior, là những người đã có nhiều kiến thức, kinh nghiệm và trình độ chuyên môn tốt. Họ có thể giải quyết các Test Case phức tạo, có sự chủ động và sáng tạo trong công việc. • Level 3: Senior - Đây là những chuyên gia thành thạo về kỹ thuật testing, nắm rõ các yêu cầu kiểm thử phần mềm cho các doanh nghiệp với các ứng dụng phức tạp như tài chính, sức khỏe, thương mại điện tử, …. • Level 4: Test Leader - Sau khoảng 5 năm kinh nghiệm trở lên, tester có thể nắm giữ vai trò quản lý.
Những người này chịu trách nhiệm tổ chức công việc cần được thực hiện và phân công nhiệm vụ cụ thể cho các Tester trong team dự án. • Level 5: Test Manager - Là những người tổ chức và điều phối các nhóm kiểm thử (test team): quản lý metrics, lập kế hoạch chiến lược và đưa ra dự đoán. • Level 6: Senior Test Manager - Tùy thuộc vào độ cứng và số năm kinh nghiệm, Test Manager có thể đạt được vị trí Senior Test Manager. Bên cạnh việc trở thành chuyên gia trong nghề Tester, Sau khi có đủ kiến thức và kinh nghiệm ở level 4, bạn có thêm các hướng đi mới như: trở thành BA (Business Analyst) hoặc PM (Project Manager).
Đây đều là các hướng phát triển rất tiềm năng cho các bạn Tester. Cơ sở lý thuyết về kiểm thử phần mềm 1. Tổng quan về kiểm thử phần mềm 1. Khái niệm Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm ra lỗi, để xem chương trình có khớp với yêu cầu của khách hàng nhằm đánh giá được chất lượng sản phẩm.
Bảy nguyên tắc của kiểm thử • Kiểm thử chứng minh sự hiện diện của lỗi • Kiểm thử toàn bộ là không thể • Kiểm thử càng sớm càng tốt 5 • Sự phân bố tập trung của lỗi • Nguyên lý thuốc trừ sâu • Kiểm thử phụ thuộc vào ngữ cảnh • Sự vắng mặt của lỗi 1. Vòng đời kiểm thử phần mềm Vòng đời kiểm thử phần mềm (STLC) là quá trình kiểm thử được thực hiện theo cách có hệ thống và có kế hoạch. STLC bao gồm 6 giai đoạn: • Requirement Analysis – Phân tích yêu cầu • Test Planning – Lên kế hoạch kiểm thử • Test Case Development – Phát triển các Test Case • Environment Setup – Tiến hành cài đặt môi trường để thử nghiệm • Test Execution – Thực thi các Test Case • Test Cycle Closure – Kết thúc chu kỳ kiểm thử 1. Vòng đời phát triển phần mềm (SDLC) 1.
Khái niệm Vòng đời phát triển phần mềm (SDLC) là quy trình tiết kiệm chi phí và thời gian mà các nhóm phát triển sử dụng để thiết kế và xây dựng phần mềm chất lượng cao. Mục tiêu của SDLC là giảm thiểu rủi ro dự án thông qua việc lên kế hoạch trước để phần mềm đáp ứng kỳ vọng của khách hàng trong quá trình sản xuất và sau đó. Giai đoạn của vòng đời phát triển phần mềm Giai đoạn của vòng đời phát triển phần mềm bao gồm 6 giai đoạn: • Requirement gathering and analysis – Thu thập và phân tích yêu cầu • Design – Thiết kế kiến trúc hệ thống • Implementation / Coding – Phát triển phần mềm • Testing – Kiểm thử • Deployment – Triển khai • Maintenance – Bảo trì 6 1. Các mô hình cơ bản của SDLC Waterfall Model Hình 1.
Mô hình Waterfall Mô hình Waterfall hay còn gọi là mô hình thác nước. Đây là mô hình đầu tiên của SDLC – mô hình Waterfall là một phương pháp quản lý dự án dựa trên quy trình thiết kế tuần tự và liên tiếp. Agile Model Hình 1. Mô hình Agile 7 Mô hình Agile đề cập đến cách tiếp cận phát triển phần mềm dựa trên phát triển lặp đi lặp lại.
Các phương pháp Agile chia các nhiệm vụ thành nhiều lần lặp lại nhỏ hơn hoặc các phần không liên quan trực tiếp đến việc lập kế hoạch dài hạn. Phạm vi và yêu cầu của dự án được đặt ra khi bắt đầu quá trình phát triển. Các kế hoạch về số lần lặp, thời lượng và phạm vi của mỗi lần lặp đều được xác định trước rõ ràng. Scrum Methodology Hình 1.
Phương pháp Scrum Scrum là một quy trình phát triển nhanh tập trung chủ yếu vào các cách quản lý nhiệm vụ trong điều kiện phát triển dựa trên nhóm. Ba vai trò trong Scrum: • Product Owner: Là người tập hợp các task, quyết định độ ưu tiên task nào làm trước, task nào làm sau. • Scrum Master: Là người giúp cho team làm việc tốt nhất và bảo vệ team khi có vấn đề xảy ra. • Develop Team: Bao gồm developer, tester,.
Những người này có thể làm việc của người khác. 8 Ba cuộc họp trong Scrum: • Sprint Meeting: là cuộc họp để bàn bạc về những task sẽ bỏ vào sprint backlog, estimation cho những task đó. Cuộc họp này được tổ chức trước khi bắt đầu một sprint. • Daily Meeting: là cuộc họp với mục đích đồng bộ hóa các tin tức của mọi người trong team.
Họ sẽ chia sẻ với nhau về những câu hỏi như là Hôm qua đã làm gì? Hôm nay làm được gì? Có gặp khó khăn gì trong task mình làm không? • Sprint Review/ Retrospective: Sprint Review nhằm để demo những task đã hoàn thành trong Sprint Backlog cho Product Owner. Còn Retrospective là cuộc họp để team ngồi lại với nhau chia sẻ cho nhau những cái đã làm tốt trong Sprint đó, những cái chưa tốt để cải thiện quy trình làm việc. Quy trình vận hành của Srcum: • Product Backlog: Chứa tất cả task cần làm, tất cả thông tin liên quan mà Product Owner lấy được. • User Stories: Là sự hiển thị của 1 task nào đó.
• Sprint Backlog: Sẽ chứa các user stories của một sprint. • Burndown Chart: Dùng để đánh giá một sprint làm việc như thế nào, có đạt được những gì mong muốn không. Kanban Methodology Hình 1. Phương pháp Kanban 9 Mô hình Kanban là một phương pháp quản lý công việc và dự án dựa trên việc hình dung và điều khiển quy trình làm việc bằng các thẻ Kanban.
Mỗi thẻ Kanban đại diện cho một công việc cụ thể và được đặt trên một bảng Kanban, chia thành các cột tương ứng với các trạng thái của công việc bao gồm những việc cần làm, những việc đang làm và công việc hoàn thành. Các loại kiểm thử 1. Manual Testing Kiểm thử thủ công bao gồm kiểm tra phần mềm theo cách thủ công, tức là không sử dụng bất kỳ công cụ tự động nào hoặc bất kỳ tập lệnh nào.