Name:
Himanshi Kalra
Contact:
Calra on blender.chat and developer.blender.org 1
Synopsis
Regression testing helps in quickly detecting if any new features or patch break existing functionality. This helps the developers to test their patch while they are still working on it as opposed to testing during the last phase. Having automated testing at your disposal.
Benefits
Right now, the way to add a test object is only using Blender itself, this is easy when there are less tests or when we would like to customize the mesh at every step. While this can work, adding a framework which can automatically add blend objects and give them befitting names as well will make testing more beginner friendly.
Deliverables:
- Writing framework for Automatic blend file generation.
- Improving framework for testing Mesh modifiers.
- Adding framework for Bone Constraint testing / Compositor automated testing.
- Developer documentation.
- In case there is some time left, testing bone constraints as mentioned in https://wiki.blender.org/wiki/GSoC/Ideas_Suggestions 5 under Regression Testing.
Project Details:
Automatic blend file Generator
The idea is to break the testing in 3 parts:
- Generation of bare essential blend objects
- Tweaking (changing the default values) as per user requirement inside Blender
- Adding the test in the test file.
We already do the last 2 steps, now it may seem contradictory that more time will be expended but consider a case where there are a lot of tests, I think it will make testing more efficient.
The above stated is one of ways we can achieve but the methodology would be more or less the same. The process would also involve compiling a list of meshes from the already existing set of tests.
- Automatically generating a blend file
- automatic generation of the blend object
- naming of test and expected objects
- adding them to a Collection
Improving Mesh Modifiers Framework
- Extending framework for
- Physics modifiers
- Curve Modifiers
- Revamping the code to give a TestName to each test
Compositor Automated Testing
Some of the work for Compositor tests has been started by Habib Gahbiche (D6334), and I would like to build upon the suggestions by Sergey.
Object / Bone Constraints
This framework will mostly mimic the framework used for testing of Mesh modifiers. I would initially build the framework keeping āTransformā constraints in mind and would extend accordingly for āTrackingā and āRelationshipā.
Previous Contributions
I have submitted two patches one for Deform modifiers (D6620), and the other for Simulate modifiers (D7017). D7017 consists of tests for Cloth and SoftBody, I will add tests for the remaining Physics modifiers.
Project Schedule:
As per Academic calendar, the semester were supposed to end on 8th May but due to the Coronavirus outbreak, there is a degree of uncertainty as all colleges and universities are suspended. There wonāt be much interference during the Gsoc program.
If I finish Deliverable 1 and 2 together, I would like to work on the framework for Bone Testing along with Compositor Testing.
Week 1: Discussing the structure of the framework for automatic naming with the mentor and fellow developers.
Week 2: Starting work on the framework for automatic naming. Deliverable 1
Week 3: Finish working and testing the framework.
Week 4: Writing tests for Curve Modifiers and modifying the framework.
Week 5: Extending framework for Physics Modifiers. Deliverable 2
Week 6: Finish testing Physics modifiers and Curve Modifiers.
Week 7: Discussion on compositor automated testing.
Week 8: Starting work on compositor automated testing. Deliverable 3
Week 9: Writing tests for compositor.
Week 10-11: Buffer for above three deliverables/Bone Constraint Testing.
Week 12: Developer documentation. Deliverable 4
Bio:
Hey! I have been using Blender for more than 2 years now, my journey began by learning from Andrew Priceās Beginner Tutorial Series making a donut I tried my luck at animation but I am better at modeling
Although I started with Blender because it was open-source (read as free) but eventually I fell in love with it and wanted to contribute towards making it better. I familiarized myself with the codebase of Blender and submitted my first patch D5610. I fixed a few minor bugs (D5744, D5867), submitted a patch for testing deform modifiers (D6620), and am currently working on above-mentioned D7017 (Simulate modifiers test).
I have studied C, Data Structures and Algorithm Analysis as a part of my 1st year curriculum. Eventually coding in C++ for competitive programming (Hackerrank, Codeforces, LeetCode) and have learned Python for Open-Source and ML (Machine Learning).