Coder Social home page Coder Social logo

sea-lab-wm / burt Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 5.0 5.46 GB

BURT: A task-oriented dialogue system for bug reporting

License: Apache License 2.0

HTML 53.62% JavaScript 1.25% CSS 0.18% Java 35.52% Batchfile 0.52% SCSS 0.01% Shell 0.93% Python 4.36% StringTemplate 0.18% CMake 0.22% C++ 3.20%
bug-reporting bug-report chatbot quality-check android-app bugs

burt's People

Contributors

jmahmud47 avatar kpmoran avatar ojcchar avatar ysong10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

burt's Issues

Indexing in TraceReplayer

I have a question about the TraceReplayer indexing of the screenshots.

This issue is related to the differences between the regular and augmented screenshots of Mileage that @ojcchar mentioned.

The screenshot 'com.evancharlton.mileage.User-Trace.1.com.evancharlton.mileage_3.1.1_mileage9_augmented.png' is an augmented screenshot which tells us the component that was interacted in 'com.evancharlton.mileage.User-Trace.1.com.evancharlton.mileage_3.1.1_mileage8.png'. So, I think these two images will correspond to the same screen. So, for screen '........i.png', the augmented screenshot will be '.......(i+1).png'

I think Crashscope has the same implementation. I am referring to one example from the Crashscope data for mileage. Here, for the screenshot 'com.evancharlton.mileage.Top_Down.Expected..1.com.evancharlton.mileage_3.1.1_36.png', the augmented screenshot is 'com.evancharlton.mileage.Top_Down.Expected..1.com.evancharlton.mileage_3.1.1_37_augmented.png'. Another example of the images are 'com.evancharlton.mileage.Top_Down.Expected..1.com.evancharlton.mileage_3.1.1_47.png' and 'com.evancharlton.mileage.Top_Down.Expected..1.com.evancharlton.mileage_3.1.1_48_augmented.png'

@kpmoran and @ojcchar Please let me know your suggestion.

The report generated the OB twice

The problem is shown below.

I suspect the bug happens when the user says "no" when confirming the OB screen and then she says "yes" when the chatbot asks the question again.

image

TraceReplayer Questions

I have done the task of creating the execution.json file for the trace-replayer. I have pushed the changes to Github. I will make some changes to make a more clean code. There are some current scenarios that I want to discuss with you. For example,

i. For searching activity (image attached), I cannot extract the GUI component because to come to this page and to write something in the search text component, we clicked a search button which is a different GUI component. When we type something in the search text button, we select one of the predictive texts from those options. However, we cannot extract the predictive text from the uiautomator. Therefore, I did not take screenshots for the search option.

search

ii. For the email or password, I took the screenshots twice: (i) when clicking on the GUI component , (ii) after writing the texts. Please let me know if I need to make any change to that.

iii. For the swipe option, we took the screenshots where the screen is clicked initially with the cursor. If the initially selected option is a GUI component, we get the screenshot of the GUI component. However, in some cases, we got a cropped image, because the GUI component is not selected properly.

iv. For typing texts, each character is considered as a click event using coordinates. I did not take screenshots when typing all characters. I took the screenshots only before and after writing texts in a GUI component.

I have attached one result for the trace-replayer here. Please let me know your opinion on the above mentioned scenarios.

traceReplayer.zip

Refreshing is not working

When the browser is refreshed in the middle of a conversation, there is a crash on the client-side (Javascript).

No validation when no screenshot is selected and the done button is pressed

When no picture is selected and the done button is clicked, there is no validation whatsoever and null selection seems to be sent to the server.

This seems to be happening in any of the widget messages where there is a screenshot selection.

The chatbot should check that a selection is done, before sending the request to the server.

Externalize the messages of the chatbot

We should externalize the messages of the chatbot to a JSON file.

For each action, we should have one or more templates of the messages.

I am thinking the following format:

{ "ACTION1": [ "template1", "template2" , ...], "ACTION2": [ "template1", "template2" , ...], ... }

If we have multiple templates, we can randomly pick one in the action classes. In this way, the conversation looks more natural.

Chatbot feedback

The chatbot should give specific feedback.

For example, for the S2R "I tapped on submit button":

The chatbot should say that it didn't match any "submit button" and should prompt the user to rephrase S2R, clarifying that part specifically.

Alternatively, the chatbot should offer a list of suggestions to "submit button" either textually or graphically.

The screenshots of the bug report are incorrect

As seen in the image below, some of the screenshots for the S2R (e.g., I added fillup options) are incorrect.

Right now, if a step does not have a screenshot, which happens when a specific action from the graph is not matched, the chatbot tries to infer this step by matching the GUI components of the screens.

I suspect that the step inference is happening for an incorrect screen, for the one shown, rather than for the "setting screens", which is the one I targeted.

To reproduce this bug, we can input the S2R seen in the image on the chatbot.

image

Improvements to the bug report

  1. When we click the screenshot, the popup window should show up with the image enlarged
  2. Add arrows between S2R
  3. The icon of the screenshot popup window is not shown properly (a ? is current shown)

There is an exception when saying "no" to the OBScreen confirmation

When the user says "no" to the question asked by burt that says that "you selected [OB Screen], is that right?" (this is not the exact message)., an exception occurs in the server and it is not caught, leading to the chatbot not responding to the user (an error is thrown in the background).

Incorrect GUI screenshots

If we take a look at the first augmented image, TraceReplayer can identify the GUI component easily.

Example:
Augmented Image 1:
image1_augmented

GUI Image 1:
image1_gui

However, TraceReplayer cannot identify the correct GUI component in all cases. If we consider the second image, the correct GUI component should be "Departments". However, TraceReplayer incorrectly identifies "Clothing" as the correct GUI component. We cannot even click this component and that component must not be considered. The screenshot is actually considering "Clothing" as the GUI component. But the screenshot is taken from the current screen and therefore, we got an incorrect GUI image. I think one possible solution can be to consider only the current actionable GUI components. What will the best approach to solving this problem?

Augmented Image 2:
image2_augmented

GUI Image 2:
image2_gui

Error when replying yes as the first message in the conversation

If I enter "yes" after BURT welcomes me, there is an exception on the server side and nothing happens in the browser (see the pics below).

  1. The chatbot should not crash
  2. If it crashes, it should show a message indicating there was an internal error
  3. for "yes", burt should respond as if the user said "hi" (for now).

image

image

Implement report generation

Implement report generation based on the conversation.

Initially, the report should look like the Quality Report generated by EULER (see the FSE'19 paper).

Test the chatbot with multiple utterances

Right now, we are supporting basic utterances for greetings, yes/no, etc.

We should support more (Ideally, we should support more complex language such "I clicked this, and this is the last step"

Improvements to the GUI

We need to improve the GUI in this way:

  • Use a darker background
  • Change the icon of the chatbot
  • The chatbot conversation box should be wider (not super wide though)
  • The chatbot conversation box should reach the bottom of the browser for any screenresolution

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.