This article will specifically focus on the testing portion of the development process. It is an essential and often overlooked part of this process and it will explain what software quality assurance or Software QA is, why it is an important part of the development process, how to do it and links to an overview of automated testing (a useful tool in QA). At the end of this article, a CSC301 student would have the basic understandings of Software QA and would be able to look into a career in the Software QA field.
Quality Assurance, Quality Control and Testing — the Basics of Software Quality Management
This paper is likely the greatest paper about software QA, however it is quite long. Here are some of the main definitions and key takeaways:
- In order to make sure the released software is safe and functions as expected, the concept of software quality was introduced. It is often defined as “the degree of conformance to explicit or implicit requirements and expectations”.
- The purpose of QA is to set up adequate processes, introducing the standards of quality to prevent the errors and flaws in the product. This is slightly different to testing where the purpose is to detect and solve software errors and flaws.
- There are different levels of software testing: component/unit testing, integration testing, system testing, and acceptance testing.
What does a Software Quality assurance engineer do?
This article gives a tease of what a software QA engineer is like, the different types of SQA engineers and their duties and responsibilities. It is the right article to figure out if you want a career in this field or you are interested in QA.
Testing is a vital part of the software development life cycle. This very entertaining video shows what events prompted the creation of software testing and how it has changed. The first few minutes of the video is what I would like to call attention to. It highlights the importance of software testing as far back as 1999 with the "Y2K" problem. Every software engineer should know about this.
There are many reasons why software testing is important. This blog 7 reasons why software testing is important summarizes it into 7 different reasons:
- Helps in Saving money: Finding a bug, especially when it is found early in the development process reduces costs considerably.
- Security: Oftentimes software can be vulnerable to attack, or the information of users can be stolen. It is important to avoid this with proper testing.
- Quality of product: The product should function in a complete manner to ensure effective customer experience.
- Satisfaction of the Customer: This should be the primary objective of the owner and if the customer is not happy then they will use another product.
- Enhance the development process: Quality assurance allows for the developer to find a wide array of scenarios and errors.
- Easy while adding new features: When changing old code it can sometimes break it without the developer knowing. Testing is a great way to give the developer some confidence when adding a new feature.
- Determining the performance of the software: If your application has a low or reduced performance, it will bring a bad reputation in the market. Software testing can help identify these issues before users do.
This article describes how you should think about creating test cases. It describes a test case vs test scenario, the various types of test cases and then, more importantly, a 10 step guide on how to write a test cases.
Now that you know how to think about creating test cases it is important to also know how to write a test case. More specifically, how to describe the test case so it is easily understood. This is extremely useful for anyone who develops test. This is one of the skills that separates the good SQA engineers from the great ones. Here is a short blog on how to write your test cases.
This article provides a nice overview of automated testing, which is an important tool in QA testing.