BRACE YOURSELF, UAT IS COMING
A GUIDE FOR A CORRECT APPLICATION OF UAT AND UI TESTING If you work in a software development environment, chances are that you bumped into the term UAT.
And you might ask yourself: What the feck is that now?
What’s the difference between UAT and UI? What is that I am doing wrong?
(maybe you’re not asking yourself THIS specific question, but I’ll do it for you). Well, hold on tight because you’ll face a whole bunch of to-do lists with fancy names
that make everything look more complicated and technical,
but hey, that’s the tech lingo, make peace with it.
and these terms often have overlapping meanings or are used inconsistently.”
“One challenge to learning about software testing is that there are many terms in the industry,
So let’s start with defining which one is what UAT MEANING UAT stands for User Acceptance Testing, where the User is the primal focus. Usually, it’s conducted at the end of development and takes place after the UI testing In a fair and rich world it should be conducted by real Users in real case scenarios, but,
since we live in an unfair system, usually the UAT takes place within the account team and the client,
so we’ll base the whole analysis with the Cinderella environment. In terms of debugging, User Acceptance Testing deals with functionality and highlights the critical error
with the software We can sum up UAT with a, never out of fashion, bullet point list:
- The most effective plan to reduce time and cost.
- Based on the end-user, the people who will use the software on a daily basis.
- Happens at the end of the process, once a beta version is ready.
- Will ensure a product that lives up to the functional requirements.
UI TESTING MEANING Acronym for User Interface takes under its wing GUI (Graphic User Interface) and CLI
(Command Line Interfaces) For the sake of our mental sanity, we’ll take into consideration only the GUI
(for now, I might come up with another sarcastic article about CLI too) In terms of debugging, UI testing deals with user behavior and shows us what true error is. We can sum up UI testing like this -again, bullet points
So, looks like they are overlapping, what are the main differences?
UAT REQUIREMENTS UAT is a key step that usually is underrated for n reasons, but one above all: you’re probably in a rush,
so you test here and there without having a proper plan.
Well, take a deep breath and a step back, start with a plan, trust me it will save time in the long run. So if you want to conduct an effective UAT, make sure the following criteria are met before
you start being in a rush:
- Business Requirements must be available, if not,
then you might bump into issues and not recognize them. - Application Code should be fully developed, if not then you can’t do a user acceptance testing,
but you should jump back to a QA and to Unit, Integration and System Testing
where you ask questions such as > Does the application crash? What’s the load time? And so on. - Only Cosmetic errors are acceptable before UAT, if you see cosmetic errors, that should be finally
addressed to the UI testing. - All the reported defects should be fixed by developers and tested again.
- The traceability matrix for all testing should be completed.
- Prepare the UAT plan early in the project life cycle.
- Prepare a Checklist before the UAT starts.
- Conduct Pre-UAT session during System Testing phase
(the testing phase where there should be the checking of the application components in order
to see how they interact with each other). - Set the expectation and define the scope of UAT clearly.
- Test End to End business flow BEFORE the UAT.
- Test the system or application with real-world scenarios and data.
- Think like an Unknown user to the system.
- Perform Usability Testing BEFORE the UAT.
- Conduct Feedback sessions and meetings before moving to production. Product Owner,
Test Manager, and IT manager should be involved and don’t forget the meeting agenda
that should have: - Next Steps > Move to production or solve issues.
- Check all the UI elements for size, position, width, length, and acceptance of characters or numbers.
- Check you can execute the intended functionality of the application using the UI.
- Check Error Messages are displayed correctly.
- Check for Clear demarcation of different sections on the screen.
- Check Font used in an application is readable.
- Check the alignment of the text is proper.
- Check the Color of the font and warning messages.
- Check that the images have good clarity.
- Check that the images are properly aligned.
- Check the positioning of UI elements for different screen resolutions.
Fundamental qualities required for the UAT and UI testers
- Ability to prioritize bug fixes according to their severity.
- Tools to document bugs and provide detailed notes.
Acceptance testing is usually performed either by end-users or their proxies,
such as a product owner client’s side.
“The goal of user acceptance testing (UAT) is to ensure that the application solves the customer’s needs.”
Responsibilities and Deliverables of UAT and UI testers
“those who request the UI, do the UAT”
For the UAT it can’t be a developer, they have too much knowledge of the software and it’s hard For the UI Testing, UI should be done by developers as functional testing and after development,
for them to be objective and it can’t be Pippo from Finance department either, he might not have
the skills to target bugs and prioritize them. Product Owner
by the testing team:
- Create and maintain Programme Delivery plan
Deliverable > Programme progress report - Ensure the successful completion of the program on schedule and budget
- Sign-off Business Requirement Document
Test Manager
- Ensure Requirement Traceability
- Drive metrics collection to quantify the benefits derived out of the updated testing methodology,
tools, and environment usage - Execute test cases and prepare test logs
- Report defects in test management tool and manage them throughout their lifecycle
- Produce End of test report
- Provide Business Readiness Support and Live proving
So UI usually come first and UAT as second, and that’s because UAT is the final testing performed by the client, following this principle ‘those who request the UI, do the UAT’ You can think of it as a BETA testing.
UI testing instead is something that “generally” precedes UAT and is usually confined in the developer
environment. Select users perform certain tasks and the owner of the testing makes notes, observations,
interviews, etc. Basically you evaluate different aspects of your application and test their usability.
So what happens when one of them fails?
Let’s make a few statements, shall we:
-Usability Testing is to find errors in the system.
-User Acceptance Testing is to prove that the system is ready.
-A broken feature should not be delivered to the client
So, if the UI test team messes up the UI, then UI test manager should take responsibility,
and the Product Owner should convey the delay to the client.
Usually, this scenario leads to client dissatisfaction, in order to fix it, UI testing should never stop,
and UAT should be done at the end of the development, by following the above-mentioned criteria.
One quick way to prevent, instead of fixing those issues is to move testing earlier in
the software development life cycle, this is also known as Shift Left Testing.
So we took care of definitions, that’s boring but necessary, it’s the vocabulary that gives us access
to other’s knowledge and should not be forgotten.
We have our great lists of to-do, defined who should do what, analyzed how
to behave in the worst-case scenario.
People get confused on the lingo A LOT, we should start calling things and processes with their names,
and THEN shape them for our needs, not vice versa. Remember one principle of Punk / Agile culture,
first learn the rules, then b̵r̵e̵a̵k̵ shape them.
I would like to hear your opinions on this huge topic and please, And then, let me know if you want to read more about this topic or outsourcing testing or
feel free to write to me to suggest any changes or to add points. It’s us that write history.
about the benefits and downsides of adopting an outsourced solution. — — — — — — — — — — — — — — — — — — — — — — — — — — — — — SOURCES and RECOMMENDED READING Principles of UAT UAT Definition GUI Testing List of software
Originally published at https://www.martalobracco.com.