Jira creating Test repository for Product - testing

Hi I'm new in Jira and want to create a Test repository for one product without using any add-on.
This test repo will include all generic test cases and custom ones for each customer. I wont execute them in Jira but will use Jira to keep test details(test steps, pre-post conditions, result etc.)
My goal is to create Parent issue/folder for main Product on top and under that there will be sub folders/items like Generic-Tests, Customer1 , Customer2 etc. that includes related tests in each.
At first was planning to create Epic and under that some sub items but not looks fine, so now stuck.
Do you have any solution in order to create that type of test repo in Jira?

Related

How to access the response of a scenario from a different scenario?

I have a feature file Product.feature .I have two Scenarios Create Product and Update Product. I have created a product in Scenario :Create Product. In the following scenario(Scenario :Update Product) I want to update the details of the product created in the Scenario : Create Product using the account id which will be in the response of the Scenario :Create Product .
You have to merge the Scenario-s into one. It looks like you have mis-understood how they have to be used. This is explained clearly in the documentation:
Variables set using def in the Background will be re-set before
every Scenario. If you are looking for a way to do something only once
per Feature, take a look at callonce. On the other hand, if you are
expecting a variable in the Background to be modified by one
Scenario so that later ones can see the updated value - that is not
how you should think of them, and you should combine your 'flow' into
one scenario. Keep in mind that you should be able to comment-out a
Scenario or skip some via tags without impacting any others.

Automated testing - Best practice - getting test data before test

I have a question about getting test data for automated testing, here is my problem:
I need to prepare automated testing scripts for a clothes shop.
And I need to know what is the best practice for getting test data needed for the following scenario:
Scenario description: Checking if a user can correctly add a product to the basket.
Given I am on the "WOMEN'S DRESSES" page
When I add "XXX" product to the bag
Then I can see "XXX" product displayed in the basket
My question is: how to ensure that the "XXX" product is always available and what is the best practice for this?
Do I have to always connect to the env database and check if the "XXX" product is available and if not then insert it into DB?
Or maybe should modify a little BDD scenario and get the list of currently available products on the "WOMEN'S DRESSES" page, chose any product, add it to the bag and check if it is correctly added to the basket? ( but in that case what to do if there are no products available for the testing env ?)
I want to have efficient and strong automated tests.
There are a few options for this. Some developers and I looked into a similar problem we had for a car-marketplace. We actually found out that the "dirty" way was the best way for us.
We simply did a BeforeFeature database query and picked up all brands which were available in the test environment. We added these brands to FeatureContext and ScenarioContext, depending on the required context. Because of the Feature/Scenario context, you can use these values during the run of that particular feature/scenario. During the "When" step, in the code, we created a list of all the brands available in the database.
Then, we passed every brand through specflow to the code and checked the list if it contained the brand. If the list did contain the brand, a click had to take place on that brand and we checked in the last step if we were landed on the page of that brand.
You could do something similar with the dresses.
So our specflow looked somewhat like:
Scenario Outline: Check available brands till vehicle detail page
Given I navigate to Vehichle Search Page
When I search '<Brand>', if available in test environment
Then I am navigated to the vehicle detail page
Examples:
|Brand|
|Audi |
|BMW |
|etc |
Just an addition:
This way of writing test keeps your test very BDD. Business can read what your are testing. Also, as long as the data model remains as-is, your tests are very maintainable. You can add unlimited amounts of dresses to your table and you will only get test results if the brands are available. So if the database is swiped clean, sure, not a single test will be executed, but you won't get any false positives or unnecessary negatives.
Also, you can choose to add brands to the database if they weren't found in the first place. You could do this within the "When" step. If the dress is not found in the list, you can add it with a query in the database at that moment.
In your case you have to add one more precondition:
GIVEN: XXX product is available on the "WOMEN'S DRESSES" page.
If product is not available - it's another test case )
Create XXX product just before test using most suitable way:
api call
web UI
DB update (not recommended)
or just mock api response for XXX product

Using a single JIRA Task ticket or create Sub-Tasks

