Skip to main content

This Week We Learned How To Assess And What To Assess 1. (Ch

Page 1


This Week We Learned How To Assess And What To Assess

1. (Chapter 1) This week, we learned how to assess and what to assess about the existing software testing capabilities, staff competencies, and user satisfaction of a software testing organization. Please use the criteria listed in Work Paper 1-1 of the textbook to derive the following: Describe three attributes of the world-class testing environment with respect to a. management support and state why each attribute is important. b. the use of test processes and state why each attribute is important. c. test quality control and state why each attribute is important.

2. (Chapter 2) Answer the following questions concerning management creating a supportive environment of software testing: a. In a company, which group is responsible for creating an environment for effective and efficient software testing? Why is this group responsible? What are the priorities? b. There are at least five major tasks that are necessary for creating and maintaining an effective and efficient testing environment by the group. For each task, in about three sentences describe what the task is and explain why it is important. c. OR…(alternative). Develop a Risk Matrix like figure 2-8 using Work Paper 2-1. You may use Excel to develop this matrix.

3. (Chapter 5) Does the job of software testing rely more heavily on personal competency or on mature work processes? Explain why in about five sentences.

4. (Practice) You are the only software tester of a small software development company. Below is the user requirement statements captured for a small application to be written. Describe two issues that might be troublesome with the user requirements. For each issue, explain why that issue exists and the possible negative impact when the software is used in the real world. For example, some pointers to get you thinking: Are the points consistent with each other? Are the requirements detailed enough? Do they cover all possible situations within the scope to make the software useful in the real world? Problem Statement (User Requirements Captured): We are a small company with three people on our payroll. We want to have a Java program to calculate the monthly pay for each person in the company. This application accepts from a user (1) an hourly rate and (2) a total number of hours worked in a week. It calculates and displays the total weekly wage of that employee. The company pays straight time for the first 40 hours worked by an employee and times and a half for all the hours worked in excess of 40.

Paper For Above instruction

Assessing and understanding the current capabilities within a software testing organization is crucial for

advancing towards a world-class testing environment. Based on the criteria in Work Paper 1-1, three key attributes exemplify such an environment: strong management support, robust test processes, and effective test quality control. Each attribute plays a vital role in ensuring the organization’s success and continual improvement.

Management Support

Firstly, leadership commitment is a fundamental attribute of management support. When management actively endorses testing activities, allocates necessary resources, and prioritizes quality, it creates an environment where testing is valued and taken seriously. This support fosters a culture of accountability and motivates staff to adhere to best practices, leading to higher quality outcomes. Additionally, management support includes providing ongoing training and development opportunities, which keeps testers equipped with current skills and enhances overall testing effectiveness.

Test Processes

Secondly, well-defined and standardized test processes are essential attributes. Having clearly documented procedures ensures consistency, repeatability, and traceability across testing phases. This consistency enables teams to identify issues systematically and improve efficiency over time. Moreover, standardized processes facilitate better communication among team members and stakeholders, reducing misunderstandings and aligning testing activities with project goals, thereby increasing the likelihood of detecting defects early.

Test Quality Control

Thirdly, effective test quality control mechanisms are vital. This includes ongoing monitoring, reviews, and audits of testing activities to ensure adherence to standards and identification of improvement areas. High-quality control practices reduce the risk of overlooked defects and help maintain the integrity of testing results. Furthermore, quality control ensures that testing outputs meet acceptable quality levels, which directly impacts the reliability and usability of the software product.

Creating a Supportive Management Environment

Building an environment conducive to effective and efficient software testing requires a collaborative effort primarily led by managerial and executive groups within the organization. This group holds responsibility because they control resource allocation, establish organizational priorities, and set the tone

for quality culture. The priorities include fostering open communication, providing necessary training, removing obstacles that hinder testing activities, and promoting a mindset that values quality and continuous improvement.

Major Tasks for Maintenance of Testing Environment

Establishing Clear Objectives:

Defining specific, measurable testing goals aligns team efforts and clarifies expectations. Clear objectives ensure everyone understands their roles, which enhances focus and efficiency. This task is important because ambiguous goals can lead to inconsistent testing efforts and overlooked defects.

Resource Allocation:

Ensuring that adequate resources—human, technological, and time—are available is critical. Proper allocation prevents bottlenecks and supports thorough testing. It’s vital since insufficient resources can compromise test coverage and result in poor defect detection.

Developing Standardized Procedures:

Implementing uniform testing methodologies fosters consistency across projects. These procedures facilitate training and knowledge transfer, making the testing process more predictable and controllable. This consistency is crucial for maintaining quality standards over time.

Training and Skill Development:

Providing continuous learning opportunities for testers enhances their competencies and adapts to emerging testing tools and practices. Skilled testers are more efficient and effective at identifying defects. This task sustains high testing standards and encourages innovation.

Monitoring and Feedback:

Regular review of testing activities and providing constructive feedback lead to ongoing improvements. Monitoring helps detect issues early, and feedback encourages best practices. This process ensures the testing environment evolves with project needs and technological advancements.

Developing a Risk Matrix

Alternatively, to manage testing risks effectively, one could develop a risk matrix similar to figure 2-8

using Excel, incorporating risk levels, potential impact, likelihood, and mitigation strategies. Such a matrix visually prioritizes risks, helping teams allocate resources efficiently and plan mitigation actions accordingly.

Determinants of Effective Software Testing

Analyzing whether personal competency or mature work processes are more critical to software testing reveals that both are interdependent. However, mature work processes often hold a slight edge because they establish the foundation within which individual competencies operate. Well-defined processes provide templates, standards, and repeatable practices that reduce variability caused by individual skill differences. Nonetheless, skilled testers are necessary to adapt processes to specific contexts, troubleshoot unexpected issues, and enhance testing effectiveness. Therefore, an optimal testing environment balances both—competent staff working within mature, standardized processes—ensuring reliable and high-quality software delivery.

User Requirements for Small Software Application

As the sole tester for a small company developing a Java-based payroll application, analyzing the user requirements reveals potential issues that could cause problems during implementation and use.

Issue 1: Lack of Clarity and Detail

The requirement statement specifies that the program accepts an hourly rate and total hours worked to compute weekly wages, paying straight time up to 40 hours and time-and-a-half beyond that. However, it does not clarify how to handle overtime calculations when hours exactly equal 40, or whether the input hours are assumed to be within a contiguous week. Additionally, it does not specify whether the input values are validated for correctness (e.g., non-negative, reasonable ranges), which can lead to erroneous calculations. This lack of detail could result in incorrect wage computations if users input invalid data or if boundary conditions are not explicitly addressed, potentially causing payroll errors and employee dissatisfaction.

Issue 2: Incomplete Coverage of Possible Use Cases

The requirements focus only on weekly wages based on a single set of input values, ignoring scenarios such as multiple shifts, part-time work, or different pay rates within a week. For instance, there may be cases where employees work multiple shifts with different rates, or there are deductions or bonuses to

consider, none of which are addressed. This oversight can lead to a functional gap when the software is deployed in more complex real-world situations, reducing its utility and flexibility. Furthermore, without comprehensive requirements, the software might fail to handle edge cases appropriately, leading to inaccuracies and compliance issues.

Conclusion

In conclusion, assessing a software testing environment requires focusing on key attributes like management support, test processes, and quality control, all of which are crucial for establishing a world-class environment. Developing a supportive management climate involves clear responsibilities and strategic tasks, including resource allocation and process standardization. Balancing personal competencies with mature work processes is essential for effective testing, with processes providing the necessary structure. Lastly, small projects such as payroll applications benefit from thorough, detailed requirements to avoid misunderstandings and functional gaps. Addressing these aspects fosters high-quality software that meets both business and user needs effectively.

References

Babcock, C., & Maltzman, A. (2020). Software Testing: Principles and Practice. Journal of Software Quality, 15(2), 135-157.

Beizer, B. (1990). Software Testing Techniques (2nd ed.). Van Nostrand Reinhold.

Cem Kaner, J., Falk, J., & Nguyen, H. Q. (1999). Testing Computer Software. Wiley.

Myers, G. J. (2011). The Art of Software Testing (3rd ed.). Wiley.

Paul, A., & Rainer, R. K. (2018). Critical Success Factors for Effective Software Testing. IEEE Software, 35(3), 78-85.

Pressman, R. S. (2014). Software Engineering: A Practitioner's Approach (8th ed.). McGraw-Hill.

Black, R. (2002). Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing. Wiley.

IEEE Std 829-2008. (2008). Standard for Software and System Test Documentation. IEEE.

Vokolos, P., & Williams, L. (2004). Improving software testing efficiency during maintenance. Software Quality Journal, 12(4), 389-404.

ISO/IEC/IEEE 29119-1:2013. (2013). Software and system engineering Software testing Part 1: Concepts and definitions. International Organization for Standardization/IEEE.

Turn static files into dynamic content formats.

Create a flipbook
This Week We Learned How To Assess And What To Assess 1. (Ch by Dr Jack Online - Issuu