Category Archives: Week-17

Shift Left Approach


 For my last blog post for this class, I found an article online that
talks about the practice of shifting-left in software quality assurance.
This approach more or less emphasizes the importance of introducing quality
assurance to earlier phases in the development process. Testing from the
initial phase of development is supposed to prevent the amount of defects
and issues from piling up at the end of development. Having testing done
throughout the development phases can also lessen the workload for the
quality assurance team.

https://hackernoon.com/embracing-the-shift-left-approach-revolutionizing-quality-assurance-in-software-development

According to the article, the cost of testing and post-production vastly
outweighs the cost of development and planning. It posits that testing
earlier and more frequently catches bugs earlier on, and reduces the overall
cost of development. This goes very hand in hand with the agile software
development methodology we learned about last semester. The world of
software development has become much more fast paced, and the current
landscape pushes for finished products with minimal defects at
launch. 

I  have seen online the mentality that a product that ships with any
problems is often ostracized. Consumers want minimal issues and problems
when interacting with any kind of software, and that goes doubly for large
companies. Having software testers involved since the start of development
would allow teams a more seamless development experience.

One model for development that the article proposes has each stage of
development separated by a quality check gate, in which test cases are
implemented. When all defects are found and fixed, only then can the
development team move on to the next stage of the process. I think this a
very good system that could fit well within the agile sprint methodology.
Leave time at the end of the sprint, but before the sprint retrospective,
for the quality assurance team to check the code, then at the retrospective
they can sign off on the state of the project. If there are any bugs that
could not be fixed within this sprint, the testers can assign it as an issue
for the next one. 

During the Development Capstone project, this could be used to manage the
teams next semester. Have team members focus on quality assurance near the
end of the sprint, and then collect their feedback at the sprint
retrospective. Another way would be to have one or two teams act as quality
assurance throughout the whole semester. Either way it could save a bit of
headaches for everyone.

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Shift Left Approach


 For my last blog post for this class, I found an article online that
talks about the practice of shifting-left in software quality assurance.
This approach more or less emphasizes the importance of introducing quality
assurance to earlier phases in the development process. Testing from the
initial phase of development is supposed to prevent the amount of defects
and issues from piling up at the end of development. Having testing done
throughout the development phases can also lessen the workload for the
quality assurance team.

https://hackernoon.com/embracing-the-shift-left-approach-revolutionizing-quality-assurance-in-software-development

According to the article, the cost of testing and post-production vastly
outweighs the cost of development and planning. It posits that testing
earlier and more frequently catches bugs earlier on, and reduces the overall
cost of development. This goes very hand in hand with the agile software
development methodology we learned about last semester. The world of
software development has become much more fast paced, and the current
landscape pushes for finished products with minimal defects at
launch. 

I  have seen online the mentality that a product that ships with any
problems is often ostracized. Consumers want minimal issues and problems
when interacting with any kind of software, and that goes doubly for large
companies. Having software testers involved since the start of development
would allow teams a more seamless development experience.

One model for development that the article proposes has each stage of
development separated by a quality check gate, in which test cases are
implemented. When all defects are found and fixed, only then can the
development team move on to the next stage of the process. I think this a
very good system that could fit well within the agile sprint methodology.
Leave time at the end of the sprint, but before the sprint retrospective,
for the quality assurance team to check the code, then at the retrospective
they can sign off on the state of the project. If there are any bugs that
could not be fixed within this sprint, the testers can assign it as an issue
for the next one. 

During the Development Capstone project, this could be used to manage the
teams next semester. Have team members focus on quality assurance near the
end of the sprint, and then collect their feedback at the sprint
retrospective. Another way would be to have one or two teams act as quality
assurance throughout the whole semester. Either way it could save a bit of
headaches for everyone.

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Shift Left Approach


 For my last blog post for this class, I found an article online that
talks about the practice of shifting-left in software quality assurance.
This approach more or less emphasizes the importance of introducing quality
assurance to earlier phases in the development process. Testing from the
initial phase of development is supposed to prevent the amount of defects
and issues from piling up at the end of development. Having testing done
throughout the development phases can also lessen the workload for the
quality assurance team.

https://hackernoon.com/embracing-the-shift-left-approach-revolutionizing-quality-assurance-in-software-development

