Dù biếtcông tác kiểm thử, đảm bảo chất lượng giữ vai trò quan trọng trong việc mang lạithành công của các dự án phần mềm song không phải công ty nào cũng có đủchuyên môn và điều kiện cho
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Nhóm:
Thành viên:
Hà Nội, Năm 2022
MỤC LỤC
Trang 3LỜI NÓI ĐẦU
Hiện nay, sự phát triển mạnh mẽ cũng như bước chuyển mình nhanh chóngcủa các xu thế công nghệ thông tin trên thế giới đã mang lại cho Việt Nam đồngthời thuận lợi và khó khăn Do đó, những dự án, chương trình quốc gia nhằm thúcđẩy hiệu quả ứng dụng CNTT trong mọi mặt đời sống kinh tế - chính trị - xã hộiđang ngày càng được chú trọng và gấp rút triển khai Kéo theo đó là nhu cầu vềlĩnh vực kiể
lĩnh vực kiểm thử phần mềm, đặc biệt là kiểm thử phần mềm tự động m thử phần mềm, đặc biệt là kiểm thử phần mềm tự động Tại VTại ViệtiệtNam, khái niệm này tuy không mới mẻ song cũng chưa hoàn toàn quen thuộc.Thực tế cho thấy, số lượng đơn vị đào tạo chuyên sâu, các tester chuyên nghiệp vềkiểm thử phần mềm không nhiều, chưa thể đáp ứng đủ cho các dự án doanhnghiệp Nếu xét theo tiêu chuẩn quốc tế, tỷ lệ giữa lập
nghiệp Nếu xét theo tiêu chuẩn quốc tế, tỷ lệ giữa lập trình viên và tester là 3:1 (cứ trình viên và tester là 3:1 (cứ
3 lập trình viên thì có 1 tester), đôi khi tỉ lệ này là 1:1 với những dự án đặc thù; thìtại Việt Nam, tỉ lệ đáp ứng được công việc tester chỉ rơi vào khoảng 1.5 Dù biếtcông tác kiểm thử, đảm bảo chất lượng giữ vai trò quan trọng trong việc mang lạithành công của các dự án phần mềm song không phải công ty nào cũng có đủchuyên môn và điều kiện cho phép để thực hiện quy trình này Tuy nhiên, vớinhững lợi thế cạn
những lợi thế cạnh tranh như: h tranh như: nguồn nhân lực rẻ có sẵn nguồn nhân lực rẻ có sẵn trình độ kỹ thuậttrình độ kỹ thuật; đầu tư ; đầu tư phát triển cơ sở hạ tầng nhanh; môi trường đầu tư an toàn; chất lượng dịch vụ nổitrội và tỉ lệ thay đổi nhân sự thấp… Việt Nam có thể hi vọng và tin tưởng vào khảnăng trở thành đối tác kinh doanh đầy tiềm năng và hấp dẫn trong ngành kiểm thử phần mềm
Sau quá trình tìm hiểu nhóm 15 chúng em quyết định lựa chọn đề tài:
““ Nghiên Nghiên cứu cứu công công cụ cụ kiểm kiểm thử thử T Test est Complete Complete và và ứng ứng dụng dụng” để làm báo cáo kếtthúc môn học Rất mong nhận được ý kiến nhận xét, đóng góp của thầy và các bạn
để báo cáo của nhóm được hoàn thiện hơn
Chúng em xin chân thành cảm ơn thầy
Chúng em xin chân thành cảm ơn thầy giáo đã hỗ trợ chúng em vô cùng tậngiáo đã hỗ trợ chúng em vô cùng tậntình để chúng em có thể hoàn thành đề tài
tình để chúng em có thể hoàn thành đề tài của mình Chúc thầy thật nhiều sức khỏecủa mình Chúc thầy thật nhiều sức khỏe
và ngày một thành công trên con đường giảng dạy của m
và ngày một thành công trên con đường giảng dạy của mình.ình
Trang 4CHƯƠNG 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM1.1 Lý thuyết về kiểm thử phần mềm
1.1.1 Kiểm thử phần mềm là gì?
Kiểm thử phần mềm là quy trình được sử dụng để đánh giá, kiểm tra chấtlượng phần mềm ở nhiều khía cạnh khác nhau dựa trên các yêu cầu của người sử dụng đối với sản phẩm phần mềm, nhằm đảm bảo phần mềm hoạt động tốt trongcác môi trường, trường hợp khác nhau
Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp chocác bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểmthử Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìnđộc lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu được những rủi rotrong quá trình triển khai phần mềm
Trong kỹ thuật kiểm thử không chỉ giới hạn ở việc thực hiện một chươngtrình hoặc ứng dụng với mục đích đi tìm các
trình hoặc ứng dụng với mục đích đi tìm các lỗi phần mềm (bao gồm các lỗi phần mềm (bao gồm các lỗi và cáclỗi và cácthiếu sót) mà còn là một quá trình phê chuẩn và xác minh một chương trình máytính / ứng dụng / sản phẩm
tính / ứng dụng / sản phẩm nhằm:nhằm:
- Đáp ứng được mọi
- Đáp ứng được mọi yêu cầu hướng dẫn khi thiết kế và phát triển phần myêu cầu hướng dẫn khi thiết kế và phát triển phần mềm.ềm
- Thực hiện công việc đúng như kỳ vọng
- Có thể triển khai được
- Có thể triển khai được với những đặc tính tương tự.với những đặc tính tương tự
- Và đáp ứng được mọi nhu cầu
- Và đáp ứng được mọi nhu cầu của các bên liên quan.của các bên liên quan
Tùy thuộc vào từng phương pháp, việc kiểm thử có thể được thực hiện bất
cứ lúc nào trong quá trình phát triển phần mềm Theo truyền thống thì các nỗ lựckiểm thử được tiến hành sau khi các yêu cầu được xác định và việc lập trình đượchoàn tất nhưng trong Agile (là một tập hợp các phương pháp phát triển phần mềmlinh hoạt dựa trên việc lặp đi lặp lại và gia tăng giá trị) thì việc kiểm thử được tiếnhành liên tục trong suốt quá trình xây dựng phần mềm
Như vậy
Như vậy, mỗi một , mỗi một phương pháp kiểm thử bị chi phương pháp kiểm thử bị chi phối theo một quy trình phátphối theo một quy trình pháttriển phần mềm nhất định
1.1.2 Các mục tiêu chính của kiểm thử phần mềm
- Phát hiện càng nhiều lỗi càng tốt trong
- Phát hiện càng nhiều lỗi càng tốt trong thời gian kiểm thử xác định trướcthời gian kiểm thử xác định trước
- Chứng minh rằng sản phẩm
- Chứng minh rằng sản phẩm phần mềm phù hợp với các đặc tả phần mềm phù hợp với các đặc tả yêu cầuyêu cầucủa nó
Trang 5- Xác thực chất lượng kiểm thử phần mềm đã dùng chi phí và nỗ lực tốithiểu
- Tạo các testcase chất lượng cao, thực hiện kiểm thử hiệu quả và tạo ra cácbáo cáo vấn đề đúng và hữu
báo cáo vấn đề đúng và hữu dụng.dụng
1.1.3 Phân loại kiểm thử phần mềm
Ta phân loại kiểm thử dựa vào yếu tố: Chiến lược kiểm thử, phương phápkiểm thử và kỹ thuật kiểm thử
- Dựa vào chiến lược kiểm thử ta có thể phân chia kiểm thử thành 2 loại:kiểm thử thủ công và kiểm thử tự
kiểm thử thủ công và kiểm thử tự độngđộng
- Theo phương pháp tiến hành kiểm thử ta chia kiểm thử thành 2
- Theo phương pháp tiến hành kiểm thử ta chia kiểm thử thành 2 loại:loại:
+ Kiểm thử tĩnh: Là loại kiểm tra trong đó code không được thực hiện Nó
có thể được thực hiện bằng tay hoặc bằng một bộ công cụ Loại kiểm tranày thực hiện kiểm tra code, tài liệu yêu cầu và tài liệu thiết kế và đưa ranhận xét, lưu nhận xét vào tài liệu công việc Khi phần mềm không thựcthi và không làm gì, chúng ta thực hiện kiểm tra trạng thái an toàn đểphân tích phần mềm
phân tích phần mềm trong môi trường không chạy.trong môi trường không chạy
+ Kiểm thử động: Được thực hiện khi code đang ở chế độ thực thi Thử nghiệm động được thực hiện trong m
nghiệm động được thực hiện trong môi trường thực thi chạy chương ôi trường thực thi chạy chương trìnhtrìnhứng dụng Khi code được thực thi, thì đầu vào được truyền một giá trị,kết quả hoặc đầu ra của việc thực hiện được so sánh với kết quả dự kiếnban đầu đã đưa ra Với việc này chúng ta có thể quan sát được các hành
vi chức năng của phần mềm, giám sát hệ thống bộ nhớ, thời gian phảnhồi của CPU, hiệu suất của hệ thống.được thực hiện khi code đang ở chế
độ thực thi Thử nghiệm động được thực hiện trong môi trường thực thichạy chương trình ứng dụng Khi code được thực thi, thì đầu vào đượctruyền một giá trị, kết quả hoặc đầu ra của việc thực hiện được so sánhvới kết quả dự kiến ban đầu đã đưa ra Với việc này chúng ta có thể quansát được các hành vi chức năng của phần mềm, giám sát hệ thống bộ nhớ,thời gian phản hồi của CPU, hiệu suất của hệ
thời gian phản hồi của CPU, hiệu suất của hệ thống.thống
- Dựa vào kỹ thuật kiểm
- Dựa vào kỹ thuật kiểm thử ta có thể phân chia kiểm thử thành 3 thử ta có thể phân chia kiểm thử thành 3 loại:loại:
+ Kiểm thử hộp đen+ Kiểm thử hộp trắng+ Kiểm thử hộp xám
Trang 61.1.4 Các cấp độ kiểm thử phần mềm
Kiểm thử phần mềm không đơn giản như nhiều người thường nghĩ, côngviệc này có nhiều mức độ khác nhau và có mối tương quan với các chặng pháttriển trong dự án phát triển phần mềm Trong một dự án kiểm thử phần mềm baogồm 4 mức
gồm 4 mức độ cơ bản: Kiểm thử đơn độ cơ bản: Kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ vị, kiểm thử tích hợp, kiểm thử hệ thốnthống vàg vàkiểm thử chấp nhận
- Kiểm thử đơn vị (Unit Testing): kiểm thử sự hiện thực chi tiết của từng đơn
vị nhỏ (hàm, class, )
vị nhỏ (hàm, class, ) có hoạt động đúng không?có hoạt động đúng không?
- Kiểm thử module (Module Testing): kiểm thử các dịch vụ của module cóphù hợp với đặc tả của module đó
phù hợp với đặc tả của module đó không?không?
- Kiểm thử tích hợp (Integration Testing): kiểm thử xem từng phân hệ củaphần mềm có đảm bảo
phần mềm có đảm bảo với đặc tả thiết kế của phân hệ với đặc tả thiết kế của phân hệ đó không?đó không?
- Kiểm thử
- Kiểm thử hệ thống (System Tehệ thống (System Testing): kiểm thử các sting): kiểm thử các yêu cầu không chức năngyêu cầu không chức năngcủa phần mềm như hiệu suất, bảo mật, làm việc trong môi trường căngthẳng,
- Kiểm thử độ chấp nhận của người dùng (AcceptanceTesting): kiểm tra xemngười dùng có chấp thuận sử dụng phần mềm
người dùng có chấp thuận sử dụng phần mềm không?không?
- Kiểm thử hồi quy: được làm mỗi khi có sự hiệu chỉnh, nâng cấp phần mềmvới mục đích xem phần mềm mới có đảm bảo thực hiện đúng các chứcnăng trước khi hiệu chỉnh không?
Trang 7
1.1.5 Test case
Mỗi testcase chứa các thông tin cần thiết để kiểm thử thành phần phần mềmtheo 1 mục tiêu xác định Testcase gồm bộ 3 thông tin {tập dữ liệu đầu vào, trạngthái của thành phần phầm mềm, tập kết quả
thái của thành phần phầm mềm, tập kết quả kỳ vọng}kỳ vọng}
- Tập dữ liệu đầu vào (Input): gồm
- Tập dữ liệu đầu vào (Input): gồm các giá trị dữ liệu cần thiết để các giá trị dữ liệu cần thiết để thành phầnthành phầnphầm mềm dùng và xử lý
phần phần mềm để minh chứng rằng TPPM có đúng các hành vi mong muốn.có đúng các hành vi mong muốn
Các phương pháp thiết kế test case
- Kiểm thử hộp đen (Black
- Kiểm thử hộp đen (Black box testing): theo góc nhìn sử dụng+ Không cần kiến thức về chi tiết thiết kế + Không cần kiến thức về chi tiết thiết kế và hiện thực bên trong.box testing): theo góc nhìn sử dụngvà hiện thực bên trong.
+ Kiểm thử dựa trên các yêu cầu và đặc tả sử dụng thành phần phầnmềm
- Kiểm thử hộp trắng (White box
- Kiểm thử hộp trắng (White box testing): theo góc nhìn hiện thựctesting): theo góc nhìn hiện thực+ Cần kiến thức về chi
+ Cần kiến thức về chi tiết thiết kế và hiện thực bêntrong.tiết thiết kế và hiện thực bêntrong
+ Kiểm thử dựa vào phủ các + Kiểm thử dựa vào phủ các lệnh, phủ các nhánh, phủ các điều kiện con.lệnh, phủ các nhánh, phủ các điều kiện con
Trang 8AAcccceeppttaanncce e tteessttiinngg HHộộp p đđeenn
1.1.6 Các nguyên tắc cơ bản về kiểm 1.1.6 Các nguyên tắc cơ bản về kiểm thử thử
Thông tin thiết yếu của mỗi testcase là kết quả
Thông tin thiết yếu của mỗi testcase là kết quả hay dữ liệu xuất kỳ vọng.hay dữ liệu xuất kỳ vọng.Nếu kết quả kỳ vọng của testcase không được định nghĩa rõ
Nếu kết quả kỳ vọng của testcase không được định nghĩa rõ ràng, người ta sẽràng, người ta sẽgiải thích kết quả sai (plausible) thành kết quả đúng bởi vì hiện tượng “the eyesseeing what it wants to see.”
=> 1 test case phải
=> 1 test case phải chứa 2 thành phần thiết yếu:chứa 2 thành phần thiết yếu:
những điều mong muốn, xem nó có làm những điều không mong muốn?những điều không mong muốn?Tránh các testcase "throwaway" trừ phi chương trình thật sự là "throwaway".Không nên lập kế hoạch nỗ lực kiểm thử dựa trên giả định ngầm rằng phầnmềm không có lỗi
Xác xuất xuất hiện nhiều lỗi hơn trong 1 section phần mềm tỉ
Xác xuất xuất hiện nhiều lỗi hơn trong 1 section phần mềm tỉ lệ thuận với sốlệ thuận với sốlỗi đã phát hiện được trong section đó
Kiểm thử là 1 tác vụ
Kiểm thử là 1 tác vụ rất thách thức đòi hỏi sự sáng tạo rất thách thức đòi hỏi sự sáng tạo và trí tuệ.và trí tuệ
Kiểm thử phần mềm nên bắt đầu từ các thành phần nhỏ đơn giản rồi đến cácthành phần ngày càng lớn
thành phần ngày càng lớn hơn.hơn
Kiểm thử theo kiểu vét cạn là không thể
Nên hoạch định qui trình kiểm thử trước khi bắt đầu thực Nên hoạch định qui trình kiểm thử trước khi bắt đầu thực hiện kiểm thử.hiện kiểm thử
1.1.7 Quy trình kiểm thử phần mềm
Dẫu cho các biến thể tồn tại giữa các tổ chức lập trình thì vẫn có một quytrình điển hình để kiểm thử Mẫu dưới đây là phổ biến trong các tổ chức sử dụng
Trang 9mô hình phát triển Waterfall (thác nước) Các hoạt động tương tự thường được tìmthấy trong các mô hình phát triển khác, nhưng có thể
thấy trong các mô hình phát triển khác, nhưng có thể có hoặc không rõ ràng.có hoặc không rõ ràng
Quy trình kiểm thử phần mềm:
- Phân tích yêu cầu: Kiểm thử thường sẽ bắt đầu lấy các yêu cầu trong cácgiai đoạn của vòng đời phát triển phần mềm Trong giai đoạn thiết kế, cácT
Tester làm việc với các ester làm việc với các nhà phát triển để xác định những khía cạnh của mộtnhà phát triển để xác định những khía cạnh của mộtthiết kế được kiểm chứng và những thông số được
thiết kế được kiểm chứng và những thông số được kiểm tra.kiểm tra
- Lập kế hoạch kiểm thử: Chiến lược kiểm thử, kế hoạch kiểm thử, kiểm thử sáng tạo… Và có một kế hoạch là cần thiết vì nhiều hoạt động sẽ đượcthực hiện trong thời gian kiểm thử
- Kiểm thử phát triển: Các quy trình kiểm thử, các kịch bản, Test Case, các
dữ liệu được sử dụng trong kiểm
dữ liệu được sử dụng trong kiểm thử phần mềm.thử phần mềm
- Kiểm thử thực hiện: Dựa trên các kế hoạch, các văn bản kiểm thử và cácbáo cáo bất kỳ lỗi nào tìm
báo cáo bất kỳ lỗi nào tìm thấy cho nhóm phát triển.thấy cho nhóm phát triển
- Kiểm thử báo cáo: Sau khi hoàn tất kiểm thử, các Tester tạo ra các số liệu
và báo cáo cuối cùng về nỗ
và báo cáo cuối cùng về nỗ lực kiểm thử của họ và lực kiểm thử của họ và có sẵn sàng phát hànhcó sẵn sàng phát hànhphần mềm hay không
- Phân tích kết quả kiểm thử hoặc phân tích thiếu sót được thực hiện bởi độingũ phát triển kết hợp với khách hàng để đưa ra quyết định xem nhữngthiếu sót gì cần phải được chuyển giao, cố định và từ bỏ (tức là tìm ra đượcphần mềm hoạt động chính xác) hoặc giải quyết sau
- Test lại khiếm khuyết: Khi một khiếm khuyết đã được xử lý bởi đội ngũphát triển, nó phải được kiểm tra lại
phát triển, nó phải được kiểm tra lại bởi nhóm kiểm thử.bởi nhóm kiểm thử
- Kiểm thử hồi quy: Người ta thường xây dựng một chương trình kiểm thử nhỏ là tập hợp của các
nhỏ là tập hợp của các bài kiểm tra cho mỗi tích hợp mới, bài kiểm tra cho mỗi tích hợp mới, sửa chữa hoặc cốsửa chữa hoặc cốđịnh phần mềm, để đảm bảo rằng những cung cấp mới nhất đã không pháhủy bất cứ điều gì và toàn
hủy bất cứ điều gì và toàn bộ phần mềm vẫn còn hoạt động một cách bộ phần mềm vẫn còn hoạt động một cách chínhchínhxác
- Kiểm thử đóng gói: Mỗi phép thử thỏa mãn các chỉ tiêu truy xuất và thuđược những kết quả quan trong như:
được những kết quả quan trong như: bài học kinh nghiệm, kết quả, các bảnbài học kinh nghiệm, kết quả, các bảnghi, tài liệu liên quan được lưu trữ và sử dụng như một tài liệu tham khảocho các dự án trong tương lai
Trang 101.2 Kỹ thuật kiểm thử tự 1.2 Kỹ thuật kiểm thử tự độngđộng
1.2.1 Khái quát về kiểm thử phần mềm tự 1.2.1 Khái quát về kiểm thử phần mềm tự động động
Kiểm thử phần mềm tốn
Kiểm thử phần mềm tốn nhiều chi phí nhân công, thời gian Trong một số dự nhiều chi phí nhân công, thời gian Trong một số dự
án, chi phí kiểm thử phần mềm chiếm 40% tổng giá trị của dự án Nếu cần ứngdụng an toàn hơn, chi phí kiểm thử còn cao hơn nữa Do đó một trong các
dụng an toàn hơn, chi phí kiểm thử còn cao hơn nữa Do đó một trong các mục tiêumục tiêucủa kiểm thử là tự
của kiểm thử là tự động hóa nhiều, nhờ đó mà động hóa nhiều, nhờ đó mà giảm thiểu chi phí, giảm lỗi, đặc giảm thiểu chi phí, giảm lỗi, đặc biệtbiệtgiúp việc kiểm thử hồi qui dễ dàng và nhanh chóng hơn Tự động hóa việc kiểmthử là dùng phần mềm điều khiển việc thi hành kiểm thử, so sánh kết quả có đượcvới kết quả mong muốn, thiết lập
với kết quả mong muốn, thiết lập các điều kiện đầu vào, các các điều kiện đầu vào, các kiểm soát kiểm thử vàkiểm soát kiểm thử vàcác chức năng báo cáo kết quả
1.2.2 Kiểm thử tự động là gì?
Kiểm thử tự động là quá trình thực hiện một cách tự động các bước trongmột kịch bản kiểm thử Kiểm thử tự động bằng một công cụ nhằm rút ngắn thờigian kiểm thử
1.2.3 Tại sao phải kiểm thử tự 1.2.3 Tại sao phải kiểm thử tự động động
Kiểm thử phần mềm tự động với mục Kiểm thử phần mềm tự động với mục đích:đích:
• Giảm bớt công sức và thời gian thực hiện quá Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử.trình kiểm thử
• Tăng độ tin cậy
• Giảm sự nhàm chán cho con người
• Rèn luyện kỹ năng lập trình cho kiểm thử viên
• Giảm chi phí cho tổng quá trình kiểm thử
Khi nào cần kiểm thử tự động:
• Không đủ tài nguyên: khi số lượng tài nguyên quá nhiều mà kiểm thử viên không
thể hoàn tất trong thời gian cụ thể
• Kiểm tra hồi quy: nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt vànhững tính năng đã sửa -> khó
những tính năng đã sửa -> khó đảm bảo về mặt thời gian.đảm bảo về mặt thời gian
• Kiểm tra khả năng vận hành phần mềm Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt:trong môi trường đặc biệt:
Đo tốc độ trung bình xử lí một Đo tốc độ trung bình xử lí một yêu cầu của web server.yêu cầu của web server
Xác định số yêu cầu tối đa xử Xác định số yêu cầu tối đa xử lý bởi web server.lý bởi web server
Xác định số cấu hình máy thấp nhất mà phần mềm vẫn có thể hoạtđộng tốt
1.2.4 Nguyên tắc kiểm thử tự động
Thực sự là sai lầm khi nghĩ tự động là đơn giản chụp lại, ghi lại 1 tiến trìnhkiếm thử thủ công Thực tế, kiểm thử tự động có những điểm khác với kiểm thử
Trang 11thủ công Nó có những lỗi và khả nă
thủ công Nó có những lỗi và khả năng dự đoán ng dự đoán Vì thế, những cơ hội thành côVì thế, những cơ hội thành côngngvới kiểm kiêm thử tự động sẽ được cải thiện đáng kể trong trượng hợp bạn thực sự hiểu nó
Kiểm thử tự động tuân theo đầy đủ những nguyên tắc kiểm thử nói chung,
đó là các nguyên tắc sau:
Nguyên tắc 1: Kiểm thử đưa ra lỗiKiểm thử có thể cho thấy rằng phần mềm đang có lỗi, nhưng không thểchứng minh rằng phần mềm không có
chứng minh rằng phần mềm không có lỗi Kiểm thử làm giảm lỗi Kiểm thử làm giảm xác suất lỗi chưa tìmxác suất lỗi chưa tìmthấy vẫn còn trong phần mềm, thậm chí là không còn lỗi nào, nó không phải làbằng chứng của sự chính xác
- Nguyên tắc 2: Kiểm thử m
- Nguyên tắc 2: Kiểm thử mọi thứ là không thểọi thứ là không thểKiểm thử mọi thứ (tất cả các tổ hợp của điều kiện input đầu vào) làkhông thể thực hiện được, trừ phi nó chỉ bao gồm một số trường hợp bình thường(ít trường hợp tổ hợp thì có thể
(ít trường hợp tổ hợp thì có thể test toàn bộ được).test toàn bộ được)
Thay vì kiểm thử toàn bộ, việc phân tích rủi ro và dựa trên sự mức độ ưutiên chúng ta có thể tập trung việc kiểm
tiên chúng ta có thể tập trung việc kiểm thử vào một số điểm cần thiết.thử vào một số điểm cần thiết
- Nguyên tắc 3: Kiểm thử sớm
Để tìm được bug sớm, các hoạt động kiểm thử nên được bắt đầu càngsớm càng tốt trong qui trình phát triển (vòng đời phát triển) phần mềm hoặc hệthống, và nên tập trung vào các hoạt động đã định trước
- Nguyên tắc 4: Sự
- Nguyên tắc 4: Sự tập trung của lỗitập trung của lỗi
Nỗ lực kiểm thử nên tập trung một cách cân đối vào mật độ lỗi dự kiến
và lỗi phát hiện ra sau đ
và lỗi phát hiện ra sau đó trong các mô-đun.ó trong các mô-đun
Một số ít các mô-đun thường chứa nhiều lỗi không phát hiện ra trong lúckiểm thử trước khi phát hành (release), hoặc chịu trách nhiệm cho hầu hết các lỗihoạt động của phần mềm
- Nguyên tắc 5: Nghịch lý thuốc trừ
- Nguyên tắc 5: Nghịch lý thuốc trừ sâusâu
- Nếu việc kiểm thử tương tự nhau được lặp đi lặp lại nhiều lần, thì cuốicùng sẽ có một số trường hợp kiểm thử (ca kiểm thử - test case) sẽ không còn tìmthấy bất kỳ lỗi nào mới Để khắc phục "nghịch lý thuốc trừ sâu" này, các trườnghợp kiểm thử cần phải được xem
hợp kiểm thử cần phải được xem xét và sửa đổi thường xuyên, và xét và sửa đổi thường xuyên, và cần phải viết cáccần phải viết cáctest case mới và khác nhau để thực hiện nhiều phần khác nhau của phần mềm hoặc
hệ thống để tìm ra lỗi tiềm
hệ thống để tìm ra lỗi tiềm ẩn nhiều hơn nữa.ẩn nhiều hơn nữa
- Nguyên tắc này giống như việc trừ sâu trong nông nghiệp, nếu chúng ta
cứ phun một loại thuốc với nồng độ giống nhau trong một khoảng thời gian dài thì
Trang 12có một số con sâu sẽ quen dần và cuối cùng việc phun thuốc giống như là tắmchúng vậy (bị lờn thuốc) => lúc đó chúng ta không thể diệt sạch chúng được Dovậy, để diệt sạch sâu một cách hiệu quả, người ta thường thay đổi loại thuốc trừ sâu, mỗi loại chỉ dùng trong khoảng thời gian ngắn.
- Nguyên tắc 6: Kiểm thử
- Nguyên tắc 6: Kiểm thử theo các ngữ cảnh độc lậptheo các ngữ cảnh độc lậpNguyên tắc này là việc testing phụ thuộc vào ngữ cảnh, test trong nhiềungữ cảnh khác nhau
- Nguyên tắc 7: Sự
- Nguyên tắc 7: Sự sai lầm về việc không có lỗisai lầm về việc không có lỗiViệc tìm và sửa chữa lỗi sẽ không giúp được gì nếu hệ thống được xâydựng xong nhưng không thể dùng được và không đáp ứng được nhu cầu và sự mong đợi của người dùng (Nghĩa là nếu sau khi code, test rồi fix bug, làm đủ tất
cả các trường hợp và cuối cùng cho ra một sản phẩm không như mong đợi hoặckhông đáp ứng được nhu cầu của khách hàng thì dự án phần mềm đó coi như thấtbại mặc dù đã được test
bại mặc dù đã được test xong).xong)
1.2.5 Quy trình kiểm thử tự động
S
STTTT BBưướớc c tthhữ ữ hhiiệện n MMôôt t ttảảB
Bưướớc c 11 TTạạo o kkịịcch h bbảản n kkiiểểm m tthhửử GGiiaai i đđooạạn n nnàày y ddùùnng g ccôônng g ccu u kkiiểểmm
thử để ghi lại các thao tác lên phầnmềm cần kiểm tra và tự động sinh rakịch bản kiểm thử
Bư
Bước ớc 22 ChChỉnỉnh h sử sử kịkịch ch bảbản n ChChỉnỉnh h sửsửa a để để kịkịch ch bảbản n kikiểm ểm ththử ử ththựcực
hiện kiểm tra theo đúng yêu cầu đặt
ra (làm theo trường hợp kiểm thử cần thực hiện)
B
Bưướớc c 33 CChạhạy y kkịịcch h bbảản n kkiiểểm m tthhửử CChhạạy kịy kịcch bảh bản kin kiểểm thm thử để kử để kiiểểm trm traa
phần mềm có đưa ra đúng như mongmuốn không
BBưướớc c 44 ĐĐáánnh h ggiiá á kkếết t qquuảả ĐĐáánnh gh giiá ká kếết qt quuả sả saau ku khhi i cchhạạy ky kịịcchh
bản kiểm thử
Trang 131.3 Kỹ thuật kiểm thủ thủ công.
1.3.1 Khái niệm kiểm thử thủ công
Kiểm thử thủ công là kiểm thử một phần mềm một cách thủ công (không sử dụng bất kỳ công cụ tự động hoặc bất kỳ đoạn mã nào) Với loại kiểm thử này,tester như người sử dụng cuối sẽ kiểm tra phần mềm để xác định bất kỳ hành vikhông mong muốn hoặc lỗi Có rấ
không mong muốn hoặc lỗi Có rất nhiều giai đoạn để kiểm thử t nhiều giai đoạn để kiểm thử bằng tay như Kiểmbằng tay như Kiểmthử đơn vị (Unit testing), Kiểm thử tích hợp (Integration testing), Kiểm thử hệthống (System testing) và
thống (System testing) và Kiểm thử chấp nhận Kiểm thử chấp nhận (User Acceptan(User Acceptance testing).ce testing)
Bất kỳ ứng dụng mới nào cũng phải được kiểm thử thủ công trước khi thựchiện kiểm thử tự động hóa Kiểm thử thủ công đòi hỏi nhiều nỗ lực hơn nhưng lạirất cần thiết để kiểm tra tính
rất cần thiết để kiểm tra tính khả thi để thực hiện tự động hóa.khả thi để thực hiện tự động hóa
Tester sử dụng kế hoạch kiểm thử (test plans), trường hợp kiểm thử (testcase), hoặc kịch bản kiểm thử (test scenarios) để đảm bảo tính đầy đủ của kiểmthử Kiểm thử thủ công cũng bao gồm kiểm thử phám phá, tester kiểm thử khámphá phần mềm để tìm r
phá phần mềm để tìm ra lỗi trong phần mềm đó.a lỗi trong phần mềm đó
1.3.2 Mục tiêu của kiểm thử thủ công
Khái niệm của kiểm thử thủ công là đảm bảo rằng ứng dụng hoạt động phùhợp với các yêu cầu chức năng được
hợp với các yêu cầu chức năng được chỉ định.chỉ định
Kiểm thử thủ công cũng đảm bảo rằng các lỗi đã tìm thấy được sửa chữa bởi cácdeveloper và được kiểm thử lại bởi những tester sau
developer và được kiểm thử lại bởi những tester sau khi các lỗi được khắc phục.khi các lỗi được khắc phục
Kiểm thử thủ công kiểm tra chất lượng của hệ thống và cung cấp sản phẩmkhông có lỗi cho khách hàng
1.3.3 Các loại kiểm thử thủ công
- Black Box Testing
- White Box Testing
- Unit Testing
- System Testing
- Integration Testing
- Acceptance Testing
1.3.4 Cách thực hiện kiểm thử thủ công
Đọc và hiểu tài liệu của dự án phần mềm Ngoài ra, nghiên cứu Ứng dụngkhi thực hiện kiểm thử (AUT) nếu có
Dự thảo kiểm thử bao gồm tất cả
Dự thảo kiểm thử bao gồm tất cả các yêu cầu được đề cập trong các yêu cầu được đề cập trong tài liệu.tài liệu
Trang 14Xem xét và vạch ra các trường hợp thử nghiệm với Trưởng nhóm, Kháchhàng (nếu có).
Thực hiện các trường hợp kiểm thử trên AUT
Báo cáo lỗi
Khi các lỗi đã được sửa sẽ được tester thực hiện một lần nữa các trường hợpkiểm thử thất bại để xác minh
kiểm thử thất bại để xác minh rằng lỗi đã được khắc phục.rằng lỗi đã được khắc phục
1.3.5 Điểm mạnh và điểm yếu của kiểm thử thủ 1.3.5 Điểm mạnh và điểm yếu của kiểm thử thủ công công
Điểm mạnh:
- Cho phép tester thực hiện việc
- Cho phép tester thực hiện việc kiểm thử khám phá.kiểm thử khám phá
- Thích hợp kiểm tra sản phẩm
- Thích hợp kiểm tra sản phẩm lần đầu tiên.lần đầu tiên
- Thích hợp kiểm thử trong trường
- Thích hợp kiểm thử trong trường hợp các test case chỉ hợp các test case chỉ phải thực hiện mộtphải thực hiện một
số ít lần
- Giảm được chi phí ngắn
- Giảm được chi phí ngắn hạn.hạn
1.4.1 Selenium IDE
Là công cụ giúp bạn phát triển ca kiểm thử dược xây dựng dưới dạng Add – ons của Firefox Đây là cách tiện lợi nhất để xây dựng các ca kiểm thử, gồm cácphần tử giao diện giúp bạn có thể lựa chọn thể hiện các thao tác, không chỉ tiếtkiệm thời gian mà con là cách thông minh để hiểu kịch bản Selenium Bộ công cụnày cung cấp chức năng “thu và chạy lại” – Record and Playback Nhờ đó, Tester
có thể nhanh chóng tạo một bộ kịch bản kiểm tra (test script) bằng cách trực tiếp
“thu” các thao tác của mình trên đối tượng cần kiểm tra thành 1 tập các câu lệnh
“Selenese” (ngôn ngữ kịch bản được phát triển cho Selenium IDE và SeleniumCore có dạng bản HTML) Sau đó chạy lại các câu lệnh này để kiểm tra Chứcnăng này rất hữu dụng, cho phép tiết kiệm thời gian viết kịch bản kiểm tra.Selenium IDE cho phép lưu kịch bản đã thu
Selenium IDE cho phép lưu kịch bản đã thu dưới nhiều loại ngôn ngữ lập trìnhdưới nhiều loại ngôn ngữ lập trình
Trang 151.4.2 Selenium Remote 1.4.2 Selenium Remote Contr Control ol
Selenium RC là framework kiểm thử hàng đầu của dự án Selenium trong mộtthời gian dài Đây là công cụ kiểm tra web tự động đầu tiên cho phép người dung
sử dụng ngôn ngữ lập trình mà họ thích Kể từ phiên bản 2.25.0, RC có thể hỗ trợ các ngôn ngữ lập
các ngôn ngữ lập trình sau: Java, C#, trình sau: Java, C#, PHPPHP, Python, Perl, , Python, Perl, RubyRuby
Ư
Ưu u đđiiểểmm NNhhưượợc c đđiiểểmmTrình duyệt chéo và nền tảng chéo
Có thể thực hiện vòng lặp và cáchoạt động có điều kiện
Có thể hỗ trợ kiểm tra theo hướng
dữ liệu
Đã phát triển và
Đã phát triển và hoàn thành APIhoàn thành API
Có thể hỗ trợ trình duyệt mớiThực thi nhanh hơn IDE
Cài đặt phức tạp hơn IDEPhải có kiến thức lập trìnhCần máy chủ selenium RC để chạyAPI chứa các câu lệnh dư thừa vàkhó hiểu
Tương tác của Brower ít thực tế hơn
Kết quả không phù hợp và sử dụngJavascript
TThờhời i gigian an tthựhực c hhiệiện n cchậhậm m hơhơnnwebDriver
1.4.3 Selenium Grid
Selenium Grid là một công cụ được sử dụng cùng với Selenium RC để chạy
thử nghiệm song song trên các máy khác nhau và các trình duyệt khác nhau cùngmột lúc Thực thi song song có nghĩa là chạy nhiều thử
một lúc Thực thi song song có nghĩa là chạy nhiều thử nghiệm cùng một lúc.nghiệm cùng một lúc
Đặc điểm:
• Cho phép chạy đồng thời các thử nghiệm trong nhiều trình duyệt và môitrường
• Tiết kiệm thời gian rất Tiết kiệm thời gian rất nhiều.nhiều
• Sử dụng khái niệm hub-and-nodes Hub hoạt động Sử dụng khái niệm hub-and-nodes Hub hoạt động như một nguồn trungnhư một nguồn trungtâm của các lệnh Selenium cho mỗi
tâm của các lệnh Selenium cho mỗi nút được kết nối với nó.nút được kết nối với nó
Trang 171.4.4 Selenium webdriver
WebDriver chứng minh rằng nó tốt hơn cả Selenium IDE và Selenium RC ở nhiều khía cạnh Nó thực hiện một cách tiếp cận hiện đại và ổn định hơn trong việc
tự động hóa
tự động hóa các hành động của các hành động của trình duyệt Wtrình duyệt WebDriverebDriver, không giống như , không giống như SeleniumSelenium
RC, không dựa vào JavaScript cho tự động hóa Nó kiểm soát trình duyệt bằngcách giao tiếp trực tiếp với nó Các ngôn ngữ được hỗ trợ giống như ngôn ngữ trong Selenium RC
Ư
Ưu u đđiiểểmm NNhhưượợc c đđiiểểmmCài đặt đơn giản hơn so với selenium
RCGiao tiếp trực tiếp với trình duyệtTương tác Brower thực tế hơnKhông cần một thành phần riêng biệtnhư máy chủ của RC
Thời gian thực thi nhanh hơn IDE vàRC
Cài đặt phức tạp hơn so với seleniumIDE
Yêu cầu kiến thức lập trìnhKhông thể hỗ trợ các trình duyệt mớiKhông có cơ chế tích hợp để ghi nhật
ký thời gian chạy và tạo kết quả kiểmtra
1.4.5 Jmeter
Apache JMeter là một mã nguồn mở, phát triển dựa trên nền tảng Java thuần(pure Java), được thiết kế để kiểm tra tải của các hành vi, chức năng và đo lường
hiệu suất của một hệ thống
Ban đầu, JMeter được giới thiệu cho các ứng dụng web kiểm tra tải và hiệunăng, nhưng sau đó, phạm vi của nó đã mở rộng và có thể thực hiện kiểm tra tải vàhiệu năng trên các trang web, ứng dụng web và các tài nguyên tĩnh hay động như Database, Rest Web Services, LDAP, Java Object…
Stefano Mazzocchi của Apache Software Foundation là người phát triển raJMeter Ông ban đầu đã viết nó chủ yếu để kiểm tra hiệu năng của Apache Jserv(hiện nay được gọi
(hiện nay được gọi là Apache Tlà Apache Tomcat – được somcat – được sử dụng phổ biến ử dụng phổ biến đối với server) đối với server) SauSau
Trang 18đó, cộng đồng Apache đã thiết kế lại để nó cải thiệu về mặt GUI (Giao diện), thêmnhiều tính năng cũng như có khả năng kiểm thử chức
nhiều tính năng cũng như có khả năng kiểm thử chức năng.năng
1.4.6 Katalon
Là một bộ công cụ toàn diện cho kiểm thử tự động hóa ứng dụng trên web và
điện thoại di động Công cụ này bao gồm một gói đầy đủ các tính năng mạnh mẽgiúp vượt qua những thách thức phổ biến trong tự động hóa thử nghiệm giao diệnweb, ví dụ như pop-up, iFrame và wait-time Giải pháp thân thiện và linh hoạt nàygiúp tester thực hiện công tác kiểm tra tốt hơn, làm việc nhanh hơn và khởi chạyphần mềm chất lượng cao nhờ vào sự thông minh mà nó cung cấp cho toàn bộ quátrình tự động hóa kiểm thử
của mã chương trình, do đó làm giảm sự căng thẳng làm giảm sự căng thẳng trên lập trình viên và thời giantrên lập trình viên và thời giandành cho việc gỡ lỗi
1.4.8 Appium
Appium đã nổi lên là một trong những test tool phổ biến nhất để thử nghiệmcác ứng dụng di
các ứng dụng di động và đã động và đã được xác nhận hiệu quả được xác nhận hiệu quả bởi những Tbởi những Tester và Developerester và Developer
về tính dễ sử dụng Nó là một tool mã nguồn mở cho phép tự động hóa web gốc,web di động và ứng dụng lai trên
web di động và ứng dụng lai trên nền tảng iOS và Android Ứng dụng gốc là nhữngnền tảng iOS và Android Ứng dụng gốc là nhữngứng dụng được viết bằng iOS, Android hoặc Windows SDK Ứng dụng web diđộng là các ứng dụng web được truy cập bằng trình duyệt dành cho thiết bị di
Trang 19động Ứng dụng lai có trình bao động Ứng dụng lai có trình bao bọc xung quanh “chế độ xem bọc xung quanh “chế độ xem web” một điều khiểnweb” một điều khiểngốc cho phép tương tác với nội dung web Các dự án như Apache Cordova hoặcPhoneapp giúp dễ dàng xây dựng các ứng dụng bằng cách sử dụng công nghệ websau đó được gói thành một trình bao bọc
sau đó được gói thành một trình bao bọc gốc, tạo ra một ứng dụng lai.gốc, tạo ra một ứng dụng lai
Một trong những điểm nổi bật của Appium là nó hỗ trợ Safari trên iOS vàChrome trên Android hoặc bất kỳ trình duyệt nào tích hợp trên Android Điều nàygiúp cho Appium trở thành một công cụ tự động hóa đa nền tảng và cho phépngười dùng viết các thử ngiệm trên nhiều nền tảng, cụ thể là iOS, Android vàWind
Windows với ows với cùng một API.cùng một API
Công cụ này được built trên nền tảng testing native apps, không cần phải xử
lý SDK hoặc sắp xếp lại ứng dụng Quan trọng nhất, nó cho phép người dùng sử
dụng đồng thời với các framework và tool khác cùng lúc Hơn nữa, phụ trợ củaAppium là Selenium, cung cấp mọi chức năng của Selenium cho các yêu cầu kiểmthử của bạn
1.4.9 LoadStorm
LoadStorm là một công cụ kiểm thử phần mềm giúp kiểm tra tải tốt nhất thế giới cho các trang web và ứng dụng LoadStorm là một công cụ kiểm tra tải SaaS
Nó thử nghiệm hiệu suất theo yêu cầu,
Nó thử nghiệm hiệu suất theo yêu cầu, kiểm tra tải và thử kiểm tra tải và thử nghiệm ứng suất cho cácnghiệm ứng suất cho cácứng dụng web và trang web Nó tạo giúp cho việc tìm kiếm các dữ liệu có vấn đềcủa trang web của bạn bằng cách cung cấp báo cáo phân tích sâu rộng trên máychủ, từng trang hoặc theo loại yêu cầu cho mọi
chủ, từng trang hoặc theo loại yêu cầu cho mọi chỉ số hiệu suất.chỉ số hiệu suất
LoadStorm này được sử dụng để hỗ trợ nhiều người dùng đồng thời một ứngdụng web hoặc trang web Các nhà phát triển web có
dụng web hoặc trang web Các nhà phát triển web có thể tạo các tài khoản miễn phíthể tạo các tài khoản miễn phí
để thiết kế, thử nghiệm và lập kế hoạch kiểm
để thiết kế, thử nghiệm và lập kế hoạch kiểm tra tải, sau đó chạy thử tra tải, sau đó chạy thử nghiệm với 50nghiệm với 50người dùng ảo Nếu số lượng người dùng ảo lớn hơn và kiểm tra băng thông lớnhơn thì tài khoản phải trả phí
Trang 20Mục tiêu của LoadStorm là tiện lợi và tiết kiệm Biểu đồ và báo cáo mở rộngcủa LoadStorm hiển thị cho bạn thời gian phản hồi, thông lượng, tỷ lệ lỗi, yêu cầumỗi giây, thời gian hoàn thành trang, v.v.
1.4.10 Quick Test Professional (QTP)
Là một công cụ kiểm thử tự động được thiết kế bởi Mercury Interactive vàsau đó được mua lại bởi HP QTP giúp tester tiến hành các kiểm tra một cách tự động để xác định errors, defects khác với kết quả mong muốn của ứng dụng, phầnmềm hay chức năng mà ta
mềm hay chức năng mà ta đang kiểm tra.đang kiểm tra
1.4.11 Robotium
Kiểm thử tự động giúp chúng ta Kiểm thử tự động giúp chúng ta duy trì chất lượng phần mềm duy trì chất lượng phần mềm cao và cung cấpcao và cung cấpmột cơ sở để nắm bắt rõ ràng với bất kỳ thay đổi mã nào gây ảnh hưởng khi sử dụng thực tế Đầu tiên giới thiệu tổng quan về Robotium, các tính năng khác nhau
và lợi ích của nó trong kiểm thử tự động Đến cuối phần này, sẽ thiết lập hoànchỉnh Môi trường Android trong Android studio để
chỉnh Môi trường Android trong Android studio để kiểm thử Robotium.kiểm thử Robotium
1.4.12 SOASTA CloudTest
CloudTest giúp bạn kiểm tra các website và ứng dụng trên di động một cáchlinh hoạt, nhanh chóng SOASTA CloudTest có thể kiểm tra khả năng chịu tải củacác ứng dụng theo vị trí địa lý khác nhau, đặc biệt 2 khâu integration và phân tíchthời gian thực giữa các monitoring, test design, reporting đều được tiến hành mộtcách liền mạch
1.4.13 Test Complete
TestComplete, được phát triển bởi SmartBear Software, cung cấp hỗ trợ chocác công nghệ như là: Net, Delphi, C++Builder, Java, Visual Basic, HTML5,Flash, Flex, Silverlight Desktop, hệ thống Web and Mobile TestComplete giúpngười kiểm thử phát triển các trường hợp thử nghiệm của họ bằng nhiều ngôn ngữ kịch bản khác nhau như JavaScript, Python, VBScript, Delphi Script, JavaScript
Trang 21Nó có sẵn với hai giấy phép và một phiên bản dùng thử miễn phí có giá trị trong 30ngày.
CHƯƠNG 2 CÔNG CỤ KIỂM THỬ TEST COMPLETE2.1 Giới thiệu chung về Test Complete
T
TestComplete là một môi trường kiểm thử tự động estComplete là một môi trường kiểm thử tự động cho một loạt các loại ứngcho một loạt các loại ứngdụng và công nghệ, bao gồm Windows, NET, WPF, Visual C + +, Visual Basic,Delphi, C + + Builder, Java và các ứng dụng Web và dịch vụ
TestComplete được định hướng như nhau đối với chức năng kiểm thử, đơn
vị Nó cung cấp hỗ trợ cho các thử nghiệm hồi quy hàng ngày và hỗ trợ nhiều loạithử nghiệm: thử nghiệm dữ liệu điều khiển, kiểm thử đối tượng điều khiển, vànhững người khác
Bạn tạo ra các bài kiểm thử bằng cách ghi lại chúng hoặc lệnh kiểm thử chỉnh sửa trong bảng và biên tập viên của TestComplete Kiểm thử có thể đượcchạy từ bên trong TestC
chạy từ bên trong TestComplete hoặc họ có thể được xuất omplete hoặc họ có thể được xuất khẩu sang một ứng dụngkhẩu sang một ứng dụngbên ngoài và chạy đó
TestComplete nhận đối tượng và điều khiển trong các ứng dụng thử nghiệm
và cung cấp các lệnh đặc biệt để mô phỏng hành động sử dụng với họ Nó cũngcung cấp các trạm kiểm soát cụ thể, cho phép bạn dễ dàng kiểm thử trạng thái ứngdụng trong thời gian chạy thử nghiệm
2.2 Lịch sử hình thành
TTesestCtComomplpletete e đưđược ợc phphát át trtriểiển n đầđầu u titiên ên vàvào o nănăm m 191999 99 bởbởi i côcông ng tytyAutomatedQA với tên Aqtest Từ đó cho đến năm 2022, TestComplete trải quanhiều phiên bản khác nhau
nhiều phiên bản khác nhau Phiên bản hiện tại Phiên bản hiện tại là Tlà TestComplete 15.40.estComplete 15.40
Các phiên bản trải qua:
• Aqtest 1.x (1.01; 1.5)
• TTestComplete 2.x (2.0; estComplete 2.x (2.0; 2.02; 2.03; 2.04).2.02; 2.03; 2.04)
Trang 22• TestComplete 3.x (3.0; 3.01; 3.02; 3.03; 3.04; 3.05; 3.06; 3.07; 3.08;3.09;3.10).
• TestComplete 4.x (4.0; 4.10; 4.20; 4.21; 4.22;4.23; 4.24; 4.25; 4.26;4.27;4.28; 4.29; 4.30)
• TTestComplete 5.x (5.0; estComplete 5.x (5.0; 5.1; 5.11; 5.12; 5.13; 5.14).5.1; 5.11; 5.12; 5.13; 5.14)
• TestComplete 6.x (6.0; 6.10; 6.11; 6.12; 6.20; 6.30; 6.40; 6.50; 6.51;6.52)
• TestComplete 14.x (14.0; 14.10; 14.20; 14.30; 14.40; 14.50; 14.60;14.61; 14.70; 14.71; 14.72; 14.73; 14.74; 14.80; 14.81; 14.90; 14.91;14.92; 14.93)
- Scripted Testing: Người kiểm thử có thể viết kịch bản kiểm thử từ scratchhoặc sửa đổi các tập lệnh được ghi
hoặc sửa đổi các tập lệnh được ghi trong trình chỉnh sửa được tích hợp sẵn.trong trình chỉnh sửa được tích hợp sẵn
Trang 23- Test Record and Playback: Cung cấp cơ chế cơ bản của bản ghi và phát lạinhững kiểm thử đã khởi tạo Các test cases được ghi lại có thể được sửa đổikhi cần thiết.
- Distributed Testing: TestComplete có thể chạy các tests tự động trên cácmáy trạm hoặc máy ảo
máy trạm hoặc máy ảo riêng biệt.riêng biệt
- Access to Methods and Properties of Internal Objects: TestComplete đọctên của các phần tử hiển thị và nhiều phần tử bên trong của các ứng dụngDelphi, C
Delphi, C ++ Builder, NET++ Builder, NET, WPF, WPF, Java , Java và Vvà Visual Basic isual Basic và cho và cho phép các tậpphép các tậplệnh kiểm tra truy cập các giá trị này để xác minh hoặc sử dụng trong cáctest
- Integration to Bug Tracking Software: Tích hợp với nhiều phần mềm theo
dõi lỗi khác nhau như Jira, Bugzilla, v.v Nó có thể được sử dụng để sửa đổihoặc tạo ra các mục trong phần mềm theo dõi lỗi bằng những mẫu theo dõivấn đề
- Data Driven Testing: T
- Data Driven Testing: Trích xuất dữ rích xuất dữ liệu dễ dàng liệu dễ dàng từ tệp CSVtừ tệp CSV, bảng cơ , bảng cơ sở dữ sở dữ liệu, trang tính Excel, v.v
- COM-based, Open Architecture: Công cụ của TestComplete dựa trên giaodiện COM, API mở Nó độc lập với ngôn ngữ nguồn và có thể đọc thông tin
trình gỡ lỗi và sử dụng nó trong thời gian chạy thông qua TestCompleteDebug Info Agent
- T
- Test Vest Visualizer: Chụp ảnh màn hình trong isualizer: Chụp ảnh màn hình trong quá trình thực hiện kiểm quá trình thực hiện kiểm thử chothử chophép chúng ta có thể phân biệt giữa các
phép chúng ta có thể phân biệt giữa các màn hình mong muốn và thực tế.màn hình mong muốn và thực tế
- Extensions and SDK - Mọi thứ - Mọi thứ hiển thị trong Tehiển thị trong TestComplete - bảng, mục stComplete - bảng, mục dự dự
án, đối tượng tập lệnh cụ thể và các mục khác - được triển khai dướidạng plug-ins Các plugin này được tích hợp trong sản phẩm và được cài đặttrên máy tính của bạn cùng với các mô-đun TestComplete khác Bạn có thể
Trang 24tạo các tạo các plug-ins riêng của mình để mở rộplug-ins riêng của mình để mở rộng Tng TestComplete và cung cấp cestComplete và cung cấp chứchứcnăng cụ thể cho nhu cầu cần thiết.
2.3.2 Các dạng test được hỗ trợ
- Functional (or
- Functional (or GUI) TGUI) Testing: Kiểm tra hàm.esting: Kiểm tra hàm
- Regression testing: Kiểm
- Regression testing: Kiểm tra hồi quy.tra hồi quy
- Unit testing: Kiểm tra đơn vị
- Distributed Testin
- Distributed Testing: Kiểm g: Kiểm tra phân tra phân tán.tán
- Load Testing
- Load Testing: Kiểm tra : Kiểm tra truyền tải truyền tải
- Web Testing: Kiểm tra trên nền Web
-Functional and load testing of web services: Kiểm tra các hàm và truyền tảicủa dịch vụ Web
- Coverage Testing
- Data-Driven Testing
- Manual Testing: Kiểm tra bằng tay
- Keyword testing: Kiểm tra từ khóa
2.4 Cấu hình tối thiểu
Hệ điều hành: Microsoft Windows 7 with Service Pack Hệ điều hành: Microsoft Windows 7 with Service Pack 1.1
Trình duyệt: Microsoft Internet Explorer 10.0 hoặc Trình duyệt: Microsoft Internet Explorer 10.0 hoặc cao hơn.cao hơn
Chip: Intel Core 2 Duo 2 GHz Chip: Intel Core 2 Duo 2 GHz hoặc cao hơn.hoặc cao hơn
RAM: 2 GB
Trang 25-
- Đĩa hệ Đĩa hệ thống: thống: 4 GB 4 GB dung lượndung lượng trống g trống trên đĩa trên đĩa hệ thống hệ thống 1.5 GB 1.5 GB dung ludung luợngợngtrống để cài đặt, cộng thêm không gian cho các tệp tạm thời trong quá trìnhchạy thử
Độ phân giải 1024×768 hoặc cao hơn
Chuột hoặc thiết bị trỏ khác
2.5 Ưu nhược điểm của công cụ TestComplete
Ưu điểm:
Dễ sử dụng: Trình chỉnh sửa tích hợp cho phép người dùng có kíến thức về bất kỳngôn ngữ lập trình nào đều có thể thêm và xóa các bài kiểm tra, sửa đổi các tham
số và thay đổi thứ tự kiểm
số và thay đổi thứ tự kiểm tra.tra
Tùy biến: Bên cạnh việc sử dụng giao diện trực quan, bạn được phép viết hoặcchỉnh sửa tập lệnh theo cách thủ công nếu bạn thấy
chỉnh sửa tập lệnh theo cách thủ công nếu bạn thấy công cụ chỉnh sửa không đủ.công cụ chỉnh sửa không đủ
Cập nhật kịp thời: Vì đây là một sản phẩm thương mại, bạn có thể mong đợi mộtmức độ bảo trì cao, hỗ trợ khách hàng và tất nhiên là các bản cập nhật.Documentation của tool cũng đã và luôn đuợc hoàn thiện cho nên bạn không phảimất thời gian truy cập, tìm kiếm trong các diễn đàn một mẹo hoặc giải pháp nàocho phần mềm này
Hỗ trợ các ứng dụng Desktop: Trong khi Selenium chỉ có thể thực thi các teststrong trình duyệt (và
trong trình duyệt (và ứng dụng di ứng dụng di động sử dụng Appium), Tđộng sử dụng Appium), TestComplete hỗ trợ cácestComplete hỗ trợ cácứng dụng Windows
Ngoài ra kiểm tra chức năng được đưa lên cấp độ tiếp theo khi bạn tích hợp các Ngoài ra kiểm tra chức năng được đưa lên cấp độ tiếp theo khi bạn tích hợp các tậptậplệnh Selenium test của
lệnh Selenium test của mình với các giải mình với các giải pháp SmartBear bao gồm TestComplete.pháp SmartBear bao gồm TestComplete
Nhược điểm:
Chỉ hỗ trợ trên hệ điều hành Windows, nếu muốn sử dụng trên các hệ điều hànhkhác điển hình là MacOS bạn cần phải cài máy ảo và tất nhiên cài máy ảo thì hiệusuất làm việc không thể bằng máy thật được
Trang 26Đây là một phần mềm trả phí một lần, tuy nhiên bạn còn phải trả thêm phí duy trìmỗi năm (nhưng theo nhận xét của cộng đồng nguời sử dụng trên mạng phản ánh
nó là một công cụ hỗ trợ
nó là một công cụ hỗ trợ đáng để cho bạn trả ra đáng để cho bạn trả ra khoản tiền này).khoản tiền này)
2.6 Cài đặt TestComplete
- TestComplete có thể được tải xuống từ trang chủ của SmartBear:
https://smartbear.com/product/testcomplete/free-trial/
Hình 2.1 Giao d Hình 2.1 Giao diện để điền thông t iện để điền thông tin lấy link tải t in lấy link tải test complete est complete
- Các bước hướng dẫn tải: