QA for the End User
Today we’ll discuss about the Quality Assurance concepts, with a slightly different approach because it won’t be in such a technical manner, but our main focus will be for the end user of a system or an application to understand how these concepts are applied, how testing is done and more important the overall value that Quality Assurance provides to them.
We’ll start defining some Quality Assurance basic concepts.
- Requirement: A requirement is any type of system or application functionality. The minimum information a requirement needs is a title and a description that explains what’s the expected functionality for the application.
- Test Case: A test case is a testing scenario that needs to be executed to validate that an application functionality is responding as expected. The minimum information a test case needs is a title, a description, the steps needed to follow in order to execute the test and what’s the expected result from the application. It’s recommended that these steps are as atomic as possible, it means that the person that will be executing them will understand them and follow them one by one without skipping any of them and without the application missing any required information. It’s not the same to describe:
- Log into the application.
- Navigate to the application URL
- Type the username
- Type the password
- Click the “Login” button
This example may seem something too simple for a user to understand, but when you’re working with more complex application functionality like validating a form of a web page content this level of detailing is crucial.
- Bug or Defect: This is an application functionality that is not working as expected, usually a bug is documented after a test case has been executed and the expected result doesn’t match with the actual result received from the application. A bug should have at least the following:
- A title that defines it.
- The steps that were followed to get to that result, usually these steps are related directly to a test case.
- A description of the expected application behavior that didn’t happen.
- A description explaining what was the actual result received.
After defining the main concepts related to Quality Assurance we need to describe briefly what’s the process that runs throughout the project this is to understand how the previous concepts will be used.
A project basically has 3 phases:
- Definition: On the definition phase of the project the planning and scope are defined, times, deliverables, roles and requirements are stablished.
- Development: During the project development all source code and test cases are written for each and every requirement, this phase is often divided into several iterations or sprints.
- Implementation: The project implementation is the final project installation into production environment, it’s recommended to have at least 3 environments in a project: Development, Testing and Production. This is because it’s possible to have 3 different versions of the system on each one of them while the project is being developed.
Now you might be asking yourself, what do I need Quality Assurance on my project? The first answer that comes to mind is clear and like the question states… To Obtain a Quality Product. If you look closely most products you consume on daily bases come with a Quality Control seal, this means that someone tested the product and certifies you can consume it with confidence.
Just like that the software product we deliver must be of excellent quality, therefore, a Quality Control team is needed to confirm the software application meets all the client requirements and users can trust it completely. Also, it’s really annoying for a user that an application shows error messages and popups constantly without knowing what caused the issue, that the system restarts itself, expecting a response from the system and that it ends up doing something completely different and unexpected. If you used a system that has these problems, would you use it again? would you recommend it to your friends?Reliability, stability, security and performance are crucial on computer systems nowadays, these are a lot of variables to be controlled or managed by the project owner to be aware and make sure everything is working properly, besides he already has to focus on the main tasks like budget, timelines and managing the development team.
Here is where the Quality Assurance team takes ownership, this team has a really important job, they are the guardians of the organization’s reputation and reliability. The Quality Assurance team validates and confirms that your application won’t reach your audience with fatal errors, confusing or wrong functionality, that instead of making the users life easier it will confuse them o make the system hard to use, that the application looks awful, messy or uneven.
The system you’re delivering to your clients is your presentation letter. You wouldn’t meet a client looking like a mess, without a shower, being unprepared to solve the clients questions or to present your business proposal. Your system must deliver the same level of professionalism and efficiency you would deliver to your clients if you helped them one by one, the Quality Assurance team checks everything is in order, everything looks good and everything is completely ready before you go out the door just like you had a personal assistant taking care of it.
This is the main reason why Quality Assurance in your systems and applications is indispensable, this is for you to be 100% sure and with complete confidence that your presentation letter meets all you need and that your system will serve your customers with the excellence and efficiency you expect.