{"id":120,"date":"2018-07-03T13:42:49","date_gmt":"2018-07-03T13:42:49","guid":{"rendered":"https:\/\/159.69.80.24\/blog\/why-you-need-qa\/"},"modified":"2025-10-21T11:39:28","modified_gmt":"2025-10-21T11:39:28","slug":"why-you-need-qa","status":"publish","type":"post","link":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/","title":{"rendered":"Why You Need QA and How It Can Save Your Money"},"content":{"rendered":"<p>So, we should first decide what we\u2019re talking about: we\u2019re not talking about how QA engineers do their job. We are talking about why Quality Assurance is an essential part of <a href=\"https:\/\/djangostars.com\/services\/web-development\/\">software development<\/a> and the way we operate at Django Stars.<br \/>\nLet\u2019s start with some definitions.<br \/>\n<strong>Quality Assurance engineers<\/strong> aim to help create quality <a href=\"https:\/\/djangostars.com\/digital-product-engineering-services\/\">digital products<\/a>. It\u2019s not about finding bugs, not about simple testing. The main function of a QA engineer is to prevent defects, and therefore ensure the quality of the development process and its results. This is a broad statement, so in this article, I will try to cover a few specifics to help you understand what does QA stand for in business.<br \/>\n<strong>Defect<\/strong> aka <strong>bug<\/strong> is a flawed piece of code that causes the system to fail to perform its required function. It doesn\u2019t always mean that something doesn\u2019t work. It may just work incorrectly.<br \/>\n<strong>So what do QA engineers do? They:<\/strong><\/p>\n<ul>\n<li>identify weaknesses and inconsistencies in the product at all project stages;<\/li>\n<li>help define project requirements;<\/li>\n<li>provide comprehensive information about the level of quality of a product;<\/li>\n<li>test the product during all phases of the software development lifecycle (SDLC).<\/li>\n<\/ul>\n<p>It\u2019s important to note that QAs are interested in making any product user-friendly, be it functionality or design. For this, QAs closely communicate with all team members and constantly refer to the given requirements.<br \/>\nNow, let\u2019s study all the stages in which QAs are involved, their roles in those stages, and the business value their work brings.<\/p>\n<h2 id=\"header1\">When do you need QA?<\/h2>\n<p>In this part, I will describe what QAs do and why QA testing is important. The stages I\u2019ll describe are common (and generalized) parts of the software testing life cycle (STLC).<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-487\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe9.png\" alt=\"software testing life cycle\" width=\"1600\" height=\"788\" \/><\/p>\n<h3 id=\"header2\">Stage 1 \u2013 Requirements Gathering<\/h3>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-486\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe8.png\" alt=\"stage 1\" width=\"1600\" height=\"384\" \/><br \/>\nThis is the most important stage in the <a href=\"https:\/\/djangostars.com\/blog\/django-pytest-testing\/\">testing Python app<\/a> process, in my opinion. During the first meeting, clients describe in general what they want. They outline the functionality of the desired app or service and what features it should include, but rarely the technologies they want it to include.<br \/>\nIn many companies, the examination of functional requirements is the job of <a href=\"https:\/\/djangostars.com\/blog\/business-analyst-in-software-development\/\">business analysts<\/a> (BAs). However, they can\u2019t guarantee the compatibility of the technical components. That\u2019s why BAs share this stage with other experts, including QAs. The tasks of the latter include: (1) analyzing and deciding whether the requirements can be integrated within a single system; (2) which solutions will work and which ones won\u2019t; (3) planning the required software development testing stages and techniques (more on that below).<br \/>\n<strong>Validation<\/strong> is the process of evaluating a product before the development starts to find out whether the product will meet the users\u2019 expectations, and if the idea is worth putting effort into.<br \/>\nDuring this stage, QAs collaborate with BAs to research the degree to which a software product can satisfy users\u2019 needs. Basically, they check whether product makes sense to the users and the market. It\u2019s critical to gather feedback from users to see what\u2019s missing or what can be improved (design, features, etc.) to provide a better user experience.<br \/>\nUnless this validation occurs, the product may never reach its audience, even though it may be great from a technical point of view. This stage also ensures that the product will deliver profit to the client. Otherwise, why bother in the first place?<br \/>\n<!--[related-post id=\"1287\"]--><\/p>\n<h3 id=\"header3\">Stage 2 \u2013 Test Planning<\/h3>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-485\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe7.png\" alt=\"stage 2\" width=\"1600\" height=\"388\" \/><br \/>\nDuring this stage, QAs define the testing strategy. By defining strategy, I mean making time and effort estimates for the entire project (= software product). After the requirements analysis, QAs create a document known as the Test Plan. It includes the project\u2019s deliverables, its scope and objective, responsible roles, and defines the testing environment.<br \/>\nIf not for this stage, the testing process would be full of unexpected obstacles and contingencies. To ensure further stages follow a strict sequence of action, the QA\u2019s job is to make up and document the plan of action. Otherwise, the process itself might be clumsy.<\/p>\n<h3 id=\"header4\">Stage 3 \u2013 Test Development<\/h3>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-484\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe6.png\" alt=\"stage 3\" width=\"1600\" height=\"384\" \/><br \/>\nNow that we have a Test Plan, we set up a test environment and create test cases. A test case is a set of steps we need to take to validate whether the software product is bug-free and works according to the specified requirements. After this, we think of the Acceptance Criteria \u2013 that is, the technical standard that a software product should meet to be successful.<\/p>\n<h3 id=\"header5\">Stage 4 \u2013 Test Execution<\/h3>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-483\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe5.png\" alt=\"stage 4\" width=\"1600\" height=\"372\" \/><br \/>\nDespite the importance of the previous software testing stages, most believe that the QA\u2019s only job is the execution of all test cases, based on the plan to which we turn now.\u00a0If some part of a system works well, we mark it as Passed. In this way, we can ensure that we are not missing any details and the product is a quality one.<br \/>\nIf a test case fails, it means there\u2019s a defect in code, and the QAs send a report back to developers so they can check out what\u2019s going on.<\/p>\n<h3 id=\"header6\">Stage 5 \u2013 Test Reporting<\/h3>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-482\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe4.png\" alt=\"stage 5\" width=\"1600\" height=\"406\" \/><br \/>\nAfter the product is tested, it\u2019s time to discuss what was OK, what went wrong, and whether should QA report to the development team or not. If issues were detected, each of them must be well documented to ensure fast bug fixes without any misunderstandings from developers\u2019 side. I will tell you later about the most common techniques QAs use to test products from different perspectives.<br \/>\nWhat is a testing cycle? It\u2019s the frequency with which we conduct these five test stages \u2013 that is, each sprint.<br \/>\n<div class=\"article-linking \">\n    <div class=\"article-linking-background\" style=\"background-image: url(https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2019\/05\/8_1_bg.png)\">\n\n    <\/div>\n    <div class=\"article-linking-content \">\n        <img decoding=\"async\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/themes\/ds-new-blog\/assets\/img\/ds-logo-white.svg\" alt=\"logo\" class=\"article-linking-logo\">\n        <h3 class=\"article-linking-caption\">\n\t\t\tMake sure your product is <u>perfect.<\/u>\t\t\t                <p class=\"article-linking-caption--small\">\n                    Hire an experienced QA team.                <\/p>\n                    <\/h3>\n\t\t            <div class=\"article-link-wrapper\">\n                <a href=\"https:\/\/djangostars.com\/services\/#quality-assurance\" target=\"_blank\">Learn more<\/a>\n            <\/div>\n\t\t    <\/div>\n<\/div>\n<\/p>\n<h2 id=\"header7\">Specifics of a QA\u2019s job<\/h2>\n<p>Most <a href=\"https:\/\/djangostars.com\/blog\/working-with-ukrainian-it-companies\/\">ukrainian software companies<\/a>, Django Stars included, work in <strong>sprints<\/strong> \u00ad\u2013 two weeks with a set list of tasks to be done. During each sprint, we implement some parts of the product requirements and complete all five stages of testing. It\u2019s important that you understand that testing is not just trying every possible way to engage with a product. Surely, it\u2019s that too, but usually there\u2019s only so much you can do with a system.<\/p>\n<p>Unless QAs are involved in the development process, it may later appear that the development team made something that works, and works really well, but not what was originally intended. It also helps reduce the time needed to devise new test cases, because the earlier we understand what we\u2019re going check and how, the easier it is to conduct such testing. It\u2019s crucial for the development and QA specialist teams to work together, otherwise it may turn into a who-can-find-more-bugs fight. This rarely leads to quality results.<\/p>\n<p>Now that I\u2019ve told you about the Software Testing Life Cycle, I want to summarize why every team needs a QA:<\/p>\n<ul>\n<li><strong>Secure business.<\/strong> You have a payment system, and it works just fine. A user pays for a service and gets it. However, you didn\u2019t check certain cases and the money goes not to you, but to a random bank account. This is big, and fatal, especially if we\u2019re talking about thousands of dollars.<\/li>\n<li><strong>Save money.<\/strong> The diagram below clearly shows the correlation between life-cycle stages and costs. It\u2019s more expensive to fix a bug than to prevent it. Fixing one bug may create another one, soo problems can escalate quickly.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-481\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe3.png\" alt=\"cost of fixing software bugs\" width=\"1600\" height=\"962\" \/><\/p>\n<ul>\n<li><strong>Protect your reputation.<\/strong> If you launch a buggy product and a user has a bad experience with it, it will be very difficult to persuade them that the problem is gone and they can use the product again. Rule of thumb: first impressions are hard to change.<\/li>\n<li><strong>Ensure the product\u2019s quality.<\/strong> Without testing it inside out, the product may not work properly or not work at all. Testing stuff requires theoretical knowledge, so it\u2019s difficult to assure quality if you\u2019re not a professional.<\/li>\n<li><strong>Monitor the process.<\/strong> Unless the development process is being controlled to align with the specified requirements, the final product may be different from the one planned.<\/li>\n<\/ul>\n<p>You\u2019ll notice that I use the word testing a lot. That\u2019s because there\u2019s a separate discipline known as <strong>Quality Control<\/strong> (QC). In the next part, which I call <strong>The QA\u2019s Work<\/strong>, I will tell you the difference between QA and QC, the correlation between SDLC and STLC, and give a detailed description of some of the testing techniques that QA engineers use.<br \/>\nRead more: <a href=\"https:\/\/djangostars.com\/blog\/roles-in-the-sdlc\/\">SDLC roles and responsibilities<\/a><\/p>\n<h2 id=\"header8\">The QA<\/h2>\n<h3 id=\"header9\">Quality Assurance and Quality Control<\/h3>\n<p>Quality Control encompasses all activities that ensure that a product is of good quality and meets specific requirements. QC software engineers focus on identifying defects in the developed products before their release. We can say that <a href=\"https:\/\/djangostars.com\/blog\/ace-project-use-specification-by-example\/\">Quality Assurance<\/a> encompasses Quality Control.<br \/>\nThere are some cases when a product doesn\u2019t require QA, but only QC. For example, if a team gets a product developed by somebody else and it is necessary to check whether the code meets the requirements, we have a case when only QC is required.<br \/>\nIn some development teams, QA and QC are combined with other engineering roles. Sometimes, developers try to verify their own code. However, it\u2019s not good in regards to quality, because it\u2019s much more difficult to find bugs in your own code than in somebody else\u2019s.<\/p>\n<h3 id=\"header10\">Software Development and Testing Life Cycle<\/h3>\n<p>It\u2019s a simple message I want to convey: <strong><em>development and testing must always be synchronous.<\/em><\/strong> At Django Stars, we don\u2019t divide the testing stages without accounting for what developers are doing at that moment. The team, as a single unit, is responsible for the product. Unless development and testing are done simultaneously, there can be delays and inconsistencies, and thus low-quality products.<br \/>\nI hope I have managed to convince you about the importance of both processes \u2013 SDLC and STLC \u2013 being conducted together. Now we\u2019ll move on to some popular test design techniques that QA engineers use to assure the quality of a software product.<\/p>\n<h3 id=\"header11\">QA Testing Techniques<\/h3>\n<p><strong>Test case<\/strong> (or simply test) is a step-by-step approach to testing the functionality of a software product. Basically, it\u2019s <strong><em>what and how we\u2019re going to test.<\/em><\/strong><br \/>\n<strong>Test design technique<\/strong> is a process for selecting tests that will validate that a software product meets the specifications before its release.<br \/>\nThere are various test design techniques, and each of them identifies defects of a certain type. That\u2019s why the choice for the required techniques depends on (1) the type of a product, (2) its status, and (3) requirements.<br \/>\nThe picture below shows the most common test design techniques.<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-479\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe1.png\" alt=\"the most common test design techniques\" width=\"800\" height=\"907\" \/><br \/>\nLet\u2019s take a closer look at each of techniques and cases where we need them.<\/p>\n<ul>\n<li><strong>Static.<\/strong> This technique tests the source code, functional and requirement specifications before the code goes live. This technique identifies structural defects. It\u2019s not a one-time thing, so we try to start conducting it at earlier stages of the <a href=\"https:\/\/djangostars.com\/blog\/software-development-process\/\">software development process<\/a>.<\/li>\n<li><strong>Structure-based.<\/strong> We use structure-based techniques when we have full access to the code. To put it simply, these techniques deal with the internal logic and structure of the code. These tests help identify wrong or missing logic and typos in the code.<\/li>\n<li><strong>Specification-based.<\/strong> Also known as Black-box testing, this is a testing technique that examines the functionality of a software product without studying the code. Based on the requirements, we select appropriate test design techniques that help us derive test cases.<\/li>\n<li><strong>Experience-based.<\/strong> More of an auxiliary technique, this allows QAs to test the software based on their previous experience with similar systems.<\/li>\n<\/ul>\n<p>I believe that you now see the theoretical basis one must have to be able to conduct quality testing. The number of required hard QA engineer skills makes it close to impossible for a non-QA person to assure the quality of a software product.<\/p>\n<h2 id=\"header12\">Bottom Line<\/h2>\n<p>No matter how simple a product may seem, there\u2019s a ton of work under the hood of quality software. As Don Norman points out, \u201cGood design is actually a lot harder to notice than poor design.\u201d In most cases, QA engineers make it possible for people to enjoy good products by checking to see if everything works well.<br \/>\nIf we consider the role of QA in software development life cycle, we will notice that it includes lots of activities, from testing to reviewing the results. Most products need QA engineers to (1) set a mature development process, (2) ensure the quality of the released software, and (3) prevent errors in the system before users find them. QAs use various techniques to check whether a system meets all the specified requirements and operates as it \u2018should\u2019.<br \/>\nIt\u2019s not easy to test a system without special skills, and even an experienced developer unlikely will succeed in it. That\u2019s why the best teams have QAs and developers working together; they can combine their skills in the pursuit of quality software. We use such an expert combination at Django Stars, and our <a href=\"https:\/\/djangostars.com\/case-studies\/\">projects<\/a> speak of its effectiveness. <b>If you are interested in cooperation, please fill out the <a href=\"https:\/\/djangostars.com\/get-in-touch\/\">get in touch form<\/a>.<\/b><br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-480\" src=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2018\/12\/qwe2.png\" alt=\"qa infographic\" width=\"1600\" height=\"3402\" \/><br \/>\n<div class=\"lead-form-wrapper lets_disqus\">\n    <div class=\"lead-form transparent-footer\">\n        <p class=\"discuss-title paragraph-discuss col-md-12\">Have an idea? Let&#039;s discuss!<\/p>\n\n        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f2589-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"2589\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/blog\/wp-json\/wp\/v2\/posts\/120#wpcf7-f2589-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<div style=\"display: none;\">\n<input type=\"hidden\" name=\"_wpcf7\" value=\"2589\" \/>\n<input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.0.6\" \/>\n<input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/>\n<input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f2589-o1\" \/>\n<input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/>\n<input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<input type=\"hidden\" name=\"form_start_time\" value=\"1775586004\" \/>\n<input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/div>\n<div class=\"form_holder\">\n    <div class=\"input_section input_row\">\n        <div class=\"input_holder\">\n                            <span class=\"input_label\">\n                               Your name *\n                            <\/span>\n            <input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"text-898\" \/>\n\n            <input class=\"wpcf7-form-control wpcf7-hidden\" id=\"uniq_ga_id\" value=\"\" type=\"hidden\" name=\"uniq_ga_id\" \/>\n        <\/div>\n        <div class=\"input_holder\">\n                            <span class=\"input_label\">\n                                Your email *\n                            <\/span>\n            <input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" id=\"your-email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"email-882\" \/>\n        <\/div>\n    <\/div>\n    <div class=\"input_section single_input_row\">\n        <div class=\"input_holder\">\n            <span class=\"input_label\">How can we help you? *<\/span>\n            <input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"message\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"message\" \/>\n        <\/div>\n    <\/div>\n    <div class=\"file_attach\">\n        <input size=\"40\" class=\"wpcf7-form-control wpcf7-file\" accept=\"audio\/*,video\/*,image\/*\" aria-invalid=\"false\" type=\"file\" name=\"file-930\" \/>\n        <div class=\"file_placeholder\">\ud83d\udcce <span>Attach File<\/span>\n            <span class=\"file_formats\">Formats: pdf, doc, docx, rtf, ppt, pptx.<\/span><\/div>\n    <\/div>\n    <div class=\"checkbox_row\">\n        <div class=\"single_checkbox\"><div class=\"checkbox_indicator\"><div class=\"checked_indicator\"><svg width=\"14\" height=\"12\" viewBox=\"0 0 14 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.66804 12L0 7.26951L1.22426 6.05269L4.54927 9.40456L12.6737 0L14 1.10613L4.66804 12Z\" fill=\"#1E232C\"\/><\/svg><\/div><\/div><input type=\"checkbox\" name=\"agree\" id=\"privacy\" value=\"agree privacy\"><label for=\"privacy\" class=\"\">I have read and accepted <a href=\"https:\/\/djangostars.com\/privacy-policy\/\" style=\"margin-left: 6px;\"> Privacy Policy*<\/a><\/label><\/div>\n        <div class=\"single_checkbox\"><div class=\"checkbox_indicator\"><div class=\"checked_indicator\"><svg width=\"14\" height=\"12\" viewBox=\"0 0 14 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.66804 12L0 7.26951L1.22426 6.05269L4.54927 9.40456L12.6737 0L14 1.10613L4.66804 12Z\" fill=\"#1E232C\"\/><\/svg><\/div><\/div><input type=\"checkbox\" name=\"agree\" id=\"marketing\" value=\"agree for marketing\"><label for=\"marketing\" class=\"\">I agree to receive marketing content from Django Stars<\/label><\/div>\n    <\/div>\n    <div class=\"submit\"><button type=\"submit\"><span>send message<\/span><\/button><div class=\"safeguard\">We safeguard your privacy<\/div><\/div>\n<\/div>\n<div style=\"position: absolute; left: -5000px;\" aria-hidden=\"true\">\n    <input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"website_url\" \/>\n<\/div><script type='text\/javascript'>\n\n\t\t\t\t\t\tif(contactform === undefined){\n\t\t\t\t\t\t\tvar contactform = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar innerVal = [2589,'mail_sent_ok','Thank you for your message. It has been sent.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'mail_sent_ng','There was an error trying to send your message. Please try again later.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'validation_error','One or more fields have an error. Please check and try again.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'spam','There was an error trying to send your message. Please try again later.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'accept_terms','You must accept the terms and conditions before sending your message.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_required','The field is required.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_too_long','The field is too long.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_too_short','The field is too short.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'upload_failed','There was an unknown error uploading the file.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'upload_file_type_invalid','You are not allowed to upload files of this type.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'upload_file_too_large','The file is too big.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'upload_failed_php_error','There was an error uploading the file.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_date','The date format is incorrect.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'date_too_early','The date is before the earliest one allowed.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'date_too_late','The date is after the latest one allowed.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_number','The number format is invalid.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'number_too_small','The number is smaller than the minimum allowed.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'number_too_large','The number is larger than the maximum allowed.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'quiz_answer_not_correct','The answer to the quiz is incorrect.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_email','The e-mail address entered is invalid.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_url','The URL is invalid.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'invalid_tel','The telephone number is invalid.'];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\tvar innerVal = [2589,'gdpr',''];\n\t\t\t\t\t\tcontactform.push(innerVal);\n\t\t\t\t\t\t<\/script><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n    <\/div>\n\n    <div class=\"success_disqus\">\n        Thank you for your message.\n        <span>We\u2019ll contact you shortly<\/span>.\n    <\/div>\n<\/div>\n\n<script>\n    \/\/ (function ($) {\n    function click_input() {\n        jQuery('.file_placeholder').on('click', function () {\n            jQuery(this).parent().find('input').click();\n        })\n    }\n\n    document.addEventListener(\"DOMContentLoaded\", click_input);\n\n    \/\/ })(jQuery)\n<\/script>\n\n\n<br \/>\n<div class=\"dj-main-article-faq\" style=\"padding-top: 0px;\">\n\t\t<div class=\"dj-main-article-faq-title\">\n\t\tFrequently Asked Questions\n\t\t<\/div>\n\t\t<div class=\"dj-main-article-faq-items\">\n\t\t\t<div class=\"dj-main-article-faq-accordeon accordeon\"><dl>\n\t\t\t\t<dt>What are the duties and responsibilities of a quality assurance engineer? \n\t\t\t\t<div class=\"cross\">\n\t\t\t\t<span><\/span>\n\t\t\t\t<span><\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<\/dt>\n\t\t\t\t<dd><p>The main function of a QA engineer is to prevent defects, and therefore ensure the quality of the development process and its results. QA engineers:<\/p> <ul> <li>identify weaknesses and inconsistencies in the product at all project stages;<\/li> <li>help define project requirements;<\/li> <li>provide comprehensive information about the level of quality of a product;<\/li> <li>test the product during all phases of the software development lifecycle (SDLC).<\/li><\/ul><\/dd>\n\t\t\t<\/dl><dl>\n\t\t\t\t<dt>What's the difference between QA and QC? \n\t\t\t\t<div class=\"cross\">\n\t\t\t\t<span><\/span>\n\t\t\t\t<span><\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<\/dt>\n\t\t\t\t<dd>Quality Control (QC) encompasses all activities that ensure that a product is of good quality and meets specific requirements. QC software engineers focus on identifying defects in the developed products before their release. We can say that Quality Assurance (QA) encompasses Quality Control. In some cases, a product doesn\u2019t require QA, but only QC.<\/dd>\n\t\t\t<\/dl><dl>\n\t\t\t\t<dt>What is needed for good quality assurance? \n\t\t\t\t<div class=\"cross\">\n\t\t\t\t<span><\/span>\n\t\t\t\t<span><\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<\/dt>\n\t\t\t\t<dd>Development and testing must always be synchronous. At Django Stars, we don\u2019t divide the testing stages without accounting for what developers are doing at that moment. The team, as a single unit, is responsible for the product. Unless development and testing are done simultaneously, there can be delays and inconsistencies, and thus low-quality products.<\/dd>\n\t\t\t<\/dl><dl>\n\t\t\t\t<dt>Can a quality assurance engineer take on additional responsibilities? \n\t\t\t\t<div class=\"cross\">\n\t\t\t\t<span><\/span>\n\t\t\t\t<span><\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<\/dt>\n\t\t\t\t<dd>.<p>Speaking about the responsibilities of a QA in a team, it makes sense to keep in mind the tasks that he solves. They may be as follows:<\/p> <ul> <li>Secure business<\/li> <li>Save money<\/li> <li>Protect your reputation<\/li> <li>Ensure the product\u2019s quality<\/li> <li>Monitor the process<\/li><\/ul> <p>In some development teams, QA and QC are combined with other engineering roles. Sometimes, developers try to verify their own code. However, it\u2019s not good in regards to quality, because it\u2019s much more difficult to find bugs in your own code than in somebody else\u2019s.<\/p><\/dd>\n\t\t\t<\/dl><\/div>\n\t\t\t<\/div>\n\t\t<\/div><\/p>\n<div id=\"chromeExtensionIsInstalled\" style=\"display: none;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>So, we should first decide what we\u2019re talking about: we\u2019re not talking about how QA engineers do their job. We are talking about why Quality Assurance is an essential part of software development and the way we operate at Django Stars. Let\u2019s start with some definitions. Quality Assurance engineers aim to help create quality digital [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3421,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[87,40],"tags":[24],"class_list":["post-120","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digitalization","category-tech-consultation","tag-quality-assurance"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Software Development Blog &amp; IT Tech Insights | Django Stars<\/title>\n<meta name=\"description\" content=\"Learn about the Quality Assurance and how preventing problems (instead of fixing them) can save your reputation and money on the software products market.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/posts\/120\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why You Need QA and How It Can Save Your Money\" \/>\n<meta property=\"og:description\" content=\"Learn about the Quality Assurance and how preventing problems (instead of fixing them) can save your reputation and money on the software products market.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Development Blog &amp; IT Tech Insights | Django Stars\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/djangostars\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/profile.php?id=100000782607809\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-03T13:42:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-21T11:39:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"620\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Iryna Meshchankina\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@djangostars\" \/>\n<meta name=\"twitter:site\" content=\"@djangostars\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Iryna Meshchankina\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/\"},\"author\":{\"name\":\"Iryna Meshchankina\",\"@id\":\"https:\/\/djangostars.com\/blog\/#\/schema\/person\/5fc19c60d45b28d6f3345e67cd75a404\"},\"headline\":\"Why You Need QA and How It Can Save Your Money\",\"datePublished\":\"2018-07-03T13:42:49+00:00\",\"dateModified\":\"2025-10-21T11:39:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/\"},\"wordCount\":2226,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg\",\"keywords\":[\"Testing\"],\"articleSection\":[\"Digitalization\",\"Tech Consultation\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/\",\"url\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/\",\"name\":\"Why You Need QA and How It Can Save Your Money\",\"isPartOf\":{\"@id\":\"https:\/\/djangostars.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg\",\"datePublished\":\"2018-07-03T13:42:49+00:00\",\"dateModified\":\"2025-10-21T11:39:28+00:00\",\"author\":{\"@id\":\"https:\/\/djangostars.com\/blog\/#\/schema\/person\/5fc19c60d45b28d6f3345e67cd75a404\"},\"description\":\"Learn about the Quality Assurance and how preventing problems (instead of fixing them) can save your reputation and money on the software products market.\",\"breadcrumb\":{\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage\",\"url\":\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg\",\"contentUrl\":\"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg\",\"width\":1440,\"height\":620,\"caption\":\"Why-You-Need-QA\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/djangostars.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why You Need QA and How It Can Save Your Money\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/djangostars.com\/blog\/#website\",\"url\":\"https:\/\/djangostars.com\/blog\/\",\"name\":\"Software Development Blog &amp; IT Tech Insights | Django Stars\",\"description\":\"Welcome behind the scenes of software product development. We share our best practices, tech solutions, management tips, and every useful insight we\u2018ve got while working on our projects.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/djangostars.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/djangostars.com\/blog\/#\/schema\/person\/5fc19c60d45b28d6f3345e67cd75a404\",\"name\":\"Iryna Meshchankina\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/djangostars.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/91e7ee894e413bae2051a2f78f37dee0210b642a04d3ff9e6d4733d2b83697d8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/91e7ee894e413bae2051a2f78f37dee0210b642a04d3ff9e6d4733d2b83697d8?s=96&d=mm&r=g\",\"caption\":\"Iryna Meshchankina\"},\"sameAs\":[\"https:\/\/www.facebook.com\/profile.php?id=100000782607809\",\"https:\/\/www.linkedin.com\/in\/iryna-meshchankina\/\"],\"url\":\"https:\/\/djangostars.com\/blog\/author\/iryna-meshchankina\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Software Development Blog &amp; IT Tech Insights | Django Stars","description":"Learn about the Quality Assurance and how preventing problems (instead of fixing them) can save your reputation and money on the software products market.","canonical":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/posts\/120","og_locale":"en_US","og_type":"article","og_title":"Why You Need QA and How It Can Save Your Money","og_description":"Learn about the Quality Assurance and how preventing problems (instead of fixing them) can save your reputation and money on the software products market.","og_url":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/","og_site_name":"Software Development Blog &amp; IT Tech Insights | Django Stars","article_publisher":"https:\/\/www.facebook.com\/djangostars\/","article_author":"https:\/\/www.facebook.com\/profile.php?id=100000782607809","article_published_time":"2018-07-03T13:42:49+00:00","article_modified_time":"2025-10-21T11:39:28+00:00","og_image":[{"width":1440,"height":620,"url":"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg","type":"image\/jpeg"}],"author":"Iryna Meshchankina","twitter_card":"summary_large_image","twitter_creator":"@djangostars","twitter_site":"@djangostars","twitter_misc":{"Written by":"Iryna Meshchankina","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#article","isPartOf":{"@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/"},"author":{"name":"Iryna Meshchankina","@id":"https:\/\/djangostars.com\/blog\/#\/schema\/person\/5fc19c60d45b28d6f3345e67cd75a404"},"headline":"Why You Need QA and How It Can Save Your Money","datePublished":"2018-07-03T13:42:49+00:00","dateModified":"2025-10-21T11:39:28+00:00","mainEntityOfPage":{"@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/"},"wordCount":2226,"commentCount":0,"image":{"@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage"},"thumbnailUrl":"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg","keywords":["Testing"],"articleSection":["Digitalization","Tech Consultation"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/djangostars.com\/blog\/why-you-need-qa\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/","url":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/","name":"Why You Need QA and How It Can Save Your Money","isPartOf":{"@id":"https:\/\/djangostars.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage"},"image":{"@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage"},"thumbnailUrl":"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg","datePublished":"2018-07-03T13:42:49+00:00","dateModified":"2025-10-21T11:39:28+00:00","author":{"@id":"https:\/\/djangostars.com\/blog\/#\/schema\/person\/5fc19c60d45b28d6f3345e67cd75a404"},"description":"Learn about the Quality Assurance and how preventing problems (instead of fixing them) can save your reputation and money on the software products market.","breadcrumb":{"@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/djangostars.com\/blog\/why-you-need-qa\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#primaryimage","url":"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg","contentUrl":"https:\/\/djangostars.com\/blog\/wp-content\/uploads\/2021\/12\/Why-You-Need-QA.jpg","width":1440,"height":620,"caption":"Why-You-Need-QA"},{"@type":"BreadcrumbList","@id":"https:\/\/djangostars.com\/blog\/why-you-need-qa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/djangostars.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Why You Need QA and How It Can Save Your Money"}]},{"@type":"WebSite","@id":"https:\/\/djangostars.com\/blog\/#website","url":"https:\/\/djangostars.com\/blog\/","name":"Software Development Blog &amp; IT Tech Insights | Django Stars","description":"Welcome behind the scenes of software product development. We share our best practices, tech solutions, management tips, and every useful insight we\u2018ve got while working on our projects.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/djangostars.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/djangostars.com\/blog\/#\/schema\/person\/5fc19c60d45b28d6f3345e67cd75a404","name":"Iryna Meshchankina","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/djangostars.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/91e7ee894e413bae2051a2f78f37dee0210b642a04d3ff9e6d4733d2b83697d8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/91e7ee894e413bae2051a2f78f37dee0210b642a04d3ff9e6d4733d2b83697d8?s=96&d=mm&r=g","caption":"Iryna Meshchankina"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=100000782607809","https:\/\/www.linkedin.com\/in\/iryna-meshchankina\/"],"url":"https:\/\/djangostars.com\/blog\/author\/iryna-meshchankina\/"}]}},"_links":{"self":[{"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/posts\/120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":12,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/posts\/120\/revisions"}],"predecessor-version":[{"id":9919,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/posts\/120\/revisions\/9919"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/media\/3421"}],"wp:attachment":[{"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/media?parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/categories?post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/djangostars.com\/blog\/wp-json\/wp\/v2\/tags?post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}