Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What can we do on this project? #17389

Open
ayodele-olufemi opened this issue Nov 27, 2019 · 2 comments
Open

What can we do on this project? #17389

ayodele-olufemi opened this issue Nov 27, 2019 · 2 comments

Comments

@ayodele-olufemi
Copy link

@ayodele-olufemi ayodele-olufemi commented Nov 27, 2019

Please have us do something

Hi Admin,
I belong in a group of 2 students and currently taking a software testing class. I chose to work on this project because I felt it would be fun and --easy, but I guess I was wrong.

Task:

  1. Find and report bugs and/or
  2. Run/Add tests.

Problem:

We've since been playing this game, but we can't find bugs. Apparently, the game is a lot more advanced that we initially thought. Thanks to all the wonderful contributors. We've been able to build the game and run the tests, but that hasn't gotten us much points to pass. Its almost getting to the end of the semester and we can't change projects at this point.

The professor have instead asked us to talk to Admin and see if they can have us do anything. Please point us at what we could work on.

Thank you.

PS: The was the only way I could think of in order to be able to contact Admin.

@abcdefg30

This comment has been minimized.

Copy link
Member

@abcdefg30 abcdefg30 commented Nov 28, 2019

Hello and thanks for your interest in the project.
Sadly, I don't think we have any open task involving traditional (unit) testing at the moment.

An interesting idea might be having a look at "HeuristicWeightPercentage" of our pathfinder:

// The search will aim for the shortest path by default, a weight of 100%.
// We can allow the search to find paths that aren't optimal by changing the weight.
// We provide a weight that limits the worst case length of the path,
// e.g. a weight of 110% will find a path no more than 10% longer than the shortest possible.
// The benefit of allowing the search to return suboptimal paths is faster computation time.
// The search can skip some areas of the search space, meaning it has less work to do.
// We allow paths up to 25% longer than the shortest, optimal path, to improve pathfinding time.
search.heuristicWeightPercentage = 125;

The linked comment already gives an explanation of what the property does (basically if you set it higher the finder is faster, but gives less optimal paths). I also suggest looking at #17334 (comment).
What you could do here is:

  1. Design a few test cases for unit pathfinding (perhaps on a custom map, and move units using a Lua script or by hand)
  2. Look at how different heuristic percentages do on those testcases (optimal path and pathfinding-time wise)
  3. Use the gathered data to find what an optimal value for this percentage would be

I think this would certainly give you something to write about.

Another idea would be benchmark-testing @teinarss new HPA pathfinder (I think the most recent version is at https://github.com/teinarss/OpenRA/tree/hpa2), but afaik he's not 100% finished yet, so this might be a bad idea.

@Mailaender

This comment has been minimized.

Copy link
Member

@Mailaender Mailaender commented Dec 1, 2019

You will notice that this game has surprisingly few unit tests. However it has an interesting interface called ILintPass which checks the mods for consistency.

// Run all rule checks on the default mod rules.
CheckRules(modData, modData.DefaultRules);
// Run all generic (not mod-level) checks here.
foreach (var customPassType in modData.ObjectCreator.GetTypesImplementing<ILintPass>())
{
try
{
var customPass = (ILintPass)modData.ObjectCreator.CreateBasic(customPassType);
customPass.Run(EmitError, EmitWarning, modData);
}
catch (Exception e)
{
EmitError("{0} failed with exception: {1}".F(customPassType, e));
}
}
It is very important for automatic QA and grew a lot in size. Performance is terrible though #13937 and the system is not so smart when throwing. #15114 #6975 It also doesn't cover everything. #12753 There is also some debate on a partial refactor. #13533 You could also think of new checks for maps and mods that help spot errors. Some ideas at #11164 #9896.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.