According to the article, the cost of testing and post-production vastly
outweighs the cost of development and planning. It posits that testing
earlier and more frequently catches bugs earlier on, and reduces the overall
cost of development. This goes very hand in hand with the agile software
development methodology we learned about last semester. The world of
software development has become much more fast paced, and the current
landscape pushes for finished products with minimal defects at
launch. 

I  have seen online the mentality that a product that ships with any
problems is often ostracized. Consumers want minimal issues and problems
when interacting with any kind of software, and that goes doubly for large
companies. Having software testers involved since the start of development
would allow teams a more seamless development experience.

One model for development that the article proposes has each stage of
development separated by a quality check gate, in which test cases are
implemented. When all defects are found and fixed, only then can the
development team move on to the next stage of the process. I think this a
very good system that could fit well within the agile sprint methodology.
Leave time at the end of the sprint, but before the sprint retrospective,
for the quality assurance team to check the code, then at the retrospective
they can sign off on the state of the project. If there are any bugs that
could not be fixed within this sprint, the testers can assign it as an issue
for the next one. 

During the Development Capstone project, this could be used to manage the
teams next semester. Have team members focus on quality assurance near the
end of the sprint, and then collect their feedback at the sprint
retrospective. Another way would be to have one or two teams act as quality
assurance throughout the whole semester. Either way it could save a bit of
headaches for everyone.

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Shift Left Approach


 For my last blog post for this class, I found an article online that
talks about the practice of shifting-left in software quality assurance.
This approach more or less emphasizes the importance of introducing quality
assurance to earlier phases in the development process. Testing from the
initial phase of development is supposed to prevent the amount of defects
and issues from piling up at the end of development. Having testing done
throughout the development phases can also lessen the workload for the
quality assurance team.

https://hackernoon.com/embracing-the-shift-left-approach-revolutionizing-quality-assurance-in-software-development

According to the article, the cost of testing and post-production vastly
outweighs the cost of development and planning. It posits that testing
earlier and more frequently catches bugs earlier on, and reduces the overall
cost of development. This goes very hand in hand with the agile software
development methodology we learned about last semester. The world of
software development has become much more fast paced, and the current
landscape pushes for finished products with minimal defects at
launch. 

I  have seen online the mentality that a product that ships with any
problems is often ostracized. Consumers want minimal issues and problems
when interacting with any kind of software, and that goes doubly for large
companies. Having software testers involved since the start of development
would allow teams a more seamless development experience.

One model for development that the article proposes has each stage of
development separated by a quality check gate, in which test cases are
implemented. When all defects are found and fixed, only then can the
development team move on to the next stage of the process. I think this a
very good system that could fit well within the agile sprint methodology.
Leave time at the end of the sprint, but before the sprint retrospective,
for the quality assurance team to check the code, then at the retrospective
they can sign off on the state of the project. If there are any bugs that
could not be fixed within this sprint, the testers can assign it as an issue
for the next one. 

During the Development Capstone project, this could be used to manage the
teams next semester. Have team members focus on quality assurance near the
end of the sprint, and then collect their feedback at the sprint
retrospective. Another way would be to have one or two teams act as quality
assurance throughout the whole semester. Either way it could save a bit of
headaches for everyone.

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Shift Left Approach


 For my last blog post for this class, I found an article online that
talks about the practice of shifting-left in software quality assurance.
This approach more or less emphasizes the importance of introducing quality
assurance to earlier phases in the development process. Testing from the
initial phase of development is supposed to prevent the amount of defects
and issues from piling up at the end of development. Having testing done
throughout the development phases can also lessen the workload for the
quality assurance team.

https://hackernoon.com/embracing-the-shift-left-approach-revolutionizing-quality-assurance-in-software-development

According to the article, the cost of testing and post-production vastly
outweighs the cost of development and planning. It posits that testing
earlier and more frequently catches bugs earlier on, and reduces the overall
cost of development. This goes very hand in hand with the agile software
development methodology we learned about last semester. The world of
software development has become much more fast paced, and the current
landscape pushes for finished products with minimal defects at
launch. 

I  have seen online the mentality that a product that ships with any
problems is often ostracized. Consumers want minimal issues and problems
when interacting with any kind of software, and that goes doubly for large
companies. Having software testers involved since the start of development
would allow teams a more seamless development experience.

