Tìm hiểu về Testing 1.1 Chu trình kiểm thử phần mềm STLC - Software Testing Life Cycle Chu trình kiểm thử phần mềm đề cập đến quy trình có các bước testing cụ thể đượcthực hiện trong một
GIỚI THIỆU VỀ CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM TƯỜNG MINH (TMA SOLUTIONS)
Tổng quan về công ty TMA Solutions
TMA Solutions, thành lập năm 1997, là công ty phần mềm hàng đầu tại Việt Nam với 25 năm phát triển bền vững Đến năm 2022, TMA đã có hơn 3.500 nhân sự và phục vụ khách hàng từ 30 quốc gia trên toàn cầu Công ty đã nhận được nhiều bằng khen và giải thưởng, đồng thời được báo chí trong và ngoài nước liên tục đưa tin.
- 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).
- Là công ty Gia công Phần mềm Viễn thông hàng đầu Đông Nam Á.
- Thực hiện nhiều dự án lớn và phức tạp.
- Có 4 chi nhánh ở nước ngoài: Canada, Mỹ, Châu Âu, Nhật Bản.
Sơ đồồ t ch ổ ức
DeliveryBusiness/ ITCDFCE0/ Chairman Finance/ Legal
Thành tựu
- Tăng trưởng trung bình trong 14 năm đầu tiên là 50% mỗi năm (từ 6 nhân sự tháng 10/1997 đã lên đến trên 3500 nhân sự như hiện nay).
Hình 1: Sơ đồ tăng trưởng trung bình của TMA Solutions
Ngành phần mềm Việt Nam đã thu hút sự chú ý của nhiều đài truyền hình và báo chí quốc tế, như CNN (Mỹ), NHK (Nhật), Global (Brazil), National (Thái Lan) và Nikkei Computer (Nhật), chứng tỏ sự phát triển mạnh mẽ của lĩnh vực này.
- Đạt nhiều giải thưởng trong và ngoài nước:
Huy chương vàng Xuất khẩu Phần mềm (6 năm liền từ năm 2004 đến năm 2009).
Bằng khen của bộ Bưu chính Viễn thông, UBND Thành phố Hồ Chí Minh, hội Tin học Thành phố Hồ Chí Minh.
Công ty được xếp hạng trong top 15 doanh nghiệp hàng đầu toàn cầu về việc áp dụng hiệu quả quy trình Gia công Phần mềm, theo báo cáo của công ty tư vấn Mỹ Aberdeen vào tháng 09/2002.
- Có 6 cơ sở nằm tại Thành phố Hồ Chí Minh.
Có 6 văn phòng với sức chứa 4.000 người.
Sàn nhà thiết kế để hỗ trợ các phòng thí nghiệm mạng viễn thông.
Kết nối internet với tốc độ cao, nâng cấp để hỗ trợ các yêu cầu của khách hàng.
Kết nối VPN với các trang web khách hàng.
An ninh và kinh doanh liên tục:
ID xác thực thẻ từ.
Cơ chế sao lưu dữ liệu doanh nghiệp.
Đảm bảo cung cấp điện 24/7 (có máy phát điện trong tất cả các văn phòng).
Hình 2: Các cơ sở của TMA Solutions tại Thành phố Hồ Chí Minh
- Có 5 văn phòng đại diện ở nước ngoài (Canada, Mỹ, Châu Âu, NhậtBản, Australia).
Hình 3: Văn phòng đại diện của TMA Solutions ở nước ngoài
5 Các l nh v c tr ng tâmĩ ự ọ
- Phần mềm mạng và viễn thông (Telecommunications).
- Ứng dụng quản lý kinh doanh (Business Applications).
- Sản phẩm/ dịch vụ cho di động (Mobile Products/ Services).
- Đào tạo theo yêu cầu (IT Training).
- Dịch vụ giải pháp phần mềm:
Tư vấn lựa chọn giải pháp
Phần mềm mạng và viễn thông
Ứng dụng quản lý kinh doanh
- Dịch vụ triển khai mạng viễn thông:
Lắp đặt, nâng cấp mạng và thiết bị viễn thông
Kiểm thử toàn diện trước khi đưa hệ thống vào vận hành
Hỗ trợ kỹ thuật và bảo trì
Dịch vụ đánh giá an toàn thông tin cung cấp kiểm thử toàn diện về mức độ an toàn và khả năng bảo mật của doanh nghiệp Qua đó, dịch vụ này giúp phát hiện các rủi ro tiềm ẩn và đề xuất những giải pháp hiệu quả để khắc phục, bảo vệ thông tin một cách tối ưu.
- Dịch vụ cơ sở hạ tầng thông tin:
Tư vấn, lựa chọn giải pháp cho hệ thống thông tin và mạng máy tính.
Thiết kế và cài đặt hệ thống mạng máy tính, mạng WiFi, WAN, VPN và điện thoại nội bộ.
Tư vấn, triển khai và đào tạo về sử dụng phần mềm nguồn mở.
7 Quy trình ch t lầấ ượng
Các l nh v c tr ng tâm 4 ĩ ự ọ 6 Dịch v chính 4ụ 7 Quy trình ch t lầấ ượng
- Phần mềm mạng và viễn thông (Telecommunications).
- Ứng dụng quản lý kinh doanh (Business Applications).
- Sản phẩm/ dịch vụ cho di động (Mobile Products/ Services).
- Đào tạo theo yêu cầu (IT Training).
- Dịch vụ giải pháp phần mềm:
Tư vấn lựa chọn giải pháp
Phần mềm mạng và viễn thông
Ứng dụng quản lý kinh doanh
- Dịch vụ triển khai mạng viễn thông:
Lắp đặt, nâng cấp mạng và thiết bị viễn thông
Kiểm thử toàn diện trước khi đưa hệ thống vào vận hành
Hỗ trợ kỹ thuật và bảo trì
Dịch vụ đánh giá an toàn thông tin cung cấp kiểm thử toàn diện về mức độ an toàn và năng lực bảo mật của doanh nghiệp Qua đó, dịch vụ này giúp phát hiện các rủi ro tiềm ẩn và đề xuất những giải pháp khắc phục hiệu quả.
- Dịch vụ cơ sở hạ tầng thông tin:
Tư vấn, lựa chọn giải pháp cho hệ thống thông tin và mạng máy tính.
Thiết kế và cài đặt hệ thống mạng máy tính, mạng WiFi, WAN, VPN và điện thoại nội bộ.
Tư vấn, triển khai và đào tạo về sử dụng phần mềm nguồn mở.
7 Quy trình ch t lầấ ượng
NỘI DUNG THỰC TẬP
Tìm hiểu về Testing
1.1 Chu trình kiểm thử phần mềm (STLC - Software Testing Life Cycle)
Chu trình kiểm thử phần mềm (STLC) là quy trình bao gồm các bước kiểm thử được thực hiện theo trình tự nhất định nhằm đảm bảo đạt được các mục tiêu chất lượng Trong STLC, mọi hoạt động đều được tiến hành một cách có kế hoạch và hệ thống, với mỗi giai đoạn có mục tiêu và sản phẩm riêng biệt Các tổ chức có thể áp dụng các giai đoạn khác nhau trong STLC tùy thuộc vào nhu cầu và quy trình của họ.
Các giai đoạn của STLC:
Giai đoạn yêu cầu - Requirements phase
Giai đoạn lập kế hoạch - Planning Phase
Phân tích yêu cầu - Analysis phase
Giai đoạn thiết kế - Design Phase
Giai đoạn Implementation - Implementation Phase
Giai đoạn Execution - Execution Phase
Giai đoạn kết thúc - Conclusion Phase
Giai đoạn chấm dứt - Closure Phase
Hình 4: Quá trình kiểm thử phần mềm theo từng giai đoạn
1.2 Chu trình phát triển phần mềm (SDLC - Software Development Life Cycle)
SDLC (Software Development Life Cycle) là phương pháp hệ thống và có trật tự nhằm giải quyết các vấn đề liên quan đến hệ thống phần mềm, đóng vai trò như một cấu trúc cho quá trình phát triển sản phẩm phần mềm Các giai đoạn trong SDLC có thể được sắp xếp và tổ chức khác nhau tùy thuộc vào mô hình phát triển phần mềm được áp dụng.
Hình 5: Quá trình phát triển phần mềm theo từng giai đoạn
1.3 Kiểm thử thủ công và kiểm thử tự động a Kiểm thử thủ công (Manual Testing)
Kiểm thử thủ công là quá trình kiểm tra phần mềm mà không sử dụng công cụ tự động hay mã code, trong đó người kiểm thử đóng vai trò như người dùng cuối để phát hiện các lỗi hoặc hành vi không mong muốn Quá trình này bao gồm nhiều giai đoạn, bao gồm Kiểm thử đơn vị, Kiểm thử tích hợp, Kiểm thử hệ thống và Kiểm thử chấp nhận.
Trước khi tiến hành kiểm thử tự động, mọi ứng dụng mới đều cần trải qua giai đoạn kiểm thử thủ công Mặc dù kiểm thử thủ công yêu cầu nhiều nỗ lực hơn, nhưng nó là bước quan trọng để đảm bảo tính khả thi của ứng dụng Chỉ sau khi hoàn tất kiểm thử thủ công, chúng ta mới thực hiện kiểm thử tự động.
Tester sử dụng kế hoạch kiểm thử, trường hợp kiểm thử và kịch bản kiểm thử để đảm bảo tính đầy đủ của quá trình kiểm thử Kiểm thử thủ công bao gồm cả kiểm thử khám phá, trong đó tester tìm kiếm lỗi trong phần mềm một cách chủ động.
Nhận phản hồi trực quan nhanh và chính xác.
Ít tốn kém hơn vì không cần phải chi ngân sách cho các công cụ và quy trình tự động.
Sự phán đoán và trực giác của con người luôn có lợi cho yếu tố thủ công.
Kiểm thử tự động, mặc dù mang lại độ chính xác cao, nhưng yêu cầu lập trình và có thể tốn thời gian khi thực hiện các thay đổi nhỏ Ngược lại, kiểm thử thủ công lại tiết kiệm thời gian hơn trong những trường hợp này.
Phương pháp kiểm thử thủ công ít đáng tin cậy hơn vì được thực thi bởi con người Do đó, dễ mắc sai lầm & không tìm được lỗi.
Quá trình kiểm thử thủ công không thể được ghi lại, do đó không thể sử dụng lại.
Một số phần nhất định khó thực hiện thủ công, có thể cần thêm thời gian. b Kiểm thử tự động (Automation Testing):
Kiểm thử tự động (Automation Testing) là quá trình mà các tester viết kịch bản và sử dụng công cụ hỗ trợ để kiểm tra phần mềm Đây là một chuỗi tự động hóa các bước kiểm thử thủ công, cho phép chạy lại nhanh chóng và lặp đi lặp lại các kịch bản đã được kiểm thử trước đó.
Kiểm thử tự động không chỉ được áp dụng trong kiểm thử hồi quy mà còn cho kiểm thử ứng dụng về tải, hiệu suất và độ bền Phương pháp này giúp tăng cường độ bao phủ, nâng cao độ chính xác, đồng thời tiết kiệm thời gian và chi phí so với kiểm thử thủ công.
Kiểm thử tự động giúp tăng phạm vi kiểm thử.
Kiểm thử thủ công có thể trở nên nhàm chán, do đó dễ bỏ sót lỗi. Ưu điểm:
Hầu hết các phần của quy trình kiểm thử là tự động, bạn có thể có một quy trình nhanh chóng và hiệu quả.
Quá trình tự động có thể được ghi lại Điều này cho phép bạn sử dụng lại và thực hiện cùng loại hoạt động kiểm thử.
Kiểm thử tự động được thực hiện bằng các công cụ phần mềm, do đó, có thể hoạt động liên tục mà không biết mệt mỏi.
Có thể dễ dàng tăng năng suất, cung cấp kết quả kiểm thử nhanh & chính xác.
Kiểm thử tự động hỗ trợ các ứng dụng khác nhau.
Công cụ kiểm thử tự động hóa có khả năng mở rộng phạm vi kiểm thử bằng cách không bỏ qua bất kỳ đơn vị kiểm thử nào, kể cả những đơn vị nhỏ nhất.
Thiếu yếu tố con người, việc hiểu rõ các khía cạnh trực quan của giao diện người dùng như màu sắc, phông chữ, kích thước, độ tương phản, kích thước nút bấm và bố cục trở nên rất khó khăn.
Các công cụ để chạy kiểm thử tự động có thể tốn kém, có thể làm tăng chi phí kiểm thử của dự án.
Công cụ kiểm thử tự động không thể được coi là bằng chứng hoàn toàn, vì mỗi công cụ đều có những hạn chế riêng, điều này làm giảm khả năng tự động hóa.
Gỡ lỗi test scripts là một vấn đề lớn trong kiểm thử tự động Kiểm thử bảo trì sẽ tốn kém.
1.4 Các kỹ thuật kiểm thử
Hình 6: Các loại kỹ thuật kiểm thử a Phương pháp kiểm thử phần mềm White box testing
Kiểm thử hộp trắng là một kỹ thuật kiểm thử phần mềm tập trung vào cấu trúc bên trong và mã code, sử dụng dữ liệu kiểm thử từ logic Phương pháp này cho phép các chuyên gia tester truy cập trực tiếp vào source code, chú trọng vào dữ liệu đầu vào và đầu ra Các tên gọi khác của kiểm thử hộp trắng bao gồm kiểm thử hộp mở, kiểm thử theo hướng logic, kiểm thử điều khiển đường dẫn và kiểm thử cấu trúc.
Cung cấp các quy tắc dựa trên kỹ thuật rõ ràng cho thời điểm ngừng kiểm thử.
Buộc các chuyên gia kiểm thử phải suy luận cẩn thận về việc test lỗi vì vậy lỗi sẽ được triệt để.
Nhược điểm: b Phương pháp kiểm thử phần mềm Black box testing
Kiểm thử hộp đen là phương pháp kiểm thử phần mềm tập trung vào việc kiểm tra chức năng của ứng dụng dựa trên các đặc điểm kỹ thuật của nó, thường được gọi là kiểm thử dựa trên thông số kỹ thuật Phương pháp này mang lại nhiều ưu điểm, bao gồm khả năng phát hiện lỗi trong các chức năng mà người dùng cuối sẽ tương tác, giúp đảm bảo sản phẩm đáp ứng đúng yêu cầu và tiêu chuẩn kỹ thuật đã đề ra.
Các tester khi dùng phương pháp này sẽ không cần liên quan đến code.
Có thể tìm được nhiều bug hơn.
Việc kiểm thử được thực hiện bởi một cách độc lập với các Dev, cho phép quan điểm khách quan và tránh sự thiên vị.
Chỉ có một số lượng nhỏ các đầu vào có thể được kiểm thử và nhiều đường dẫn chương trình hoặc 1 vài phần cuối sẽ không được kiểm thử.
Các kiểm thử có thể thừa nếu nhà thiết kế/ nhà phát triển phần mềm đã chạy kiểm thử.
Black box testing mang lại lợi ích khi kiểm thử sản phẩm phần mềm từ một góc độ độc lập, nhưng cũng tồn tại nhiều nhược điểm cần được chú ý Trong khi đó, phương pháp kiểm thử phần mềm Grey box testing kết hợp cả hai yếu tố của black box và white box testing, giúp cải thiện hiệu quả kiểm thử.
Phương pháp kiểm thử hộp xám (Grey box testing) là sự kết hợp giữa kiểm thử hộp trắng (White box testing) và kiểm thử hộp đen (Black box testing), cho phép kiểm tra cả giao diện người dùng và mã nguồn của ứng dụng Phương pháp này đặc biệt hữu ích trong kiểm thử tích hợp và kiểm thử thâm nhập, khi mà tester chỉ có một phần thông tin về cấu trúc bên trong sản phẩm Nhờ vào việc truy cập vào cấu trúc dữ liệu và thuật toán, tester có thể thiết kế các test case hiệu quả, đồng thời thực hiện kiểm thử như một người dùng cuối, mang lại cái nhìn toàn diện về chất lượng phần mềm.
Là sự kết hợp của kiểm thử hộp đen và hộp trắng nên sẽ tối ưu hơn.
Kiểm thử bằng phương pháp hộp màu xám có thể thiết kế kịch bản kiểm thử phức tạp một cách thông minh hơn.
Rất khó để liên kết lỗi khi thực hiện kiểm thử hộp xám cho một ứng dụng có hệ thống phân tán.
CÁC HOẠT ĐỘNG TRONG QUÁ TRÌNH THỰC TẬP 16 1 Quá trình thực tập
Phần thực hành dự án liên quan
2.1 Nhiệm vụ chính Được hướng dẫn
1 Tìm hiểu về dự án và yêu cầu sản phẩm
2 Tìm hiểu các kiến thức cơ bản của công việc kiểm thử phần mềm
3 Luyện tập với thiết bị thực tế
4 Học cách chạy các test case
5 Tìm hiểu cách thiết kế test case
6 Tìm hiểu cách sử dụng trang web quản lí test case
7 Cách quản lý bug từ lúc phát hiện đến khi được kiểm thử và đóng quy trình.
1 Viết, chạy test case trong project
Hình 8: Giao diện đăng nhập Facebook
- Viết, chạy các test case cho một số tính năng trên website của dự án:
- Cách kiểm thử phần mềm hiệu quả
- Kỹ năng thiết kế test case.
- Chuẩn bị môi trường test.
- Sử dụng web để quản lý test case (Web tool).
- Sử dụng Jira Software để tạo, quản lý và xác minh lỗi.
Trong quá trình thực tập tại TMA Solutions, em đã nhận được sự hỗ trợ tận tình từ Ban giám đốc và các đồng nghiệp, giúp em học hỏi và trải nghiệm thực tế qua nhiều công việc như nghiên cứu tài liệu, thực hiện manual testing và làm việc trong môi trường quốc tế chuyên nghiệp Những trải nghiệm này đã mang lại cho em nhiều kiến thức quý báu, cho phép em áp dụng một phần lý thuyết đã học vào thực tiễn Mặc dù thời gian thực tập chỉ kéo dài 3 tháng, khiến cho kiến thức thu thập được còn hạn chế, nhưng em đã trang bị cho mình những kỹ năng cần thiết để tiếp tục theo đuổi lĩnh vực Tester.
Sau khi thực tập tại TMA Solutions, tôi nhận thấy rằng việc kiểm thử cho từng thiết bị và vai trò của Tester là không thể thiếu trong mọi dự án Công việc của Tester nhằm đảm bảo chất lượng đầu ra của sản phẩm ổn định, trải qua nhiều giai đoạn để đạt được kết quả tốt nhất Tester và Developer cần phối hợp nhịp nhàng; nếu Developer tạo ra sản phẩm, Tester đảm bảo sản phẩm hoạt động một cách trơn tru Trong bối cảnh thị trường cạnh tranh với nhiều sản phẩm tương tự, những sản phẩm có độ ổn định cao, ít lỗi và hiệu năng tốt sẽ được khách hàng ưu tiên lựa chọn Do đó, vai trò của Tester là hết sức quan trọng.
Em xin chân thành cảm ơn Quý công ty đã hỗ trợ và tạo điều kiện cho em trong quá trình thực tập vừa qua Đồng thời, em cũng xin gửi lời cảm ơn đến các Thầy Cô khoa Điện, điện tử & Công nghệ vật liệu đã giúp em có cơ hội thực tập sớm và hoàn thành tốt chương trình.