CHƯƠNG 1: TỔNG QUAN VỀ CÔNG TY TMA VÀ VỊ TRÍ TESTER 1. Giới thiệu tổng quát về công ty TMA Bình Định 1. Quá trình hình thành và phát triển của công ty: - TMA Solutions được thành lập năm 1997, 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. - Với 26 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). - 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 400 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.
Logo công ty TMA Solutions Bình Định 1. Tầm nhìn và sứ mệnh: - Là trung tâm phần mềm đầu tiên tại Thung lũng Sáng tạo Quy Nhơn, Công viên Sáng tạo TMA mang sứ mệnh trở thành trung tâm phát triển phần mềm và công nghệ cao hàng đầu tại miền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở 1 thành một điểm đến của công nghệ 4.0 tại Việt Nam. Công viên Sáng tạo TMA bao gồm Trung tâm Phát triển Phần Mềm, Xưởng Phần mềm, Trung tâm R&D, Trung tâm Khoa học Dữ liệu, Học viện Công Nghệ…với tổng diện tích sử dụng hơn 15,000m. Dịch vụ: - Với kinh nghiệm phong phú, TMA mang đến cho khách hàng các giải pháp toàn diện trong nhiều lĩnh vực với việc đồng hành cùng khách hàng từ giai đoạn tư vấn, ý tưởng, phân tích yêu cầu, tới các giai đoạn thiết kế, kiểm thử cho đến khi hoàn thiện sản phẩm và vận hành hệ thống 24/24.
+ Lập kế hoạch dự án ( Project Planning ): Lập kế hoạch dự án theo các mục tiêu và chiến lược của khách hàng với các giai đoạn triển khai theo thứ tự ưu tiên. + Tư Vấn ( Solutions Consulting ): Phân tích hệ thống hiện tại và đề xuất các giải pháp giúp các công ty áp dụng các công nghệ mới để nâng cao năng lực cạnh tranh và hiệu quả hoạt động. + Phát Triển Sản Phẩm Mẫu (Prototyping, Proof of Concept): Đánh giá tính khả thi của ý tưởng. Phát triển sản phẩm mẫu trong thời gian ngắn nhất.
+ Nghiên Cứu & Phát Triển (R&D): Đánh giá và thử nghiệm các công nghệ và phương pháp khác nhau để đề xuất giải pháp khả thi và phù hợp nhất. + Thiết Kế Giao Diện (UX/UI Design): Thiết kế giao diện Web, smart phone,máy tính bảng. Cải tiến giao diện để tăng tính tương tác và trải nghiệm người dùng. + Phát Triển Phần Mềm (Software Development): Phát triển phần mềm với các công nghệ khác nhau.
Nâng cấp phần mềm sẵn có. + Kiểm Thử Phần Mềm (Software Testing): Đánh giá chất lượng phần mềm với nhiều tiêu chí khác nhau. Kiểm thử tự động. + Chuyển Đổi Hệ Thống (Porting & Migration): Chuyển đổi hệ thống cũ sang các công nghệ mới để tăng hiệu suất.
Chuyển đổi dữ liệu. + Quản Trị Hệ Thống (IT Managed Services): Tư vấn, thiết kế hệ thống mạng, máy tính, đường truyền, bảo mật. Quản trị về máy chủ và điện toán đám mây, hỗ trợ và bảo trì các ứng dụng. Giải pháp điều hành và giám sát hệ thống mạng (NOC - Network Operation Center).
2 + Dịch Vụ Bảo Mật (Security Services): Kiểm tra, đánh giá và cải tiến hệ thống an toàn thông tin. Xây dựng hệ thống giám sát an ninh mạng (SOC - Security Operation Center). Tổng quan về vị trí Tester 1. Mô tả về vị trí Tester: - Tester chính là những người làm nhiệm vụ thử phần mềm để từ đó tìm kiếm ra các lỗi, các sai sót hay những vấn đề cụ thể nào đó có thể ảnh hưởng tới chính phần mềm khi đưa vào sử dụng.
Đây chính là những người thực hiện kiểm tra phần mềm, hay những dự án tương tự như vậy giúp xác định được error, bug, hay mọi vấn đề mà chính người dùng có nguy cơ gặp phải. Các kỹ năng cần có của một Tester: - Nắm vững kiến thức cơ bản : Hiểu về ngôn ngữ lập trình, kiến thức về hệ điều hành, cơ sở dữ liệu, mạng máy tính và các công nghệ liên quan khác sẽ giúp bạn hiểu rõ hơn về phần mềm và triển khai các kiểm thử. - Luôn không ngừng đổi mới, sáng tạo: Công nghệ và phương pháp kiểm thử phần mềm luôn thay đổi và phát triển. Do đó, để trở thành một tester giỏi, bạn cần luôn cập nhật kiến thức và sẵn lòng học hỏi những kỹ thuật mới để áp dụng vào công việc.
- Kỹ năng phân tích: Trang bị cho mình kỹ năng phân tích nhanh chóng, nhạy bén và có độ chính xác cực cao. Chú ý, xem xét một vấn đề ở nhiều khía cạnh khác nhau, phân tích từng chức năng để tìm ra từng lỗi nhỏ nhất. - Khả năng học hỏi nhanh: Học hỏi những người đi trước và có kinh nghiệm sẽ giúp bạn tiến bộ rất nhanh trong công việc. Nếu học hỏi nhanh các quy trình và cách sử dụng công cụ testing thì bạn cũng sẽ tiến bộ rất nhanh, cũng như phát triển sự nghiệp hơn trong tương lai.
- Kỹ năng giao tiếp, làm việc nhóm : Tester thường phải tương tác với các thành viên trong nhóm phát triển và các bên liên quan khác. Việc giao tiếp rõ ràng và hiệu quả giữa các thành viên trong nhóm là rất quan trọng để đảm bảo rằng các lỗi và vấn đề được ghi nhận và giải quyết đúng thời điểm. - Kỹ năng ngoại ngữ (tiếng Anh): Tiếng Anh đặc biệt quan trọng trong ngành công nghệ thông tin với chung, và cả vị trí Tester nói riêng. Cải thiện kỹ năng đọc hiểu sẽ giúp 3 bạn tìm hiểu sâu hơn về ngành qua các tài liệu tiếng Anh.
Ngoài ra, tiếng Anh còn giúp bạn tăng cơ hội việc làm đối với các công ty nước ngoài đang tìm kiếm nhân lực tại Việt Nam. - Tỉ mỉ, chi tiết và kiên trì: Tester cần có khả năng thực hiện các bước kiểm thử một cách chi tiết và nhất quán. Bạn cần kiên nhẫn để kiểm tra từng chức năng, từng bước một và lặp lại quá trình kiểm thử nhiều lần để đảm bảo tính ổn định và hiệu quả của phần mềm. Cơ hội nghề nghiệp: - Từ một nghề còn khá xa lạ đối với các bạn trẻ, Tester đang dần trở thành một nghề "HOT" tại Việt Nam với nhu cầu tuyển dụng ngày càng tăng cao.
Đây cũng được coi là một nghề nghiệp ổn định, đặc biệt là có cơ hội thăng tiến rõ ràng dựa vào năng lực và thâm niên.Môi trường làm việc năng động,cơ hội thăng tiến cao,tiếp xúc trực tiếp với khách hàng nước ngoài,lương thưởng khá cao và ổn định,thường xuyên được cập nhật những công nghệ mới, … là những lợi thế của Tester trên thị trường lao động hiện nay. 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Tổng quan về kiểm thử phần mềm 2. Giới thiệu về kiểm thử phần mềm: - Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đầy đủ theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra.
Software testing 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 đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. - Mục tiêu của kiểm thử phần mềm: + Xác định chất lượng của sản phẩm + Ngăn chặn phòng tránh lỗi + Sẵn sàng tích hợp các thành phần + Cung cấp thông tin để ra quyết định + Xác minh và xác thực yêu cầu của người dùng + Xây dựng sự tự tin trong công việc Hình 2. Vòng đời phát triển phần mềm 5 - SDLC hay còn gọi là Vòng đời phát triển phần mềm là một quy trình sản xuất phần mềm. Mục đích của nó nhằm đảm bảo chất lượng phần mềm đạt cao nhất với chi phí thấp nhất trong một khoảng thời gian ngắn nhất có thể.
SDLC cung cấp chu trình với cấu trúc từng giai đoạn giúp tổ chức nhanh chóng đưa sản phẩm chất lượng cao đã được qua giai đoạn kiểm tra và sẵn sàng triển khai cho người sử dụng. - SDLC gồm 6 giai đoạn : + Phân tích yêu cầu & lập kế hoạch: “Yêu cầu” là giai đoạn đầu tiên trong quá trình SDLC. Nhóm phát triển thu thập các yêu cầu từ một số bên liên quan như khách hàng, các chuyên gia nội bộ và bên ngoài cũng như các nhà quản lý để tạo ra một tài liệu về thông số kỹ thuật yêu cầu của phần mềm. Kết quả của giai đoạn này là tài liệu đặc tả yêu cầu phần mềm đóng vai trò là điểm khởi đầu cho giai đoạn phát triển tiếp theo.
Giai đoạn lập kế hoạch giúp xác định được chi phí và nguồn lực cần thiết tối thiểu để có thể thực hiện được các yêu cầu của sản phẩm phần mềm và cung cấp các kế hoạch dự trù nhằm giảm bớt rủi ro có thể xảy ra. + Thiết kế : Trong giai đoạn này, hệ thống và tài liệu thiết kế phần mềm được chuẩn bị theo tài liệu đặc tả yêu cầu, giúp xác định kiến trúc hệ thống tổng thể. Vào cuối giai đoạn này, tài liệu thiết kế được hoàn thành. Nó được xem xét bởi tất cả các bên liên quan và dựa trên các thông số khác nhau như đánh giá rủi ro, tính lâu dài của phần mềm, các mô-đun thiết kế, hạn chế về ngân sách và thời gian, phương pháp thiết kế tốt nhất được lựa chọn cho sản phẩm… + Phát triển : Giai đoạn phát triển là giai đoạn mà các Developer thực sự viết code và xây dựng ứng dụng theo các tài liệu thiết kế và các thông số kỹ thuật đã vạch ra, sử dụng ngôn ngữ lập trình và framework đã được chọn.Các nhiệm vụ được chia thành các đơn vị hoặc mô-đun và được phân bổ cho các nhà phát triển cụ thể.
+ Kiểm thử : Sau khi hoàn tất phần lập trình phần mềm, sản phẩm sẽ tiếp tục chuyển cho các tester (người kiểm thử phần mềm).