One model for development that the article proposes has each stage of
development separated by a quality check gate, in which test cases are
implemented. When all defects are found and fixed, only then can the
development team move on to the next stage of the process. I think this a
very good system that could fit well within the agile sprint methodology.
Leave time at the end of the sprint, but before the sprint retrospective,
for the quality assurance team to check the code, then at the retrospective
they can sign off on the state of the project. If there are any bugs that
could not be fixed within this sprint, the testers can assign it as an issue
for the next one. 

During the Development Capstone project, this could be used to manage the
teams next semester. Have team members focus on quality assurance near the
end of the sprint, and then collect their feedback at the sprint
retrospective. Another way would be to have one or two teams act as quality
assurance throughout the whole semester. Either way it could save a bit of
headaches for everyone.

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Shift Left Approach


 For my last blog post for this class, I found an article online that
talks about the practice of shifting-left in software quality assurance.
This approach more or less emphasizes the importance of introducing quality
assurance to earlier phases in the development process. Testing from the
initial phase of development is supposed to prevent the amount of defects
and issues from piling up at the end of development. Having testing done
throughout the development phases can also lessen the workload for the
quality assurance team.

https://hackernoon.com/embracing-the-shift-left-approach-revolutionizing-quality-assurance-in-software-development

According to the article, the cost of testing and post-production vastly
outweighs the cost of development and planning. It posits that testing
earlier and more frequently catches bugs earlier on, and reduces the overall
cost of development. This goes very hand in hand with the agile software
development methodology we learned about last semester. The world of
software development has become much more fast paced, and the current
landscape pushes for finished products with minimal defects at
launch. 

I  have seen online the mentality that a product that ships with any
problems is often ostracized. Consumers want minimal issues and problems
when interacting with any kind of software, and that goes doubly for large
companies. Having software testers involved since the start of development
would allow teams a more seamless development experience.

One model for development that the article proposes has each stage of
development separated by a quality check gate, in which test cases are
implemented. When all defects are found and fixed, only then can the
development team move on to the next stage of the process. I think this a
very good system that could fit well within the agile sprint methodology.
Leave time at the end of the sprint, but before the sprint retrospective,
for the quality assurance team to check the code, then at the retrospective
they can sign off on the state of the project. If there are any bugs that
could not be fixed within this sprint, the testers can assign it as an issue
for the next one. 

During the Development Capstone project, this could be used to manage the
teams next semester. Have team members focus on quality assurance near the
end of the sprint, and then collect their feedback at the sprint
retrospective. Another way would be to have one or two teams act as quality
assurance throughout the whole semester. Either way it could save a bit of
headaches for everyone.

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Understanding Object-Oriented Testing

In the realm of software development, testing plays a crucial role in ensuring the reliability, functionality, and quality of the final product. As software systems become increasingly complex, traditional testing methods may not suffice, particularly in object-oriented (OO) programming environments. This blog explores the intricacies of OO testing and its significance in software engineering practices.

Summary of Object-Oriented Testing

Object-oriented testing focuses on validating the interactions, behaviors, and integrity of objects, classes, and their relationships within an OO system. Unlike traditional testing methods that primarily test individual functions, OO testing addresses the unique challenges posed by OO programming, such as data dependencies, inheritance, polymorphism, and dynamic binding.

The blog outlines various techniques used in OO testing, including:

  • Fault-based testing: Identifying faults in the design or code and creating test cases to uncover errors.
  • Class testing based on method testing: Testing each method of a class to ensure its functionality.
  • Random testing: Developing random test sequences to mimic real-world scenarios.
  • Partition testing: Categorizing inputs and outputs to test them thoroughly.
  • Scenario-based testing: Stimulating user actions to test interaction patterns.

Moreover, the blog highlights the purposes of OO testing, such as validating object interactions, identifying design errors, assessing code reusability, handling exceptions, and maintaining system uniformity.

