-
Notifications
You must be signed in to change notification settings - Fork 41
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
👍🏽 Create a folder of manifest files that broadly tests IF across a range of test cases positive and negative. #615
Comments
@jmcook1186 / @MariamKhalatova as per the discussion here: https://www.notion.so/grnsft/IF-Epic-Build-trust-in-the-impact-framework-ecosystem-3800ec4e76314709ba4362523e121485?pvs=4#941e4f95b44740f59b69cc2c0647eef2
Acceptance criteria
Once it's updated to the new format with acceptance criteria added i'll 👍🏽 |
@jawache updated the issue to the new format and incorporated your comments |
Unblocked after chat with Asim - this is ready and I'll work on it from this afternoon. |
@jawache @jmcook1186 Overall the idea is not bad, but there are some questions and points to discuss
|
I don't love the idea of temp folders, only because it requires us to adopt an overcomplicated process. This set of manifests is intended to support our automated tests - for checking none of our established behaviours break when a PR is merged. We are not aiming for hundreds of manifests in these folders, just enough to cover our main positive and negative flows. New features that are still in development can be run manually by the developer and QA during the build process. So I still think the simpler approach works fine. A bit of occasional gardening of the manifest folders is not the end of the world in those cases you mentioned where something gets obseleted. |
@jmcook1186 @MariamKhalatova in that case we can keep something in the middle.
Plugins can include both positive and negative flows for each plugin. This way it's easy to manage and find exact manifest. |
ok, except that we will also want to test negative flows for feature and pipeline manifests, which aren't accounted for in your proposed file structure. I still prefer the simple option, but hear your point about navigating to specific manifests. Maybe the solution is just to impose a file naming convention that makes them searchable. For example, in
e.g. Then if you need to find the negative test cases relating to the aggregate feature you just take For multi-plugin manifests we can prepend with If there's a strong reason why this doesn't work and I'm not seeing it, please tell me - otherwise I'm still favouring the simple, |
@jmcook1186 @MariamKhalatova @narekhovhannisyan discussed on the standup and @jmcook1186 will summarise his conclusion.
|
I hear the arguments for QA being simpler when positive and negative cases are contained in a single folder but here's what I don't like about that:
How about this as a compromise:
|
@jmcook1186 What if you have 10 different success manifests for the same plugin? |
ok, @MariamKhalatova please could you sketch out your proposed version here as soon as possible (make this your highest priority task please) - I want to get a decision on this today if possible. |
jmcook1186 Yes, my version is ready, so I will provide the PR as soon as I'm at my desk. |
@jmcook1186 and @MariamKhalatova it's important for us to very quickly get some manifest files together in a folder, we need some manifest files in a folder just to we can finish off refining #638 and #637. Can we get some in a folder so we can start seeing actual files, how they differ, what features we need for if-diff etc... To clarity also, if-unofficial-plugins is going away and we are talking about merging most of the if-plugins as builtins so I would not get caught up too much into the issue of replicating manifests in multiple places. Let's get them all in this one place and then figure out the rest later. Eventually most of these "plugins" will actually just be "builtins" but for now, let's get them all in one place.
After that I think we will have enough to use to try to think through what the requirements are for if-diff and if-check, the priority is getting enough manifest files together to refine those issues. Then let's decide how to structure it, but talking about the folder structure now seems too early and a bit of a waste of time, the focus should be on actually getting some manifest files in a folder, we can always move them around later and change the folder structure as needs arise in the future. |
@jawache @jmcook1186 Okay. This conversation went a bit long, hope it was somehow useful. I just thought that my suggestions as QA specialist may be valuable for the final decision. Anyway, here is the structure suggested by me |
hi @MariamKhalatova thnks for the draft PR - I see what you mean. I like that Also, I think the So here's what I propose:
To me this includes the best of both worlds as it gives you what you need for QA purposes but I won't worry that normal users will get lost and be unable to find good demo manifests easily. And it also supports our bug processing. I think this is what we should do. Let's start with this format and if some refinement is needed later then so be it, but this will get us off the ground and unblocked on |
p.s. @MariamKhalatova @zanete I've pushed changes to my PR #660 that implement the above folder structure and populated the folders with example manifests. @MariamKhalatova you can check out that PR and add changes there. Specifically the 4 new tasks in the description of this issue This doesn't have to be comprehensive now - it just has to contain enough for the development of |
@jmcook1186 Okay, will do. |
Sub of: #629 -> #650
prerequisites
#337
Why
As a user I want to have a substantial set of example manifests available to help me to understand how to use the various features of
if
and its plugins. As a core developer I also want to be able to use those example manifests as positive and negative test cases.Context
We are implementing a more rigorous integration and regression test process. To do so, we need a substantial set of positive and negative test cases expressed as manifest files. These can overlap with the examples used to scaffold user onboarding. This ticket is for reviewing the existing set, fixing any that are broken, adding any that are missing, and tweaking to make sure they meet our needs for positive and negative testing. That will form the bulk of our automated unit, integration and regression testing.
It's good that we currently have manifests that demonstrate each feature of the IF and the standard library of plugins in isolation or close to isolation - these are quite commonly used to help debug people. It's also good that we have manifests with different pipelines so we can see that plugins integrate well with one another and work in context. So for the positive flows we should make sure:
builtin
has a dedicated manifest that demonstrates correct usageplugin
has a dedicated manifest that demonstrates its correct usageFor the negative flows, we should ensure we cover the common failure modes, including:
Suggested manifests
Statement of Work
The goal of this ticket is to create a clear set of manifest files that contain both positive and negative tests and store them in a folder.
Prerequisites
Since it's looking at negative cases it's dependent on #592
This ticket is about creating a core directory of manifest files, all the files in this folder are run using the proposed if-verify tool (#638) which will let us know which are failing (don't match) and which are passing (match).
the above are dependent on #600
Acceptance Criteria
examples
: These are the manifest files we generate for teaching, training, in our docs or we just provide as examples for people to learn from and leverage. (Only should contain plugins we maintain)plugins
: These are almost unit test equivalent manifest files, test an individual built-in plugin - helps isolate issues which relate to one plugin running in isolation. These are also useful manifest files to have in plugin documentations.features: Through our issue refinement process (Revise issue refinement/readiness process #613) as we develop features for IF the manifest files we use to drive that feature should be added to this folder. It should be named in such a way that it's clearly linked to the GitHub issue that it relates to. This forms the bulk of our regression testing, as we develop new features, we should not break old features, a failing manifest in this folder will tell us a new feature, has broken and old feature.
bugs
: Every reported bug should have at least one manifest file that triggers it, once we fix this bug we store in the bugs folder with a way to ID it back to the GH Issue ID. For regression testing all these manifest files should pass to ensure we haven’t re-introduced and old bug during development.integrations
: positive and negative test cases for common combinations of plugins in pipelinesfeatures
folder (maybe test the aggregate feature there)The text was updated successfully, but these errors were encountered: