top of page

Visual Studio Test Tool Case Study

Responsibilities:
Developer; UX Designer

A case study for a tool I designed and implemented after researching the technical capabilities of the Visual Studio's Extension API. It automated the process of associating test cases to tasks on our project management tool.

ProblemSolutionChallenges • PrototypeProcessResearchDesign DecisionsResultsImprovements


PROBLEM STATEMENT:


At AIR Worldwide (Verisk Analytics now), developers practiced test-driven development (TDD).


TDD is a software development practice where requirements are turned into unit tests first. Then, code is written to make those tests pass. Therefore, developers end up generating a lot of tests as they develop features to meet those requirements.


After this, developers at AIR also had to go through the time-consuming process of manually filling out a form to associate the test cases to user stories on Microsoft TFS Test, the project management tool AIR used.







SOLUTION:


To help streamline the association of test methods in our DLLs to user stories in TFS Test, I created a Visual Studio extension that integrates directly into their IDE is convenient for developers.


Why was this helpful?


For Developers:

This tool allows users to right-click classes containing test methods in the Solution Explorer in Visual Studio, the IDE virtually all of the developers used. This reduce the amount of time wasted on this repetitive task.


For SCRUM Masters:

Having tests associated in TFS Test enabled the team make use of a number of its test management features: viewing test history, analytics, categorization, etc.


Visual Studio with the Solution Explore open




CHALLENGES:


  1. Technical Constraints

    • Learning the capabilities of VSIX independently and with little documentation for the API. No one else on the team had created something like this before.

    • Originally, the plan for the test tool was to allow users to right-click on test cases in Visual Studio's Test Explorer because this would've been more intuitive. However, research and testing showed that this simply wasn't feasible.

  2. Time constraint

    • I prioritized usability and functionality over aesthetics to get an MVP of this tool in the hands of our team and test it before the end of my internship. The tool was modeled after built in modals.



Visual Studio with the Test Explorer open





PROTOTYPE:

The Basic Functionality of this Tool recreated in Adobe XD






PROCESS:​​​​​​​


For this project, I began with an ideal design of the interface. Initially, I didn't concern myself with what I could program.  Along the way to implementing this tool, I also met with the heads of the department for design meetings, had near weekly demos with my supervisor and kept extensive notes and sketches of design ideas to consider no matter how bad they were.






DESIGN DECISIONS:


Feedback:

  • The user story list opens as soon as tests are added to ensure immediate confirmation that the search succeeded.

  • Clearing the search bar after a successful search. If an ID is invalid it stays in the search bar even when the other stories are found and their IDs are removed from the bar. The box also turns pink upon failure.


Error Prevention:

  • Single-select on user story list and multiselect on test case list. It wouldn't make sense for a developer to assign the same tests to multiple user stories.

  • In comparison to older designs, I moved the position of the search bar up and added the lighter gray background color to prevent slips (clicking associate/cancel instead of searching).


Efficiency:

  • Choosing to allow users to input multiple IDs if they're separated by commas for the search bar.

  • Allowing users to use their keyboard for deleting.


Constraints:

  • Skipped "could have" features that I frankly could not implement.

    • e.g.) drag and drop became an arrow.

  • Unconcerned about visual design, given the time crunch.





RESULTS:



After my internship ended, the extension was integrated into the departments' workflows. Furthermore, the Spring set of interns continued to worked on it, further improving upon its functionality and/or design.


Nevertheless, working on this project for my team at AIR was everything I could've hoped for before I even knew what I really wanted out of a job: R&D, figuring stuff out on my own and bugging people to see my work-in-progress projects etc.


After completing my six-month internship, I drastically changed my course of study one odd night. I dropped my minors in game art and animation and tried to switch to a minor in interaction design but with no luck. I have, however taken classes like Human-Computer Interaction, Game Interface Design, a second class on Web Development and a class on the foundations of software engineering (software development life cycle models, requirements analysis, user-centered design etc.). I also started my senior year with a design mentorship. In a way, this project along with the UI of Dissonant were key moments in my UI/UX origin story.





POSSIBLE IMPROVEMENTS:


One improvement that immediately comes to mind is reformatting the search bar. Something like Google Drive's sharing search bar would prevent errors before the user hits search and it would segment the user story IDs more clearly. Each search should also limit the input to six digits to further prevent errors. A stretch goal for this would be to display the user story name instead of the number as new ones are added. Additionally, adding drag and drop functionality would've been nice.

bottom of page