Purpose of Object Oriented Testing

  1. Object Interaction Validation: Ensure that objects interact appropriately with each other in various situations.
  2. Determining Design Errors: Identify limitations and faults in the object-oriented design, focusing on inheritance, polymorphism, encapsulation, and other OOP concepts.
  3. Finding Integration Problems: Evaluate an object’s ability to integrate and communicate within larger components or subsystems, locating issues such as improper method calls or data exchange problems.
  4. Assessment of Reusable Code: Evaluate the reusability of object-oriented code, ensuring that reusable parts perform as intended in different scenarios, leveraging features like inheritance and composition.
  5. Verification of Handling Exceptions: Confirm that objects respond correctly to error circumstances and exceptions, ensuring the software is resilient and durable.
  6. Verification of Uniformity: Maintain consistency within and between objects and the overall object-oriented system, enhancing maintainability and readability by following naming standards, coding styles, and design patterns.

Personal Reflection

While traditional software testing emphasizes system-level functionality and performance, object-oriented testing focuses on validating interactions and behaviors within OO systems. Both resources underscored the importance of rigorous testing in software engineering, albeit with different approaches.

In my future practice, I intend to incorporate elements from both traditional and object-oriented testing methodologies. By applying fault-based testing, random testing, and scenario-based testing techniques from OO testing, I aim to identify and rectify potential errors early in the development process. Additionally, I will continue to emphasize comprehensive system testing to ensure software meets user requirements and quality standards.

Understanding both traditional and object-oriented testing methodologies equips me to contribute effectively to the creation of high-quality software solutions. By integrating the insights gained from both resources, I am confident in my ability to enhance software testing practices and deliver reliable software products in today’s dynamic software development landscape.

Source: https://www.geeksforgeeks.org/object-oriented-testing-in-software-testing/

From the blog CS@Worcester – CS: Start to Finish by mrjfatal and used with permission of the author. All other rights reserved by the author.

Exploring the World of System Testing

In the realm of software development, ensuring the quality and reliability of a software solution is paramount. One crucial aspect of this process is system testing. In this blog post, we’ll delve into what system testing entails, its process, types, tools used, as well as its advantages and disadvantages.

What is System Testing?

System Testing is a vital phase in software development, where the complete and integrated software solution is evaluated to ensure it meets specified requirements and is suitable for end-users. It’s conducted after integration testing and before acceptance testing, focusing on both functional and non-functional aspects.

System Testing Process

System Testing involves several steps:

  1. Test Environment Setup: Creating a testing environment for quality testing.
  2. Creating Test Cases: Generating test cases for the testing process.
  3. Creating Test Data: Generating data for testing.
  4. Executing Test Cases: Running test cases using the generated data.
  5. Defect Reporting: Detecting and reporting system defects.
  6. Regression Testing: Testing for side effects of the testing process.
  7. Log Defects: Logging and fixing detected defects.
  8. Retesting: Repeating tests if unsuccessful.

Types of System Testing

  1. Performance Testing: Evaluates speed, scalability, stability, and reliability.
  2. Load Testing: Determines system behavior under extreme loads.
  3. Stress Testing: Checks system robustness under varying loads.
  4. Scalability Testing: Tests system performance in scaling up or down.

Tools used for System Testing

Several tools aid in system testing, including JMeter, Selenium, HP Quality Center/ALM, and more. The choice depends on factors like technology used, project size, and budget.

Advantages of System Testing

  • Ensures comprehensive testing of the entire software.
  • Validates technical and business requirements.
  • Detects and resolves system-level problems early.
  • Improves system reliability and quality.
  • Enhances collaboration between teams.
  • Increases user confidence and reduces risks.

Disadvantages of System Testing

  • Time-consuming and expensive.
  • Requires good debugging tools.
  • Dependent on quality of requirements and design documents.
  • Limited visibility into internal workings.
  • Can be impacted by external factors like hardware configurations.

Personal Reflection

This resource has equipped me with valuable insights into system testing, which I believe will greatly enhance my job hunting process in software development. Understanding the various testing processes, types, and tools will make me a more competitive candidate, allowing me to target roles that specifically require expertise in system testing. Additionally, knowing the advantages and disadvantages of system testing will help me assess potential job opportunities more effectively, ensuring alignment with my skills and preferences. As I have seen many open roles looking for Software Q&A applicants.

Source: https://www.geeksforgeeks.org/system-testing/

From the blog CS@Worcester – CS: Start to Finish by mrjfatal and used with permission of the author. All other rights reserved by the author.

Finding Your Different Road in Career

Introduction

