Introduction to The Role of Software Testers in Ensuring Quality and Process

In 1979, a well-known rule in the software industry highlighted the importance of testing by stating that about 50% of the time and over 50% of the total cost of a typical programming project were spent on testing. Despite advancements in programming languages and development systems, testing continues to play a crucial role in software development projects today.

The primary responsibility of a software tester is to find errors and bugs in software. Testing includes four levels which are unit testing, integration testing, system testing, acceptance testing, and regression testing. However, the profession is sometimes misunderstood as being “low-level,” while programming is often considered “high-level.”

In reality, software testing is a vital stage of software development. Quality inspection contributes to the overall success of a project by ensuring the delivery of high-quality, complete products, building trust, and enhancing a company’s reputation.

To excel as a software tester, one must possess the following qualities:

  • Proficiency in at least one programming language to effectively work with source code.
  • Strong foundation in design, programming, and analysis for accurate diagnoses.
  • Good English language skills for reading, understanding, and writing specialized documents.
  • Meticulous attention to detail to catch even minor errors.
  • Broad perspective encompassing both developer and end-user viewpoints, supported by continuous learning and staying updated on market trends.

Definitions of testing

  1. Unit testing: This type of testing verifies that individual code units perform their intended functions as required.
  2. Shakeout testing: This type of testing assesses the capabilities, data connections, and interactions of network systems. It is typically conducted by the Configuration Management Team (CMT) while setting up the actual test environments. Shakeout testing identifies any abnormal behavior in key software components and is performed before executing tests in the test environment. Following shakeout testing, smoke testing is performed by testers in the test environment.
  3. Smoke testing (Ad-hoc testing): Performed when the compiled code is ready for execution in the test environment, smoke testing is an initial, rough check to ensure the main functions are working as expected. This type of testing marks the beginning of the testing process by QA Testers. Once smoke testing is complete, testers proceed with evaluating the performance of individual functions.
  4. Functional testing: This type of testing verifies that each function of the application works according to the documentation requirements. Functional testing constitutes around 80% of the testing process, making it the primary focus of the testers. During functional testing, test cases are executed to ensure the application behaves as intended.
  5. Integration testing: This type of testing checks whether all modules are effectively combined and produce the expected results, as per the requirements document. Integration testing is performed after individual programmers complete their work on different modules, and the Configuration Management Team integrates them for compilation. Testers ensure that these combined modules function as required.
  6. Regression testing: Regression testing is performed to ensure that newly added functionality does not negatively impact other parts of the application or previously fixed bugs. By conducting this type of repeated testing, testers can verify that any changes or updates do not introduce new issues or break existing functionalities.
  7. System testing: After testers have completed their work in test environments using test data, system testing is performed to ensure the application functions correctly in real-world environments with actual data. This step is crucial because certain aspects of the application may not be fully testable or manipulable within a controlled testing environment. As a result, system testing aims to identify and resolve any potential issues that may arise when transitioning from the test environment to the production environment, where differences in databases and other factors may impact the application’s behavior.
  8. Load testing: This type of testing evaluates the application’s response time for a specific number of users interacting within the same context of the application simultaneously. Load testing helps ensure the system can handle expected user loads and maintain adequate performance levels.
  9. Stress testing: Stress testing assesses the application’s response time for various numbers of users engaging in different contexts of the application concurrently. This type of testing is designed to gauge the system’s capabilities under various load scenarios and identify potential performance bottlenecks or limitations.
  10. Performance testing: Focusing on factors like input complexity, query length, and data weight, performance testing evaluates the application’s responsiveness, stability, and overall performance under a given load. The primary goal of this type of testing is to identify opportunities to improve the application’s efficiency, security, and load-handling capabilities.
  11. User acceptance testing (UAT): In this phase, the software is tested by users to determine if it meets their expectations and functions as intended. User acceptance testing can be performed by internal testers or the customer’s own testing team, allowing for valuable feedback from the end-users’ perspective.
  12. Black box testing: A testing method where the tester examines the application without considering its internal code structure, focusing solely on external specifications and behavior. In this type of testing, also known as behavioral testing, only the application’s external behavior is evaluated and analyzed. This approach ensures that the software functions as expected from the end-user’s perspective, regardless of the underlying code implementation.
  13. White box testing: Examines an application’s internal code structure, design, and implementation to validate functionalities. Also known as structural, open box, clear box, or code-based testing, it ensures internal components work correctly and helps identify potential issues or vulnerabilities. Testers use techniques like statement, branch, and path coverage to evaluate the codebase systematically.
  14. Alpha testing involves users trying out the application at a designated location while the developer observes and notes relevant information or user actions. This type of testing helps identify any unusual system behavior, allowing the developer to address and correct issues before the software’s broader release.
  15. Beta testing is when a test version of the software is released for users to try in their work environments. During this phase, users can provide feedback and report any errors they encounter to the developer, allowing for further improvements and refinements before the final software release.

Distinguish between QA and QC

ISO 9000:2000 standard defines “Quality management is the combined activities to control an organization in establishing policies, quality objectives, determining operational processes, and necessary resources to ensure quality assurance and improvement”.

QA (Quality Assurance) and QC (Quality Control) are two fundamental components of quality management, and they serve different purposes:

Quality Assurance (QA): Focuses on preventing defects and ensuring quality throughout the development process. It involves establishing and implementing processes, standards, and procedures to ensure products or services meet customer requirements and expectations. QA is proactive and process-oriented, aiming to eliminate potential issues before they arise.

Quality Control (QC): Focuses on identifying and correcting defects in products or services. It involves measuring, examining, and testing product characteristics to determine whether they meet the desired quality standards. QC is reactive and product-oriented, identifying issues after they occur and working to rectify them.

Some specific activities related to quality management:

Quality management

ISO 9000:2000 standard

  • Quality check:

“Measuring, examining, testing one or more product characteristics and comparing the results with the requirements to conclude conformity or nonconformity”

This method exists as soon as there are activities of producing products and exchanging goods.

Quality control is a passive activity.

  • Quality control:

“Are the operational activities and techniques  used to meet quality requirements “

Quality control is the identification, control, and adjustment of all factors that directly affect the process of creating quality so that those factors are maintained or only fluctuate at a certain level. By managing these factors and maintaining them within an acceptable range, the overall quality of the product is guaranteed.

Several critical factors contribute to effective quality control:

a) Human resources

b) Equipment

c) Methods and processes

d) Raw materials

e) Environment

  • Quality management system:

“Quality management system is the organizational structure, procedures, processes and resources necessary to carry out quality management work”. The eight fundamental principles guiding quality management are:

Principle 1: Customer and market focus

Principle 2: Leadership

Principle 3: Employee involvement

Principle 4: Process approach

Principle 5: Systems approach to management

Principle 6: Continuous improvement

Principle 7: Data-driven decision making

Principle 8: Mutually beneficial supplier relationships

  • Quality assurance system:

“A quality management system in which all activities are carried out in a planned, systematic manner and, when necessary, can demonstrate that the enterprise has the real ability to satisfy quality requirements.”

  • Comprehensive quality control:

An effective system for integrating the quality development, quality maintenance, and quality improvement combines the efforts of of various groups into one organization so that marketing, engineering, and manufacturing activities and service can be carried out in the most cost-effective manner, allowing complete customer satisfaction.

  • Total quality management (TQM):

“A way of managing an organization, based on the participation of all members to focus on solving quality problems to achieve long-term success through customer satisfaction and benefits for members. of the organization itself and of society.”

Quality management systems:

  1. ISO 9001:2000 Quality Management System (QMS): Provides a framework for organizations to consistently meet customer requirements and enhance customer satisfaction through process improvements and effective quality management.
  2. ISO 14001:1996 Environmental Management System (EMS): Offers guidance on managing an organization’s environmental responsibilities and reducing its impact on the environment. Note that ISO 14001 has been updated since 1996, with the most recent version being ISO 14001:2015.
  3. Hazard Analysis and Critical Control Points (HACCP): A systematic preventive approach to food safety that addresses physical, chemical, and biological hazards in production processes to ensure safe food production.
  4. Good Manufacturing Practices (GMP): Guidelines for ensuring that products are consistently produced and controlled according to quality standards, reducing the risks involved in pharmaceutical and food production.
  5. SA 8000 Social Responsibility Management System: A standard for managing social responsibility in the workplace, promoting ethical and safe working conditions, and protecting workers’ rights.

Quality certification – system certification

  1. Conformity assessment and certification: The process of verifying whether a product, service, or system meets specified requirements, standards, or regulations.
  2. Product quality conformity certification: Ensures that products meet relevant quality standards before entering the market.
  3. Standards for quality certification organizations: Establish the requirements and guidelines that organizations providing certification services must adhere to, ensuring the reliability and credibility of their assessments.
  4. Quality management system recognition: Recognizing and promoting organizations that have successfully implemented quality management systems, meeting specific criteria or standards, to demonstrate their commitment to quality and continuous improvement.