Posts

Showing posts with the label #SoftwareQualityandTesting

Course evaluation

Image
Credits to @rossf Image Link ECOA Evidence  I've been Ken Bauer's student for almost four years in several different courses, and his teaching method has always been a breath of fresh air. From flip learning to almost conventional teaching (since you grade your own exam) he's not afraid to make changes and give students the chance to explore self learning and to take responsibility on when and how they learn the content of the course. This is a skill that is very important acquire and that is needed on a daily basis in every job in the tech field. Personally i enjoyed the Software Quality and Testing course. There are many students that might not like this method of teaching applied on this course because it requires them to take responsibilities on their own learning and some students can't handle this type of control over their own learning. No negative feedback for this course, only that maybe some classes should be online.

DevOps Part 5

After multiple DevOps related practices i could now see what the researched definitions about DevOps were talking about. I knew the theory but not the practical part of DevOps and that is whats i learned through these assignments. As part of the daily tools that DevOps teams use is Github. This tool is the one i have used the most and we also used it on this series of practices. Here are more examples of basic DevOps tools: Jenkins Github Nagios Monit ELK Consul Docker Ansible Collectd 9 Open Source DevOps Tools We Love Have you gained some appreciation for the concept of "excise tasks" and the value of those in our workplace that perform those as part of a team? 100%, without people working on these task project development and team communication could not be effective. 

DevOps Part 3

Image
Credits to @brina_blum Image Link This Exercise is mainly focused on Github. I already had a Git Account up and running, so that was a plus. "Using the SSH protocol, you can connect and authenticate to remote servers and services" (Github, 2019). With SSH keys, you can connect to GitHub without supplying your username or password at each visit. Now i just had some sort of content in the server. I added a simple hello world in html file to it. Then, SSH keys were created. Connecting to GitHub with SSH Afterwards, every change made to the actual website can be pushed to the repo and even automating the content of it with Cron helps to maintain everything up to date (continous integration).

DevOps part 2

Image
For this Exercise i decided to use a VM from work because i had issues installing one and tried on a windows based computer and had a very slow internet connection and couldn't install java nor contrab. First i updated Java version. I received some recommendations from other classmates about what server to use so i went for Lamp Server. After tit was properly installed i could run the test to verify if the server was working properly. Contrab was successfully installed.

Python Unit Testing

Image
Simple Smalltalk Testing: With Patterns : Using PyCharm with Pyunit and pytest : I used the oficial Pycharm website example, as recommended from some classmates. Pycharm Example It has a really good guide on how to do a Pytest . I liked the LinkedIn course on TDD for python but is not that good explained. I would've liked more interaction from the from the instructor. WayBackMachine site : I searched for Amazon, and this screenshot ir from 1998.

Chapters 6.1 & 6.2

Image
Credits to @4vid Image Link 1. What two properties must be satisfied for an input domain to be properly partitioned?  Completeness: The partition must cover all of the domain. Disjoint: blocks should not overlap 2. What is an Input Domain Model (IDM)? Two Approaches to Input Domain Modeling: A. Interface-based approach. 􏰀 Develop characteristics directly from individual input parameters. 􏰀 Just use properties of the domains without considering the actual function under test. B. Functionality-based approach 􏰀 Develop characteristics from a behavioral view of the program under test. 􏰀 Use your understanding of what the system should do. 3. What gives more tests, each choice coverage or pair-wise coverage? Each Choice Coverage (ECC) states that one value from each block for each characteristic must be used in at least one test case. For example, for partitions [A, B] [1, 2] we can get [A, A], [B, B], [1, 1] and [2, 2] which are clearly redundant. Pair-

Intro to DevOps

Image
Credits to @chesteralvarez Image Link What is DevOps? Is the blending of the roles of developers and operations support.  Example: In application service, developers write the code that is deployed* into application service. Operations team maintains the application server. If the application fails to work on deployment there is a knowledge gap. People with knowledge of both software development and operations are required to bridge this gap, this is where DevOps practitioners are required. deployed*: Software deployment includes all the process required for preparing a software application to run and operate in a specific environment. It involves installation, configuration, testing and making changes to optimize the performance of the software. It can either be carried out manually or through automated systems. How it is important to the software engineering process? The software development lifecycle is complex and has a number of important phases which include: Re

Chapter 4 and 5 Group

Image
Credits To @wezlar11 Image Link 1. What is “correctness” in agile processes? Correctness is a measure to a code that targets the level in which such code meets the specified requirements. Basically it checks if the code has the desired behavior. 2. Do TDD tests do a good job testing the software? TDD is very good for testing the functionally of small parts of your code as you develop. However TDD will not be able to guarantee that your tests are well thought and enough. 3. Can we automate our tests without TDD? Yes, we can create tests after the creation of our code. These tests aren’t considered as TDD but still a way of automation. 4. Can we use TDD without automating our tests? No, the whole idea of using TDD is having the ability to automate our tests due to the fact that we don’t already have a code to test. 5. What four structures do we use for test criteria? Input domains, graphs, logic expressions, and syntax descriptions. 6. What usually prevents

Chapter 4 Group Activity

Image
Credits to @crissyjarvis Image Link Answer Exercise#1 (see below) from Chapter 4 Instructions: Calc currently implements one function: it adds two integers. test-driven design to add additional functionality to subtract integers, multiply two integers, and divide two integers. First create a failing test for one of the new functionalities, modify the class until the test passes, then perform any refactoring needed. Repeat until all of the required functionality has been added to your new version of Calc, and all tests pass. Remember that in TDD, the tests determine the requirements. This means you must encode decisions such as whether the division method returns an integer or a floating point number in automated tests before modifying the software. Github Link Activity

The Secret Life of Bugs: Going Past the Errors and Omissions in Software Repositories

Image
Credits to @borisworkshop Image Link In all honesty this is a very boring reading, the writing is too complex for the actual content and its meaning. The main idea is: mine software repositories to discover how teams (ought to) coordinate and communicate. For example, can we really assume that if two developers didn’t send each other an email on a particular period then they were working uncoordinated? It’s an (until recently) untested assumption, but that doesn’t seem to give much pause to the researchers in the area. I think the explosion of interest in MSR was motivated by frustration with the difficulty in doing something ’empirical’ in software engineering References: The secret life of bug's

Week 4 Review

Image
Credits to @suika Image Link Week 4 Plan: 1. Continue doing research about how to do unit testing or some sort of testing on Android Studio. 2. If research successful do a quick test and make a blog post about it. 3. Finish Chapter 3 Exercises. 4. Each member must do a commit and push to the team's repository on GitHub of the exercises. 5. Get ready for Partial 1 Exam. Week 4 Review: 1. We talked to Guillermo Rivas who is the Mobile Apps profesor and he told us that it is possible to integrate unit testing to Android Studio with Junit since we are using Java but that he didn't know how to get that environment working. So we did some research about getting that set up and here's a very useful guide that we found: Build Local Unit Tests 2. We ended un trying to import Junit but it kept displaying an error of versioning, so we're going install again Android Studio but with an extension pack that includes Junit. 3. Those are done and there up on the team

Chapter 3 Exercises

Image
Q. 1 "Test Automation software is the best way to increase the effectiveness, efficiency and coverage of your software testing"(SmartBear, 2019). Testerst automate tests in an automated testing tool because is able to playback pre-recorded and predefined actions, compare the results to the expected behavior and report the success or failure of these manual tests to a test engineer. Automated tests differ from manual testing where a human being is responsible for single-handedly testing the functionality of the software in the way a user would. Because automated testing is done through an automation tool, less time is needed in exploratory tests and more time is needed in maintaining test scripts while increasing overall test coverage. Q. 1.1 False sense of quality Not reliable Automation is not testing Demands Maintenance Time and Effort Slow feedback Not many bugs found Q. 2 Inheritance has resulted in some issues involved in testing of object-oriented sof

Week 4 Group Chapter 3 Activity

Image
Credits to @oliver_photographer Image Link Given the 4  @Test  methods shown, how many times does the  @Before  method execute? The @Before method will execute 4 times because there are 4 @Test's Questions 2, 3, 4, and 5 answers: GitHub Group Repository References: Stackoverflow.com HashcodeVSEquals

Week 4 Plan

Image
Credits to @heftiba Image Link Week 4 Plan: 1. Continue doing research about how to do unit testing or some sort of testing on Android Studio. 2. If research successful do a quick test and make a blog post about it. 3. Finish Chapter 3 Exercises. 4. Each member must do a commit and push to the team's repository on GitHub of the exercises. 5. Get ready for Partial 1 Exam.

