J2EE Logic Test Solution - JTRACKER

zhaozj2021-02-16  51

J2EE Logic Test Solution - JTRACKER

background:

In the current Java software development, for functional level testing, such as testing a function implemented, we use JUnit's test framework for easy resolution. But when we have further requests for the quality of the program, when we need to test the execution logic inside the function, we need a white box logic test tool when the actual program logic is consistent with the design book. This article describes this issue by logic test tool JTRACKER.

JTRACKER logic test software (http://jtracker.net)

The JTRACKER logic test is a white box test tool for testing EJB components, servlets, and beans or ordinary Java classes: WebLogic, WebSphere.

1. Support function entry `, function exit, and logical testing of a particular line within the function.

2. Support class member variables, display, modification, and support of local variable values.

3. Support remote testing

Test program:

Use blueprints:

Test diagram:

The location where the test is required in the Java source code to join the logical test point:

Package TestServlet; import javax.servlet. *; import javax.servlet.http. *; import java.io. *; import java.util. *; public class sample extends httpservlet {... static int count = 0; / * <<< TPID = TP110 >>> * / // << =============== Logical Test Point, the test ID is TP110 public void infit () throws servletexception {} public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {... PrintWriter out = response.getWriter (); out.println ( ""); / * <<< TPID = TP211> >> * / / / << ================ Logical Test Point, the test ; out.println (" Sample </ title> </ head>" Out.println ("<body>"); out.println ("<p> the servlet Has received a get. this is the reply. </ p>"); out.println ("</ body> < / html> "); / * <<< TPID = TP222 >>> * / // << =============== Logical test point, the test ID is TP222} / * << Clean Up Resources >> * / Public Void Destroy ()}} Write tests per CASE according to different situations:</p> <p>Testcase001.tc // Normal Case001 ... testcase002.tc // Normalcase002 ... testcase001.tc: test case info caseinfo {title = normal basic case; // test case titlepath = d: / unittest; // test file pathsource = Servlet1.java; // source file namepackage = testservlet; // package name class = testservlet.Servlet1; // full class name} Logic Test Point / MEnter (name = doGet) {// when system entry servlet1's doGet Method, IT Will Take this logic test; // log name "; // display" test1 here is doget full name "; Field.dis (intfield); // Display servlet1's Field Intfield;} Mexit (Name = Doget) { // when system exit the method; iptail tris logic test; // Logic Test Content; Title ("Test1 Here Is Doget Method Name); // Display" Test1 Here Is Doget Method Name "; Field.dis (Stringfield); // Display servlet1's field stringfield;} bpoint (tp = tp222) {// When System Run at test point tpslv132, it will do this logic test; // logic test content; title ("tp222here"; / / Display "TP222HERE"; Field.dis (Field3); // Display servlet1 '</p> <p>s Field Field3;} The test result file confirmation program logic is generated according to JTRACKER:</p> <p>Testcase001.tr // Normal Case001 ... testcase002.tr // Normalcase002 ... testcase001.tr: *********************** ******************************************************* JTRACKER 1.0 Standard Edition * *** CopyRight (C) 2002-2003 Chen Shiming. All rights reserved. **** http://www.jtracker.net **************************** *********************************************************** ************************************************************* ************************************ CASE INFO ********** ****************** ===== Case ::: testcase001.tc ===== ------- Add :: menter (name = doget ) ------- add :: mexit (name = doget) ------- Add :: bpoint (tp = TP222) **************** *********************************************************** *** local :: time = 10: 45.34.158 * TestServlet.Servlet1 * doget * line = 51 *** module :: menter (name = doget) --------------- --------------- Title: "Test1 Here Is Doget Full Name" Dis: Intfield = 1 ===================== =============================================== *** LOC ion :: time = 10: 45.34.259 * TestServlet.Servlet1 * doget * line = 99 *** module :: bpoint (tp = TP222) ---------------------------------------------------------------------------------------------------------------- ------------ Title: "TP222HERE" DIS: FIELD3 = 3 ============================= ==================</p> <p>===================== *** location :: time = 10: 45.34.339 * TestServlet.Servlet1 * doget * line = 146 *** module :: Mexit (name = doget) ------------------------------ Title: "Test1 Here Is Doget Method Name" DIS: StringField = String ==================================================================================================================================================== ================== ************************************************ End ******************************** JTRACKER can bring the benefits: 1. Provide software testing high quality assurance and basis. Testing the test results file generated by JTRACKER will become a test-based nation and basis. For companies that do software outsourcing business, it will improve the quality of your software development and competitiveness in software services.</p> <p>2. Reduce test costs, improve test efficiency, and shorten software development cycles. Due to the particularity of the server-side software test, we have difficulty in full and quick testing and generating reports. Now the JTracker logic test tool helps you automatically make remote testing and generate test reports, which greatly reduces test time, test documentation Time and difficulty of testing.</p> <p>3. Fast, direct, convenient view error status and causes, the problem in the positioning software.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-23030.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="23030" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.050</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'p5_2F3SQi9W2phZaheVtBGAmndtMrNpyH_2BVshY_2Fs14czli5MIxXWZu_2F9UoHj04A0_2BqhmoNFtZjOYBteIBtMEXNwQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>