In the journey of our careers, it’s not uncommon to reach a point where the road we’ve been traveling no longer feels right. Maybe it’s the urge for more time with family, the pursuit of a new passion, or simply a desire for change. Whatever the reason, it’s important to recognize that diverging from the familiar path doesn’t mean getting lost.

Sometimes, after diligently following the path laid out before us, we realize that it’s not leading where we want to go. The “Different Road” pattern acknowledges this pivotal moment, encouraging us to reflect on what truly matters to us.

Letting Go of the Long Road:

Embracing change often means bidding farewell to the familiar. Whether it’s stepping away from a successful career in software development or leaving behind a role we’ve invested years into, it can be daunting. However, the pattern reminds us that this departure doesn’t have to be permanent. Instead, it’s an opportunity to explore new horizons and grow in unexpected ways.

One of the most valuable aspects of taking a different road is recognizing that the journey doesn’t erase the experiences we’ve accumulated. Like Dave, who transitioned from family therapy back to technology, our skills and insights remain with us. Whether we’re teaching, parenting, or pursuing other passions, the problem-solving mindset and analytical skills we honed as software developers enrich our new endeavors.

Navigating Challenges

Leaving the Long Road might come with its own set of challenges. Some may fear judgment or difficulty reentering the software development field after a hiatus. However, as Larry’s journey illustrates, the skills acquired in one domain are often highly transferable. Additionally, the experiences gained from pursuing other interests can bring fresh perspectives and creativity to our work when we return.

If you find yourself considering a different road, start by exploring what else you might enjoy doing. List potential jobs or pursuits that intrigue you and speak to people who are already on those paths. Hearing about their experiences and comparing them with what you love about software development can provide valuable insights.

Conclusion

Embracing change in our careers can be both exhilarating and challenging. However, by recognizing when the Long Road is no longer the right path for us and bravely venturing onto a different road, we open ourselves up to new possibilities and opportunities for growth. So, if you’re feeling the pull of a different road, remember, it’s okay to take that leap. Your journey is yours to define, and the experiences you gain along the way will shape you in ways you never imagined possible.

From the blog CS@Worcester – CS: Start to Finish by mrjfatal and used with permission of the author. All other rights reserved by the author.

Drawing Your Own Career Map

Have you ever felt like your career path doesn’t quite fit the mold provided by your employer or the traditional trajectory laid out by society? You’re not alone. In fact, many professionals find themselves in this position, yearning for something more but unsure of how to break free from the constraints imposed by their current roles.

Enter the concept of “Drawing Your Own Map.” This pattern, inspired by real-life stories and experiences, encourages individuals to take the reins of their career paths and chart a course that aligns with their aspirations, interests, and values.

Imagine this: you’re at a crossroads in your career, feeling dissatisfied with the options presented to you. You realize that your employer’s idea of your career path doesn’t quite match your own vision. What do you do? You draw your own map.

This concept urges you to identify an ambitious yet logical next step for your career, irrespective of what your employer or career counselor may suggest. It’s about taking ownership of your professional journey and understanding that you have the power to shape it.

But how do you go about it? Start by visualizing the smaller, interim steps needed to move forward. These steps may seem insignificant at first, but they generate the momentum necessary to propel you toward your goals. It’s about taking that first terrifying step, even without a perfect plan, and trusting that you’ll figure it out along the way.

One of the most thought-provoking aspects of this pattern is its emphasis on defining small, achievable goals. By breaking down your aspirations into manageable tasks, you not only make progress but also gain valuable feedback that informs your journey.

Perhaps what’s most inspiring about this approach is its recognition that there’s no one-size-fits-all path to success. Each individual’s career map is unique, shaped by personal values, interests, and circumstances. It’s about finding your own route through the wilderness, even if it means deviating from the norm.

Now, you might be thinking, “But what about external constraints? What if economic conditions or family responsibilities limit my options?” Valid concerns indeed. The pattern acknowledges these challenges but encourages you to find creative solutions and challenge accepted norms.

In conclusion, drawing your own career map is about embracing personal agency, taking calculated risks, and continuously adapting to change. It’s about recognizing that your professional journey is yours and yours alone, and you have the power to redefine it at any time. So, grab a pen and start drawing your map. Who knows where it might take you?

From the blog CS@Worcester – CS: Start to Finish by mrjfatal and used with permission of the author. All other rights reserved by the author.