Skip to content

Latest commit

 

History

History

CS320

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

"Students will apply software engineering testing strategies and practices as part of the software development lifecycle, including requirements analysis, verification and validation, and quality management. The creation of unit tests and analysis of various testing approaches will also be covered." - Course Description of CS-320: Software Testing, Automation, and Quality Assurance

Projects

  • The Case Study: is the project that I developed throughout the course. It is a Java library that implements an in-memory database where information is stored with a unique String ID and a corresponding abstract data type as its value. The intresting stuff comes in where I use the JUnit 5 Unit Testing Framework to demonstrate that the library did its computations correctly.
  • The final paper is where I document my experiences programming the in-memory database and writing public class that take the place of a C/C++ struct to store properties of a "kind" of thing. Strings (and a java.util.Date object) define what makes for an abstract type, storing information that is in accordance with constraints supplied by design documentation in the form of project requirements.

Reflection

I want to address prompts asked by the portfolio project:

How can I ensure that my code, program, or software is functional and secure?

The main way to ensure that software is correct is to demonstrate it with software testing. In the case of Java programming, I used the JUnit Framework to demonstrate that the software behaved in the way that it is expected to. There are more sophisticated methods, like provably correct systems, that can be employed to give a final proof that software is correctly implemented.

How do I interpret user needs and incorporate them into a program?

To incorporate a user's needs into a computer program, I need to borrow ideas from social science. I will start by conducting market research which will lead to me to identify a problem. I would then formalise that problem, and then define project requirements and constraints.

How do I approach designing software?

After interpreting a user's needs into a program, or rather project requirements and constraints, I like to come up with a "caveman" intuitive approach with a procedure "built in" ex post without a general solution. I would use tools like flowcharts and UML diagrams to help develop a general solution. I would then implement the solution while employing a number of software engineering strategies (discussed in chapter 3 of Filho 2017). I would then develop the software and test it with automation software testing frameworks. The process would repeat itself until the software is mature enough, as defined by project requirements and constraints, to be deployed to the end user.

Coursework

* Note that: I accidently wrote "CS-330" where I should have written "CS-320."

References

  • Filho, W. F. (2017). Computer Science Distilled: Learn the Art of Solving Computational Problems. Code Energy.