1 / 9

Assertion

Assertion. Assertion là gì.

jena
Download Presentation

Assertion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assertion

  2. Assertion làgì • Địnhnghĩa: Assertion làmộtđoạn code chophép 1 chươngtrìnhtựkiểmtrachínhnótrongquátrìnhthựcthikếtquảtrảvềmanggiátrị true hoặc false. Nếugiátrịcủa assertion là true chươngtrìnhhoạtđộngđúng , nếu false làpháthiệnlỗitrongchươngtrình. • Lậptrìnhviênsửdụng assertion đểmôtảcáchthứccácđoạn code hoạtđộngnhưthếnào, chứngthựccácràngbuộcbêntronghệthống.

  3. Một assertion thườngnhận 2 đốisố: 1 biểuthứcluậnlýkếtquảtrảvềlà true hoặc false chobiếtchươngtrìnhchạysai hay đúng. Mộtđốisốlà 1 messages thôngbáocholậptrìnhviênbiếtlỗicủachươngtrìnhnếukếtquảlà false. Các assertion thườngđượctíchhợpsẵntrongnhiềungônngữnhư java , C++.. VD: trong java dùng assertion nhưsau: Assert 0 <= index && index < length : “ Out of memory”; • Trong C++ cungcấp macro “ assert” tươngtựnhưhàmnhưngkhôngcóthamsố message thôngbáolỗi. Vd: assert(0 <= index && index < length);

  4. Tuynhiêntrongc++chúng ta cóthểdùng macro đểtựđịnhnghĩa 1 assertion như VD sau: #define assert( condition, message) { if( !condition) { LogError (“ Assertion failed: “, #condition, message); exit ( EXIT_FAILURE); } }

  5. Kỹthuậtxửlýlỗi • Assertion dùngđểpháthiệncáclỗikhôngnênxảyratrongchươngtrình . Làmsaomàchúng ta xửlýcáclỗimàmongđợichúngsẽxảyra? Tùyvàotừngtrườnghợpmàchúng ta cócácphươngphápsau: • Trảvềcácgiátrịđặcbiệtkhônggâyảnhhưởngđếnchươngtrình • Thaythế 1 phầntrongcácgiátrịđúngkếtiếp • Trảvềgiátrịtạithờiđiểmtrước • Thaythếbằng 1 giátrịgầnvớigiátrịhợplệnhất • Ghicáccảnhbáora file • Trảđếnđoạnmãnguồnphátsinhlỗi • Gọiđếnmộtđốitượngchuyênvềxửlýlỗi • Hiệnlênthôngbáolỗitạiđoạnmãnguồnphátsinhralỗiđó. • Tắthệthống

  6. Xử lý các assertion bị thất bại • Khi assertion bị thất bại, đầu tiên là nó sẽ truyền thông báo lỗi đến người dùng bằng nhiều cách (in ra màn hình, message box, file log...). Khi các thông báo chuẩn đoán được hiển thị. Có nhiều cách chọn lựa tiếp theo: • Kết thúc chương trình • Cho phép thực thi tiếp chương trình • Quăng một ngoại lệ quay về đoạn code bị lỗi. • Cho phép kết hợp 1 hay nhiều cách trên.

  7. Lợi ích của assertions • Vai trò của các assertion là xác định lỗi trong chương trình. • Một lợi ích lớn nữa là giúp việc kiểm thử ứng dụng được hiệu quả hơn. • Tuy nhiên assertion chỉ có hiệu quả khi được thực thi trong đoạn mã nguồn chứa nó.

  8. Giới hạn của assertions • Bản thân 1 assertion cũng có thể tồn tại các lỗi và do 1 trong các nguyên nhân sau: • Thông báo lỗi không có thực. • Không thực hiện được 1 báo cáo lỗi tồn tại trong chương trình • Not being side-effect free Assertion có thể tác động đến hiệu năng cùa chương trình: • Chiếm nhiều thời gian thực thi • Nắm giữ vùng nhớ Các assertion có thể làm cho việc kiểm thử chương trình khó khăn hơn.

More Related