How Do We Keep Up With the Quality Standards at Cleveroad
If you buy cheaply, you pay dearly. True. True. True. Of course, the most expensive doesnt mean the best, however, quality does influence on the price. This article is just about the quality standards that we here at Cleveroad follow and about the quality which you get according to your needs and budget.
The quality is a term with wide latitude. It is difficult to measure unless you have some standards which can be used to estimate whether the product is highly-quality or not. To estimate the quality of a software product you need to test it. What is software testing? Testing defines bugs. But, before we explain what types of testing exist in web and mobile development when they are needed and which of them we offer to our customers, we need to understand what sorts of bugs there are.
What bugs are there?
The classification is taken from Jira. Jira is a project management tool that allows to track bugs. Its one of the most comfortable programs to run a project and is commonly used in a software development sphere.
Classification of bugs in software testing
Lets look closer how each type of bugs differ from others.
Blocker It is the most severe bug. Blockers are mainly considered as blocking/not allowing to use the app or key business logic of the app. There are no workarounds.
For instance, only logged user can use our app. A user can log in through email and password. Bug: when a user enters correct credentials and click submit button he receives an error notification. And his status is not changed to logged user. In such case, the user cannot use any features of our app, because its blocked by login bug. There is no a workaround.
The other example with Twitter. When user submit his tweet but it isnt saved in our DB - its a bug. Thats why nobody can read the tweet. Its a blocker bug because the key business feature is blocked. The issue doesnt have a work-around.
Imagine, a user receives a confirmation message after sign-in. When a user confirms account he can use all feature. If a user signed-up in app, he waits for 10 minutes but he doesnt receive any confirmation message, it is also a Blocker bug because a user cannot update his status to confirmed. The issue doesnt have a work-around.
Have no idea how to estimate your project? We share our experience in the article. Only best hacks from Cleveroad!
Critical bugs are the ones that effect critically on functionality or data of the product. The key and other business logic work incorrectly. The positive case is failed. If a Blocker bug has understandable workaround then its a critical bug.
For example, a user can sign-up in an app using two ways:
- through email and password
- through FB
If a user cannot sign-up through FB, it isnt a blocker bug because there is a simple work-around. He can sign-up through email. And a user can continue using the app. The bug is critical.
Suppose that a user can tweet media content, like images, gifs, videos and audios. If a user cannot tweet any images Its a critical bug because key business logic doesnt work
Major bug is a failure of a secondary or additional feature. And it has a workaround. The main functionality works but some small functionality doesnt. The other case is when a feature works not in a way it should have.
For example, a user cant change the avatar. Its a major bug because defect is not in key business logic and we can continue test the app without new avatar
Minor defect influence on minor functionality or non-critical data. The key business logic works correctly If there is a minor bug in a feature it means that its difficult to use or it looks bad.
For instance, a user can change avatar (min size is 600x600). If a user can upload avatar with size less than min (500 x 500), its minor bug because the issues is not in key business logic- main part of this feature works correctly, but the validation rules are missing
Trivial bug is not as serious as previous ones. All business logic works correctly. They are easy to detect and to fix. They are usually design mistakes or misspellings, missed hover on element, placeholder in input is not align by center or lag of animation on old devices.
There are more categories, but we prefer this classification, as it covers all needed issues and of course, because we use Jira.
Types of testing
Software testing is always responsible. We do not test code, we test how it works. After a feature has been implemented QA engineers perform Functional tests. These tests check how the logic works. After that, we run UI tests. They are needed to see if the interface is in line with the chosen design and standards (guidelines). In the end of each sprint, there is a software smoke testing, it has to prove that the main business logic has been implemented correctly and works seamlessly along with the main functionality.
QA testing services
Basic development testing is a check after which there are no blocker and critical bugs. After advanced development testing, QA specialists detect all major bugs (if there are any) and developers fix them.
Basic and advanced testing are already included in the price of the development and customers dont pay for them.
After these basic and advanced checks, a quality product should not have any blocker, critical, major defects. But it can have few minor and some trivial defects.
In case a minor or trivial bug is easy to see and a QA engineer finds it, developers fix them as well and a customer doesnt have to pay extra for that.
See no difference between Basic and Advanced testing? Press here, we explained it in detail in our research!
Sometimes basic testing is enough. If we take a look at the most popular and successful startups, a very common practice here is to apply only basic testing. As they dont care about bugs, they only need a proof of concept.
Im sure youve heard about one dollar shave club, do you remember how they started? The startup created a small website, which crashed after a week of work because of a huge number of people who wanted to get a great shaver only for a dollar. The point is, that the site wasnt tested properly, thats why it crashed a lot at first. But it wasnt important as the main idea of any startup is to valid the idea even if it doesnt work perfectly. In that case small or even middle severity bags are irrelevant.
If you have an idea which you need to valid, you can use Product Hunt platform. Here, you can publish a raw application to prove the concept even if the program doesnt work perfectly. Small bugs are acceptable here.
On the other hand, Techcrunch can be also used to promote a new product. However, the platform accepts only bugs free software with no bugs at all. If you choose this service, youre going to need test automation done.
Test automation is needed if the project is vast, complex and its development takes longer than 1,000 - 1,200 hours. If the test is needed, a QA engineer writes a test (code) that checks some big parts of the code, part of complex logic or a template scenario. This type of testing within a few minutes does the same amount of work as a manual QA engineer in a day. However, test automation is necessary only if the project is really big, otherwise, it will take more time than the manual check.
Enterprise testing is needed for complex enterprise systems, like banking or insurance software platforms. The product has to be perfectly debugged, as any defect can lead to a real problem. There are two software testing standards that we follow running enterprise testing:
International software testing standards
These doctrines declare how the testing process should be performed, what IT quality assurance standards the product should be based on and what external and internal metrics it should have.
Want to know more about testing and quality assurance at Cleveroad? Here is more useful information for you!
Enterprise software development testing is required if you develop SAAS and PAAS. Modern customers demand the highest software quality assurance standards. Which means a product has to be absolutely debugged. Such systems also require software quality assurance and test automation as you need to exclude human factor and be sure that during the updates you wont lose already implemented logic.
Why do you need maintenance?
Project maintenance is highly demanded for the quality of a product. The development process and A/B testing dont cover all possible situations which will happen to the launched application or web software.
After the product has been released some trivial or even minor bugs can be detected. For instance, if a user has a very old phone or uses not a very popular browser, which wasnt included in a testing list. In such case, QA services are needed. If a customer needs 20 and fewer hours of QA services a week, we call it maintenance. If a customer needs more, it is considered as development. Maintenance hours are not included in a fixed price and customer has to pay for the service.
Watch our video about the development process at Cleveroad and how we create software!
Test automation and enterprise testing are not included in fixed price. They are paid according to Time and Material contract. These types of testing demand only highly qualified QA engineers with special skills. Moreover, these checks require longer time and take many more men/hours.
With this article, we wanted to shed light on such a needed stage of a product delivery as Testing. The quantity and quality of testing depend on the type of your project. If its a startup or a prototype which has to validate your idea and persuade investors, then you can save some money on testing because basic and advanced testing is enough here. If you build a software system for an enterprise, you should understand that software quality assurance and testing and maintenance are as important as the development itself. Write us and tell what you want to develop, we are looking forward to new ideas and new people to work with.
Subscribe to our blog if you dont want to miss our research about top 10 open source Android libraries on Github that can dramatically accelerate the development process!