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. Giới thiệu đơn vị thực tập TMA Solutions được thành lập năm 1997, là công ty phần mềm hàng đầu Việt Nam.
Với 25 năm phát triển vững mạnh, TMA đã xây dựng được một đội ngũ với hơn 4,000 kỹ sư tài năng, nhiệt huyết luôn nhận được sự đánh giá cao từ phía khách hàng, cùng chung tay xây dựng hình ảnh TMA - đối tác tin cậy trên bản đồ công nghệ thông tin toàn cầu. TMA hiện có 7 chi nhánh tại Việt Nam (6 tại TP Hồ Chí Minh và 1 ở TP Quy Nhơn) cùng với 6 văn phòng ở nước ngoài (Mỹ, Canada, Pháp, Nhật, Úc, Singapore). Hình 1 1 Logo Công ty TNHH Giải pháp Phần mềm Tường Minh Bình Định (TMA Solutions Bình Định) Công ty TNHH Giải pháp Phần mềm Tường Minh Bình Định (TMA Solutions Bình Định) là dự án đầu tư quy mô lớn của TMA Solutions. Với bề dày 25 năm phát triển vững mạnh của TMA Solutions thì TMA Bình Định đang dần khẳng định vị thế của mình đối với nền CNTT tỉnh Bình Định, góp sức cùng với tỉnh xây dựng Thung Lũng Sáng tạo Quy Nhơn trở thành trung tâm khoa học, công nghệ cao tại miền Trung.
Tầm nhìn, sứ mệnh Tầm nhìn: Trở thành 1 trong những công ty hàng đầu về cung cấp giải pháp phần mềm tại Việt Nam và các nước trong khu vực. 3 Sứ mệnh: Tôn trọng và mang đến cho khách hàng những sản phẩm giải pháp phần mềm tốt nhất với chi phí hợp lý nhất. Đồng thời xây dựng mối quan hệ tin cậy, uy tín, hợp tác cùng phát triển với các đối tác trong lĩnh vực công nghệ thông tin. Giá trị cốt lõi Trong nhiều năm qua mặc dù phải đối mặt với nhiều thách thức, nhưng TMA Bình Định đã luôn chứng minh được khả năng làm việc, giữ vững cam kết chất lượng đối với khách hàng.
Để có được những thành công đó, TMA đã và đang duy trì phát triển những giá trị cốt lõi: •Sự cam kết (Commitment) •Sự trung thực (Honesty) •Sự tôn trọng (Respect) 1. Tổng quan về vị trí việc làm 1.Tổng quan về Tester Tester là một chuyên gia công nghệ thông tin, chịu trách nhiệm về giai đoạn kiểm tra quá trình phát triển phần mềm để đảm bảo các hệ thống, chương trình và ứng dụng hoạt động như mong đợi và không có bất kỳ rủi ro nào.Vai trò trách nhiệm của Tester • Quản lý yêu cầu và lưu trữ thử nghiệm bằng QC. • Quản lý hàng tồn kho, xử lý sự cố kiểm tra và tạo báo cáo hàng tồn kho. • Quét mạng bằng NMap và Nessus.
• Tự động hóa lệnh thử nghiệm trên thiết bị di động bằng APPIUM. • Tạo lệnh kiểm tra từng chức năng bằng IDE Selenium. • Sử dụng chương trình PL/SQL để kiểm tra hiệu suất và viết truy vấn phức tạp. • Xác minh thư/giao diện, bảng cơ sở dữ liệu và dữ liệu từ các bản cập nhật tệp HTML và SQL.
• Phát triển và thực hiện kiểm tra tự động GUI và dữ liệu bằng QTP và trung tâm chất lượng. • Tạo kịch bản kiểm tra chi tiết trong ALM dựa trên các kịch bản kiểm tra. 4 • Thử nghiệm công nghệ kho dữ liệu/cơ sở dữ liệu XML mới trong các giai đoạn phát triển.Kỹ năng Tester cần có • Kỹ năng phân tích • Kỹ năng học hỏi • Kỹ năng giao tiếp • Tính chi tiết, tỉ mỉ • Kỹ năng ngoại ngữ • Kỹ năng hỗ trợ 1.Cơ hội thăng tiến của Tester Vị trí cơ bản: • Fresher Tester / Fresher QA Engineer • Junior Tester / Junior QA Engineer • Senior Tester / Senior QA Engineer Định hướng phát triển lâu dài • Test Manager/ Test Lead • Test Automation Engineer • Business Analyst, PM Một số hướng đi khác • Performance testing (kiểm thử hiệu năng) • Security testing (kiểm thử bảo mật) 1. Cơ sở lý thuyết về Kiểm thử phần mềm 1.Khái niệm về Kiểm thử phần mềm Kiểm thử phần mềm là một quy trình thực thi một chương trình với mục đích tìm ra lỗi.
Nói cách khác, nó là quá trình nằm đảm bảo chính xác theo yêu cầu mà khách hàng đề ra đối với sản phẩm phần mềm. Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm 5 1.Nguyên tắc Kiểm thử phần mềm • Thử nghiệm cho thấy sự hiện diện của lỗi • Thử nghiệm toàn diện là không thể • Thử nghiệm sớm • Phân cụm lỗi • Nghich lý thuốc trừ sâu • Thử nghiệm phụ thuộc vào ngữ cảnh • Không có sai lầm ngụy biện 1.Quy trình Kiểm thử phần mềm Hình 1 2 Quy trình Kiểm thử phần mềm 1. Requirenment analysis - Phân tích yêu cầu 2. Test planning - Lập kế hoạch kiểm thử 3.
Test case development - Thiết kế kịch bản kiểm thử 4. Test environment set up - Thiết lập môi trường kiểm thử 5. Test execution - Thực hiện kiểm thử 6. Test cycle closure - Đóng chu trình kiểm thử 1.Thuật ngữ Kiểm thử phần mềm 1.
Error / Fault / Failure Bug: Sự hiện diện của lỗi tại thời điểm thực thi phần mềm Fault: Trạng thái của phần mềm do lỗi Failure: Sự sai lệch của phần mềm so với kết quả mong đợi của nó 1. QA & QC 6 QA: Là người chịu trách nhiệm đảm bảo chất lượng sản phẩm và tiến độ dự án thông qua việc đưa ra quy trình làm việc giữa các bên liên quan. QA không trực tiếp kiểm tra chất lượng phần mềm như QC. QC: Là người thực hiện những bài kiểm tra chất lượng sản phẩm để đảm bảo sản phẩm đáp ứng đúng và đủ yêu cầu mà QA đề ra.
QC còn đảm bảo rằng phần mềm không chỉ đúng và đủ yêu cầu mà còn dễ sử dụng và có hiệu suất tốt (thông qua Usability Test & Performance Test). Thông thường có 2 vị trí QC là Manual QC và Automation QC. Validation & Verification Validation( Xác thực ) là quá trình xác nhận rằng nó đáp ứng các yêu cầu của người dùng. Đó là thử nghiệm thực tế Verification( Xác minh ) là quá trình xác nhận phần mềm đáp ứng các đặc điểm kỹ thuật của nó, được thực hiện thông qua kiểm tra và hướng dẫn 1.
Software Development Life Cycle (SDLC) 1. Định nghĩa Vòng đời phát triển phần mềm (SDLC) là quy trình hiệu quả về 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ập kế hoạch trước để phần mềm đáp ứng mong đợi của khách hàng trong giai đoạn sản xuất và hơn thế nữa. Phương pháp này vạch ra một loạt các bước chia quy trình phát triển phần mềm thành các nhiệm vụ mà bạn có thể chỉ định, hoàn thành và đo lường.
Phương pháp Scrum Scrum là một quy trình phát triển sản phẩm theo phương pháp Agile và được xây dựng trên thuyết thực nghiệm. Scrum là khung làm việc để phát triển, chuyển giao và duy trì các sản phẩm phức tạp theo cách thức lặp và tăng trưởng (Theo Scrum Guide). 7 Hình 1 3 Phương pháp Scrum 1. Phân loại Kiểm thử phần mềm 1.
Manual Testing Manual testing là kiểm thử phần mềm được thực hiện theo cách thủ công bởi Nhà phân tích QA. Nó được thực hiện để phát hiện lỗi trong phần mềm đang được phát triển. Trong quá trình này, người kiểm thử phần mềm thực hiện các trường hợp kiểm thử và tạo báo cáo kiểm thử mà không cần sự trợ giúp của bất kỳ công cụ kiểm thử phần mềm tự động hóa nào. Automation Testing Trong Automation testing, người tester viết mã / tập lệnh kiểm thử để tự động hóa việc thực thi kiểm thử.
người tester sử dụng các công cụ tự động hóa thích hợp để phát triển các kịch bản kiểm thử và xác nhận phần mềm. Mục tiêu là hoàn thành việc thực thi thử nghiệm trong một khoảng thời gian ngắn hơn. Các kỹ thuật Kiểm thử phần mềm 1. Kiểm thử hộp đen Kiểm thử hộp đen là một phương pháp kiểm thử phần mềm được thực hiện mà không biết được cấu tạo bên trong của phần mềm, là cách mà các tester kiểm tra xem hệ thống như một chiếc hộp đen, không có cách nào nhìn thấy bên trong của cái hộp.
Kiểm thử hộp trắng 8 Kiểm thử Hộp Trắng (còn gọi là Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing hoặc Structural Testing) là một phương pháp kiểm thử phần mềm trong đó tester biết về cấu trúc nội bộ / thiết kế. Người kiểm tra chọn đầu vào để thực hiện các đường dẫn thông qua mã và xác định đầu ra thích hợp. Kiến thức lập trình và kiến thức thực hiện là rất cần thiết trong kiểm thử hộp trắng 1. Các cấp độ Kiểm thử phần mềm 1.
Kiểm thử đơn vị (Unit Test) Kiểm thử đơn vị được định nghĩa là một loại kiểm thử phần mềm, mà trong đó thì các đơn vị hoặc thành phần riêng lẻ của phần mềm sẽ được kiểm thử. Quá trình kiểm thử đơn vị sẽ được thực hiện sẵn trong mọi quá trình phát triển của ứng dụng. Kiểm thử tích hợp (Integration Test) Kiểm thử tích hợp là một giai đoạn trong kiểm thử phần mềm. Mỗi môđun phần mềm riêng biệt được kết hợp lại và kiểm thử theo nhóm.Kiểm thử tích hợp xảy ra sau kiểm thử đơn vị (Unit Test) và trước kiểm thử xác nhận.
Kiểm thử hệ thống (System Test) Kiểm thử hệ thống là một phương pháp theo dõi và đánh giá hành vi của sản phẩm hoặc hệ thống phần mềm hoàn chỉnh và đã được tích hợp đầy đủ, dựa vào đặc tả và các yêu cầu chức năng đã được xác định trước. Các hình thức Test: Bottom up, Top down, Hybrid 1. Kiểm thử chấp nhận (Acceptance Test) Kiểm thử chấp nhận là một quá trình đảm bảo chất lượng của phần mềm. Với mục đích là kiểm tra các ứng dụng đáp ứng được sự chấp nhận của người dùng cuối hay không.
Kiểm thử chức năng: • Requirement-based testing: Thử nghiệm dựa trên yêu cầu • Business-process-based testing: Thử nghiệm dựa trên quy trình kinh doanh Kiểm thử phi chức năng: 9 • Sanity Testing • Re-Test • Regression Test • Security Test • Recovery Test • Usability Test • Performance Test • Load Test • Stress Test CHƯƠNG 2. TỔNG QUAN VỀ SHOPPING WEBSITE 2. Giới thiệu về Shopping Website 2. Tổng quan về Shopping Website Shopping Website là một nền tảng trực tuyến độc đáo và tiện lợi dành cho người dùng tìm kiếm sách về tự động hóa kiểm thử và ngôn ngữ lập trình.