Week 5 – CST438 Software Engineering Summarize in a few sentences what you have learned this week. From our textbook, this week we learned about larger testing. Large tests cover things that unit tests cannot. Unit tests make use of test doubles to eliminate hard to test dependencies. Issues can arise when replacing doubles with the real thing. Unit tests are also limited to the imagination of the engineer who writes them. This means that the test will only test for anticipated behaviors and inputs. In the real world, users come across unanticipated issues. Another detail restricting unit tests is the environment in which it is implemented which is designed to be fast and reliable. This deliberately eliminates the chaos of real dependencies, networks, and data. In contrast, large tests provide reassurance that the overall system works as intended by verifying the behavior of the system in a more realistic environment. From our group project (iteration 2), I increased my underst...
Posts
Showing posts from July, 2025
- Get link
- X
- Other Apps
Week 4 – CST438 Software Engineering What is the most interesting thing you have learned in your reading of "Software Engineering at Google"? I really enjoy reading our textbook “Software Engineering at Google.” It covers software engineering topics in detail, and it demonstrates how it is implemented in the real world by one of the biggest tech companies today. So far, we have covered the topics “What is SE?” (Software Engineering), “Testing Overview,” and “Code Reviews.” All chapters have interesting information that is relevant to the course. From “What is SE,” I learned the difference between “software engineering” and “programming.” Programming is about producing code and software engineering is the maintenance of that code for the duration of the code’s lifespan. We must produce sustainable software which requires us to respond to changes in dependencies, technology, or product requirements. From “Testing Overview,” I learned that testing is essential to produce...
- Get link
- X
- Other Apps
Week 3 – CST438 Software Engineering Describe what are the good points about using Git for source code management. What are possible problems that Git merge does not solve when merging code from different developers? Git is a VCS or version control system that developers can use to keep track of changes to software source code files. The reason version control is important in software engineering is that a project will require you to manage different versions during development. Different versions of the project might have different bug fixes or features, and Git offers a way to merge the different changes together. Git allows you to create commits, which are snap shots of a project at a specific time, of your files in a git repository. You can also return to any past commit in your project using git revert or git reset commands. You can keep track of these commits using the git log command. Another good point about using Git for source code management is that you can...
- Get link
- X
- Other Apps
Week 2 – CST438 Software Engineering In lab 1 on Junit you used a Mock. In your own words describe what a Mock is and why it is useful in unit testing. Mocks are objects or behaviors used as stand ins for other components during a Junit test. Mocks are useful in unit testing because they allow us to simulate the normal function of a component by providing predefined responses to method calls rather than performing the actual logic or operation. When using mocks, you eliminate the unpredictability that comes with interactions with other components. The goal with unit testing is to isolate the unit being tested. With mocks you can generate tests that are controlled and predictable. Mocks allow us to avoid real interactions with outside components which can potentially modify data. This eliminates the need to reset data back to its original state after the test is completed. Another useful attribute of mocks in unit testing is that it allows the unit test to be dependab...