Finds testers in given country with matching devices
Requires nodejs, grab this repository, then
npm install // installs dependencies npm test // runs unit tests npm run-script complexity // shows complexity metrics
A major feature of uTest is our tester-matching algorithm. We are able to drilldown from a community of over 80k testers with multiple devices, to 10-20 testers that best meets a customer needs. As you can image, this is a complicated algorithm that takes multiple dimensions into account.
Your goal will be to write a simpler matching algorithm that takes two matching criteria (country and device) and presents a sorted list of results. The sort order is based on what the system is suggesting a user should select (more details below).
Write an application that will match testers based on a user search criteria. The search results should be ranked in order of experience. Experience is measured by the amount of bugs a tester filed for a given device. You can use any third party libraries, but be prepared to discuss why you decided to use it.
Search Criteria: Country="ALL" and Device="iPhone 4"Matches: 2 testers (User1 and User2).User1 filed 4 bugs for iPhone 4.- 4 bugs filed for devices in searchUser2 filed 10 bugs for iPhone 4.- 10 bugs filed for devices in searchResults: User2, User1
Search Criteria: Country="ALL" and Device="iPhone 4" or "iPhone 5"Matches: 2 testers (User1 and User2).User1 filed 4 bugs for iPhone 4 and 20 bugs for iPhone 5.- 24 bugs filed for devices in searchUser2 filed 10 bugs for iPhone 4.- 10 bugs filed for devices in searchResults: User1, User2
Search Criteria: Country="ALL" and Device="iPhone 6"Matches: 2 testers (User3 and User4).User3 filed 4 bugs for iPhone 6- 4 bugs filed for devices in searchUser4 filed 0 bugs- 0 bugs filed for devices in searchResults: User3, User4
How you output the results are up to you, there are no design requirements.
Compress entire source code tree, include third-party jars and instructions how to run or access the running example.
Brad will get in contact with you on scheduling time for you to present and walk through your solution. During the presentation, there will be a couple engineers that will ask various questions about the code.
If you have questions or problems, feel free to email us to ask. We’re happy to provide input on whatever you like. For questions about the assignment, make sure to include these people in your email: