Main observations in unstable scripts are as follows:
Selenium tests are usually unstable because of the unnecessary
complexity created in your test framework
Enabling parallel execution without keeping in mind that one test may affect the state of the system that in turn affect the other test running in parallel.
Using deprecated modules
One set of tests
You've clearly defined a common problem that many of us face.
I have tried all of the solutions you outlined but they all seem to run into the issue of a lot of maintenance and knowledge and updating code based on environment.
My recommendation is one set of tests. If there are dependencies, e.g. database you create a connection ...
The more tests are integrated, the less stable they are. This is because they involve many more environmental factors.
Basically, Selenium tests are not just integrated in terms of software components which compose your AUT, but also in terms of the particular version of the OS, particular browser version, particular graphical driver version, or "...
A strategic approach
If you cut a couple of hours and don't make other changes than next week more tests will be added... and the time will increase again.
So this is an excellent opportunity for a discussion on strategy.
Not to seek immediate answers (hence I'm not providing them), but to start the conversation for your given situation to see what will ...
There needs to be little more clarity on how the team currently works and what they expect to be working as.
By reading the question it looks like the current Test strategy is like :
Huge drawback of this implementation:
This takes away the basic pillar of microservice architecture, this test creates a dependency between microservices.
You will not be able ...
I don't think there's a special name for this particular situation. Nor do I think we should create one. I think we should try to keep things simple, rather than layer more artificial names of top of what we currently use.
We have established automated tests but it is not uncommon for them to fail against qa.
(we can fix them later, but different ones ...
Accessibility testing (a11y) is an important part of testing any application. In my experience, it's not done often enough, although more and more companies are getting involved here given legal issues that have cropped up in the last couple of years.
Like anything else that is designed by UX or developed by Developers, a11y needs to be tested.
Assume that you're working on a project that requires testing on multiple configurations. What are you going to do? Running different scripts on each and every device is cumbersome. Automation Testing will help you save time and manual efforts. As an automation tester, you should know about Selenium grid.
This is exactly why Selenium Grid is built. It can ...
What you're describing is mentioned here in the Cypress documentation.
Cypress documentation also mentiones some workarounds. I think the bottom line for you is this part:
A common use case for this is Single sign-on (SSO). In that situation you may POST to a different server and are redirected elsewhere (typically with the session token in the URL).
You test micro services the same way you test all software, with Unit, Integrated and UI tests. As PDHide details nicely, a key part of micro-services is that they give you the ability to perform unit and integrated testing without all the dependencies that traditional testing would require. It is up to quality software engineers to both recognize and ...
I think you got your base assumption wrong, DevOps is not a silo skill and profession that you either have or not, belong to or don't.
Knowing how to use AWS cloud, Docker, Kubernates or Google cloud is something you will use as a test engineer even before you start developing automation.
Is it mandatory ? obviously not, but you and your career will greatly ...
First understand virtualization concepts:
Your code runs on a system.
In the past, we used to buy bare metals for each isolated code. Meaning if you want two servers you buy two servers.
so if a code requires only 1G RAM, but the server you have is 32GB you are wasting remaining 31GB of hardware resource.
To avoid this wastage the hardware virtualization ...
Salary hike is not just about what you think you have provided. You have to ask the following questions to the situation.
Can organization hire more experienced talent with much more expertise in test automation for the same salary.
Were you able to showcase the addons brought by test automation by using proper metrics like reduced testing time, faster ...
Some relevant guidelines:
The goal is confidence, not coverage. If you have good coverage with well-written unit tests then a tiny number of high-level tests can be enough to have confidence that the overall system will Just Work™.
Having both unit and integration tests for the same functionality is a waste of time in terms of writing the tests, maintaining ...
Although I don't have a complete answer this question is special, the difference from the common "how do I test" questions is the high frequency of changes. Testing everything thoroughly is one approach, but as @vicky99 explained it's not worth investment for a very short lived feature.
There two approaches to go as I see it. One approach that ...
The purpose of using any test automation tool is to fail when the assertion fails. However, how you write your tests also matter. It's recommended when writing tests to use the FIRST principle.
FIRST stands for:
Independent or Isolated
Thorough or Timely
In regards to the question: "I don't want to stop the test ...
There could be hundreds of examples, to name just a few:
automated releases to test and other environments
test data generation
performance tests (hardly possible without tools that automate some load)
text parsing, e.g. I need to create a JSON out of XML, so I use tools for that, I need to change a newline character from CRLF to LF, so I use some tools for ...
Postman has a command line Collection Runer called Newman:
By default, Newman exits with a status code of 0 if everything runs as expected with no exceptions. You can configure your continuous integration tools to respond to Newman's exit codes and correspondingly pass or fail a build.
You can easily integrate it with
Just to add one more explanation.
In REST API, the / indicates a hierarchical relationship between resources. This one rule is already broken when you send a POST req to /api/v1/product/2 and 2 means a category id. Category is not hierarchically under products.
In this example, what category a product belongs to should go into the request body:
Explaining a bit more on how you can make your selector robust
If this is the selector you use
.content > table > tbody > tr:nth-child(2) > td.cell > input#email
And the input is moved out of table or even moved a cell, the selector breaks
But if the selector was
Then it would work even if ...
Yes, you can and maybe you should depending on the context. If you write code you are a developer, or programmer. Writing automated tests is coding in most cases. Look at this definition of programmer.
A computer programmer, sometimes called a software developer, a
programmer or more recently a coder (especially in more informal
contexts), is a person who ...
Remember context - what works for some may not work for you. Other than the suggestions above, consider your system and think about what you need. Cypress is a popular tool but not every test tool is applicable to all systems.
Naming specific tools will not age very well as an aswer, also learning tools you might not use could be waste.
I would study concepts and fundamentals, afterwards maybe find a popular tool to practise it. To find concepts to study you could look at topics presented at recent conferences. For example Agile Testing Days or Test Bash.
Some concepts that I ...
Since you have Session-Based Test Management, you can use your test sessions data to show your team's testing capacity.
You can plot the number of sessions your team did throughout time. Downtrends may intigate your team is having problems to keep a steady pace or that your testability has improved, demanding less test sessions for the same ...
You don't actually initialize the driver before you call it.
Your SeleniumDriver.openPage() call happens without any of the initialization code for the driver being called.
public static SeleniumDriver seleniumDriver;
public static WebDriver driver;
does not actually initialize the driver - it merely declares the variable. ...
There are a number of uses of Docker from QA perspective in any qa company. Few of them are listed below:
It runs faster in comparison to Jenkins or any other tool as the deployments are done in containers. Due to this, you can deploy the identical containers in different portions at the same time which makes it very quick.
It’s quite easy to place ...
It checks all the boxes:
Environments on demand
Greater consistency across many users
More reproducible and thus reliable environments
Greater security options when implemented correctly
Less 'it works on this machine but not that one' issues
Less cost due to more virtualization and less physical machines to maintain
Faster turnaround for changes when they ...
A better question might be to ask yourself "Did you add value by solving an problem important for the team/business?"
When we do any activity in software development may be its development, manual testing, automation, requirements analysis etc. ultimately any activity has to add core value to the team/ business by solving a real & important ...
Most programming languages support list of items and loops, some pseudo code:
Create a list of websites/urls to visit (e.g. array)
Foreach url in list (e.g. a loop to go over each item in the list)
Visit the page (e.g. driver.get(url))
Get the page source (e.g. driver.page_source)
Check the page source contains something unique to the ...