Week 3 Review

Image
Credit to @_louisreed Image Link Week 3 Plan: 1. Research how to do Unit testing in Java. 2. Apply unit testing to some example code. 3. Research how ro do Unit testing on Android Studio. 4. Chapter 3 Exercises 1, 2, 3, 4, 6, and 7 . Week 3 Review: 1. We all researched how to do Unit testing on Java and how to install and get running JUnit on eclipse. It helped a lot that Ken gave us an individual assignment on this and we actually created a blog post on the basic  How To's of JUnit. 2. By working on the exercises that Ken gave us to work on from the book on Chapter 3 we god to test different classes and use JUnit. 3. We had a hard time with this goal of the week because we could find much about it and what we found looked pretty complex so were looking for guidance with our Mobile Apps teacher. 4. We still need to work on exercises 4 and 6. Team #1 Frida  Valentin Floreth

101 on JUnit and Unit testing

Image
Credits to @bryanminear Image Link JUnit is a testing framework/library for Java (programming language). It is used for both unit testing and UI testing. This helps us define the flow of execution of our code. What is Unit Testing? "Unit testing is the process of examining a small "unit" of software (usually a single class) to verify that it meets its expectations or specification" (Washington Courses, 2019) Setting up JUnit By downloading the newest version of Eclipse, you already have JUnit installed.  If not here's a guide on how to set it up:  Tutorial Creating a JUnit Test Case in Eclipse To use properly JUnit you need to create a separate .java file. In this file is were you are actually going to test your class, so name it something significant for example,  BoundedQueueTest  since in the class im going to test is named  BoundedQueue .   **I'm taking this class from the Introduction to Software Testing book by Paul Amman

Kent Beck TCR

Image
Credits to @tomcoe Image Link Kent Beck explains his 'Alternative work flow ' called Test, Commit or Revert. It consists of making small changes to the code in order to always have the test on green (passed), so as Kent explained on this podcast, if you know that you have to make two changed in order to make the test pass first you need to make the first change but in a way that doesn’t corrupt the test of make the test fail. It's all about keeping the status of the test green. TCR has a big impact on the confidence of a programmer because by having a positive output on a test case that has no other intention that to "break" your code boosts your belief in yourself (in your programming skills or your capacity to debug problems). I was actually surprised when I heard this because I'm used to working the opposite of TCR watching everything turn red and breaking code until you magically fix it. I recently learned TDD (Test Driven Development) in my Sof

Week 3 Planning

Image
Credits to @casparrubin Image Link 1. Research how to do Unit testing in Java. 2. Apply unit testing to some example code. 3. Research how ro do Unit testing on Android Studio. 4. Chapter 3 Exercises 1, 2, 3, 4, 6, and 7 . Work division: Every teammate is Researching the first three points. Floreth: 1, 2 Exercises  Valentin: 3, 4  Exercises Frida: 6, 7  Exercises Team #1 Frida  Valentin Floreth

Week 1 Plan and Review

Image
Credits to @hope_house_press_leather_diary_studio photo-1471970394675-613138e45da3 These were the Goals we set to do on Week 1 : Get familiar and a brief introduction to software testing. Read Chapter 1 of the Introduction to Software Testing Book. Define team roles. Figure out which project are we going to be working on this semester. Share Github credentials (Usernames). Set up Github Team Repository. Brief Review on how to use Github. Get to now each other, by sharing cellphone numbers and creating a WhatsApp group. What we actually  accomplished : We did get acquainted with Software Testing by reading Chapter 1 and solving some doubts with one and other. As for assigning team roles we decided that Frida is going to be our team captain (maybe). We couldn't settle on which project we're going to be working on because we haven't define those projects in our other classes, they're still pretty abstract at the moment. We finished our Class Activ

Week 1 Plan

Image
Credits to @rawpixel https://unsplash.com/photos/mcLpPD36-2k Get familiar and a brief introduction to software testing. Read Chapter 1 of the Introduction to Software Testing Book. Define team roles. Figure out which project are we going to be working on this semester. Share Github credentials (Usernames). Set up Github Team Repository. Brief Review on how to use Github. Get to now each other, by sharing cellphone numbers and creating a WhatsApp group. Team #1 Frida  Valentin Floreth