Thursday, August 20, 2015

CBOK: Understanding Quality Control









Common Body of Knowledge: Understanding Quality Control
By Trevor Carter

  




   Quality Control focuses on identify defects/issues in the software by executing test scripts. Test scripts help identify weaknesses within the software.

   
  Until I studied the Common Body of Knowledge from the Quality Assurance Institute I did not relate quality control to test execution. As a matter of fact, I always related quality assurance to the actual testing process. After reading and understanding QAI’s definition of quality control it made more sense to identify test execution with control, whereas quality assurance is about creating activities that evaluate processes that help produce the software.
  

  While it is possible to have quality control without quality assurance, I have found by experience that this is not ideal to producing quality software. If there are no guidelines in place (processes and procedures), getting good quality control is like throwing darts at a dart board blindfolded.


  There are many activities involved with quality control. You have both manual test execution and automated test execution. The more complex and robust the software is, the more likely you’re going to need both manual and automated tests to fully engage the software. Both types of testing require analysis. Metrics need to be in place to measure success and failure. The great thing about automated tests is that repeatable tests don’t have to be manually tested, which can be time consuming. Having automated tests allows manual testers to focus on new functionality. Automated tests can focus on existing functionality that ports over from one release to the next.


  Below is a list that differentiates quality control from quality assurance: 

  •   Quality control verifies the attributes of the product. It asks the question, do the results satisfy the system requirements?
  •  Quality control finds weaknesses in the software – defects/issues.
  •  Quality assurance establishes processes that help guide quality control, to produce consistent results. These processes also help in analyzing the quality control results.    
  •   Quality assurance is a management initiative. Quality assurance personnel are not involved in quality control.



  There are many different phases associated to quality control. Each phase plays a specific role in finding the weakness of the software. This is not an exhaustive list, but focuses on the main phases associated to quality control.

Functional tests: The quality control team runs specific test cases (contains the scripts) to locate weaknesses in the product, and then reports those weaknesses so that they can be addressed.

Ad-hoc/Exploratory tests: Ad-hoc testing is a creative endeavor that allows quality control personnel to get into the software without any specific test scripts. In order to perform this type of testing, testers should have a good working knowledge of the software.

Regression test: Once the initial test phases are complete the quality control team can run end-to-end tests. This phase is particularly useful for automation, as it covers a broad range of functionality.









Thursday, August 13, 2015

Software Quality Basics



Quality Control: The Life of a Mature Organization 


 Producing quality software requires that an organization have quality control in place. What is quality control? Quality control involves having processes and procedures in place to guide and direct quality assurance. From the beginning of Software Development Lifecycle (SDLC) quality should be the top priority. Getting the organization's expectations for quality in line with the client's expecations is sometimes a challenge. An organizations quality control and quality assurance standards must be flexible enough to allow the client's expectations to fit into the big picture. 

  After working as a Software Tester for over fifteen years I have learned that having good quality control is critical to creating quality software. Customer expectations of usability need to align with the software development company’s quality standards. Defects/issues don’t start when the code is being unit tested. but start with the first time an organization meets with the client to discuss their expectations. Quality control establishes parameters/guidelines for ensuring quality is met. Quality control oversees quality from the design phase all the way through installation.

  Assuring a quality piece of software starts with understanding what quality assurance is. Quality assurance creates and assesses the processes needed to produce software. Quality assurance identifies weaknesses. In addition to identifying the weaknesses, it establishes process improvements to remove those weaknesses.

  Controlling quality is a separate function from quality assurance. Controlling quality is established to identify issues in the software, and then correct them. Processes must first be put in place by quality assurance. Establishing processes is a function of quality assurance.
  Capability Maturity Model Integrated (CMMI) is a process improvement appraisal program which guides the process improvement for projects, divisions, and for the company as a whole. There are several levels to CMMI.

  Take for instance, CMMI level 3. Level 3 development model includes the following:

  1. Configuration Management
  2. Measurement and Analysis
  3. Project Planning
  4. Project Monitoring and Control
  5. Process and Product Quality Assurance
  6. Requirements Management
  7. Supplier Agreement Management

 CMMI is very much in line with quality control. Not only is process documentation required, but quality control and monitoring of processes is required. Organizations with CMMI level 3 must document processes and procedures, and have a repository for completed works (design documents, test cases, testing results). CMMI has 5 different levels of maturity (1-5). To do business with the government, a CMMI level 3 designation is required. Overall, CMMI is all about quality control.

  An organization that wants to ensure good quality assurance needs to have good quality control. Without proper quality control, quality assurance is like shooting at a target with a blindfold on. You're most likely to miss the mark on quality. Not only will your organization suffer, but the client will suffer, which means you probably won't be in business for long.

Copyright, 2015, Trevor Lang Carter