We are using JIRA to work with a team of Developers and a QA team. Currently the 'Dev Team Leader' creates a 'Task' ticket, assigns it to the development member, who work on that ticket and then informs the JIRA ticket number to the QA team, who create a separate QA ticket for testing it. And of the test is pass or failed they inform the DEV team, who either fix it or change the ticket status to 'In Deploy'.
My question is as follows:
Should they create single ticket and use that to do the Development and Testing ? (ie. shift the ticket between the DEV Team and QA Team)
Should the DEV team create a Parent TASK ticket for Development and then assign it to the QA team, who will create a Sub-Task for the Testing and link it to the Parent Development ticket?
Issues:
We need to identify which team member worked on the development
task?
Which team member worked on the Testing ?
How much of tie spent on Development as a whole?
How much of time spent on Testing as a whole?
What is the best way of doing this ?
You only need one ticket or an Issue in JIRA context. Your Project should have a workflow with, for example, the following Statuses: To Do -> In development -> In testing -> from here, the Issue can go in two directions, back to In development if the QA is not satisfied or Done.
When the Issue is moved to the next step, it will/should be assigned to the proper person, i.e. in To Do it's assigned to your project lead or whoever distributes the tasks, In Development it's the developer, In testing the QA, etc.
This is the most widely-accepted way to use JIRA as a ticket tracker. Each transition will be recorded in the Issue Activity Log with the corresponding datetimes, Assignees, etc. You will have access to all the information you've asked for.
It sounds to me like the workflow is in need of granular tracking of development work and testing, where a single ticket (suggested idea) doesn't satisfy.
I found the following design useful:
1. Create a USER STORY that has a set of criteria that needs to be met.
2. Sub TASKS can be created as children of the STORY especially if they need to be worked on by different people.
3. Once all tasks are completed, the USER STORY can be moved to TESTING / IN TESTING (whatever the workflow defines).
4. The QA/QE Engineer then can create TESTS / TEST CASES (children) for the User Stories and and execute them accordingly. Similarly, defects can be filed as BUGS as children of the story.
Ultimately in this workflow the story must meet a set of criteria and level of quality (based on what is acceptable to pass the story for the business) in order to be considered "completed" or ready for release.

How to i automate a test that targets values that change from one test to another?

Currently I am testing an online shop. I want to automate the checkout process but each time an item has been added to the cart and the checkout process is completed that particular item is removed from the list, and the second time the test runs, it returns an error because it can not find the item.
Is there any way I can build a test that completes the test without failing because it can not find that particular item ?
I am using Selenium with PHP and Selenium IDE.
Please note that I am just a beginner in automation.
Any help would be appreciated.
Best regards,
Radu
Whatever the test you do, you should be very confident with the expected initial situation of your system under test when the test starts. In your case, if your test needs a specific item to be available, then this should be part of your "test setup" section.
Let's say you have 100 tests that needs an item to be available.
I can see 2 different strategies to solve your issue:
At the beginning of your test suite, deploy a custom brand new web site with your 100 products available. Your tests will update/destroy those data but you don't case because next time you run the test, you will deploy a brand new set of items.
At the end of each test case, you do a custom-action that will clean your system by adding the item back in the shop.

RCP extensions from several plugin's

I have RCP, and 2 products, based on fetures. I have my.project.gui plugin, that have some gui-extensios, like views, perspectives, prefetencePages. etc..
First product have some gui (feature of this product includes my.project.gui). And I want to my second product to have some extended gui. I created plugin, named my.project.gui.extended and added it to my second project feature. Then added some gui-excensions to my.project.gui.extended. But this doest work! I lauch my second product and see only my.project.gui-extensions, and dont see my.project.gui.extended-extensions.
Tried to add my.project.gui.extended to all dependences, but this didnt solve problem.
Is there any things i need to do to make this work? Or I need to this job in some other way?
===================================
Added information:
1st product feature has:
my.product.main1 (plugin with 1st product, application class, etc... has gui in dependences),
my.product.gui,
my.product.shared,
my.product.others1
2nd product feature has:
my.product.main2 (plugin with 2nd product, application class, etc... has gui and gui.extended in dependences),
my.product.gui,
my.product.gui.extended,
my.product.shared,
my.product.others2
type of extention is org.eclipse.ui.preferencePages (2nd product has server preference page, but 1st doesn't)
i think this is not runtime problem.
Solved my problem by adding this extensions to my.product.main2, not to my.product.gui.extended. This is not exectly what i wanted, but it works