Tools for V&V

We have finally reached to the end of our topics to discuss, at least for this semester, and because we have been talking about software related topics, this will not be the exception and this time we are going to discuss a topic that we have already covered in the past, but this time an in depth tools that you can use for this processes, the introduction to the topic you can check it in my previous posts here.

Tools for version control

GIT

At this time if you are really into software projects you must know abput the most famous tool that allowsyou to keep a great control version in your projects, a system of branches in which you can modify parts of the code withouth risking the main functionality of your projects and at the same time allows you to work as team becasue its great functionality, the tool that I am talking about is GIT.

Main characteristics of GIT

  • fast and cross platform
  • peer to peer
  • easy to track code chages
  • easy to control versions of the system
  • easy to learn command line
This is an image of the git logo – Medium

Concurrent Versions System (CVS)

CVS is one of the most popular version control systems out in the field, is an important component of Source Configuration Management, which is a tool that is electible amoung developers back in the 80s, this becuse CVS allows the users to record the history of source files and documents very easily.

Main characteristics

  • cross-platform support
  • powerful command line
  • allows parallel programing
  • cant check integrity of source code
  • not suggestable to work with long term branching softwares
This is an image of the CVS logo, which is a cute turtle – Wikipedia

Apache Subversion

Apache subversion is an open source control version tool based in a system of repositories which works similar to a fiching system. Was created as an alternative to CVS after fixing the bugs and cons of CVS, but maintaining the compatibility. This new system employs the concept of atomic operation which helps to prevent data corruption.

Main characters

  • Prevents data corruption
  • free versioned metadata
  • cheaper branch operations
  • better windows support compared to GIT
  • slower than git
This is an image of the Apache Subversion logo – Wikipedia

Tools for testing

Selenium

Selenium is a testing framework that allows web application testing across browsers and platforms, such as: Windows, Mac and Linux, it is usefull because allows testers to srite tests in various programming languages such as: Java, PHP, C#, Python, and more.

This is an image of Selenium logo – Selenium

if you want to know a little more about Selenium click here

TestingWhiz

TW is a test automation tool which provides various testing solutions such as web testing, software testing, database , API, and mobile testing, which helps the users to keep control of maintenance, optimization, and automation and cross browser testing.

Most of the important features of TW are:

  • data-driven testing and distributed testing
  • Browster testing
  • SMTP integration
  • includes bug tracking tools
  • Version control system
This is an image of TW logo – TestingWhiz

If you want to know a little more click here.

TestComplete

TestComplete is a testing platform that offers various solutions for automating testing for desktop, and mobile apps, created by SmartBear Software.

TestComplete main characteristics:

  • GUI testing
  • Scripting language support
  • Test visualizer
  • Test recording and playback
This is an image of TestComplete – GlobalBusiness IT

If you want to know a little more click here.

Why to know about V&V

If you have been following my blogs this far then probably you already know why is it important to know about V&V, but at at first sight it may seem that V&V is a complicated process, and when developing a software there are so many models out there that helps the user to deliver, build, check, test, and give maintenance to a project that developing may seem a little to much of a work, the truth is that developing software is really a heavy task to do, but at the end of the day is a task that really rewards the user, not because you can deliver a well structre, documented, tested and well known software, but because the more little details that you add to the system the stronger that the system becomes, people usually say that there is no such thing as perfection, but the implementation of all this little proccedures gets too close to it.

An ending recomendation

I have already recommended you netflix series, movies, and videogames, and sometimes one or two books, and being honest I feel like I have nothing more to share with you, I think that I have already shared with you all the things that I really enjoy doing on my free time, and this time I am going to recommend you what I think is my favourite thing to do when in free time, and that will be…

Sleeping

This is a gif of pikachu sleeping – Gyfcat

Sleeping is one of the best things in life, and this is why:

  • Reduces risk of diseases
  • prevents accidents
  • improves memories
  • reduces anxiety and depression
  • sharpens thingking skills
  • strenghs the inmune system
  • controls weight
  • gives more energy
  • and helps to keep your heart healthy

Sleeping well is really good because it helps you in every single aspect of your life, and feels really good when doing it, as programmers we spent too much time facing againts the computer, which means that our body asks for a good rest every now and then, so sleeping is actually more crucial to us, and there is nothing better than a good rest at the end of a tyring day.

Software Review

The last time we talked bout the Validation and Verification process, the diference between these two and how to select and do a V&V planning, this time is going to be a little different it is going to be about software review.

  • Definitions and characteristics of software review
  • Activities and roles in each review
  • How to retrieve the key work products, plans, requirements, design and code

Defining software review

In software there are some features that must be analized as a part of the software review, software review is a process that ensures that all the measurements of the system are on top, which means that reviewing our code.

  • Software quality: We have talked about software quality before, and in this definition we explained that software quality goes with the client, the more satisfied the client the higher the quality, but even the proceddures and funtionalities implementes play an important role in software quality.
  • Software quality assurance, this is a methodology to ensure that a software at the end of its life cycle it is now considered software of quality
This is a picture of a man holding a magnifying glass-PM Majik

Types of review

  • Internal review: the old classic review method, in which the software is distributed to many people and tell them to try the system and review the proyect to get feedback.
  • Walkthrough: In this process all of the involved participate in each of the phases to make sure that most of the posibilities are considered
  • Inspection: isnpection is kinda similar to walkthrough but a little more rigorous
  • Testing: Testing is the most basic type of review, because everyona can do it, it helps to know what the system is capable of, where does the system break and get information about how does the system works.
  • Peer: Focuses on the tecnical content and quality of the system, this review is worked with other developers
  • Management: Evaluates the level of work status, where all the future descisions of the systems are taken
  • Audit: In which people not related to the system try the system and evaluate possible scenarios about the system, with purpose of getting new ideas of the system
This is a project review squema – NCBarBlog
  • Objectives and Scope: In order to ensure tha idea becomes sucessful
  • Project Planning: To ensure that the selected objectives follow the plan selected to do a good review
  • Executing the plan: In this phase all procedures of the plan are executed, all the reviews and analisis needed for the system.
  • Measuring and Monitoring: Now wih the evaluation of the plan is time to meassure the level of quality and V&Vness of the system, to make sure it has reached the desired level
  • Post Project Review: At the end of the cycle it is documented the results of the review to check wheter another review is needed or if we have finally reached our goal.

During the inspection phase there are some aspects:

  • The average preparation effort per unit of material
  • The average examination effort per unit of material
  • The average defect number found per unit of material
  • The average hours spent to find a defect
  • The average number of serious defects found per unit of material
  • The average number of hours required finding a serious defect

During inspection process there are six main steps:

  • Planning
  • Presentation
  • Preparation
  • Meeting
  • Rework
  • Follow-up
  • Objectives
  • Inspection Staff
  • Rules

With these considerations now you must be able to do a fully review of the system, to check wheter it fulfills the quality, V&V levels desired, with their proper standars. Software review is important because it helps to make sure that the system not only it is considered as quality system but you make sure that every posible case of the system is now checked and the system can be runnable with no issues, distributed and ready to life its life.

Most addictive game in this quarantine

Genshin Impact: This is probably one of the few games that traps the user as soon as they enter the game, genshin is an open world game in which you can play with many characters as you explore the two different regions that are available in the game, defeating bosses, exploring dungeons, using elemental powers such as: electro, geo, hydro, cryo, pyro, and anemo, there are so many things and combos than can be perfomed withing the game, the only problem is that is a gacha game, this means that if you want yo can pay to the game, because most of the characters are obtainable through loot boxes, which are not easy to obtain inside the game, adicitive, fun and really good.

This is a gif of the game – Tenor

Verification and Validation of Software

Hi everyone and wellcome back, I know that it has been a while since the last time we talked but now we have another topic to discuss and know about, and this time is going to be about how to properly do a V&V in every proyect, about the methodology and step by step on how to niceli finish a V&V process.


V&V in the life cycle of software development

At this point if you were reading my blog you’ll probably know about the life cycle, which is the flow of life in every system, it determines the objective of a system, when it was born, when it develops and when it is expected to end its life, in other words when the system has already completed its purpose of existing.

Of couse if we talk about Verification and Validation first we need to describe what are these:

  • Verification: when the product is being built right
  • Validation: when people are building the right project

In other words Verification checks if that they are building the system the right way, and Validation checks that the product that they are building is the one who si going to complete the main objective

To describe its aplications to this topic fist we are going to use a life cycle model as an example:

This is a picture of a life cycle model – Invensis Learning

In this model the life cycle of the system is descibred in 4 phases

  • Initiacion
  • Planning
  • Execution
  • Closing

Initiation: In this phase the idea of the product that is going to be built is being processed, Verification in this phase is going to be in charge of making sure that the model the idea of making the product is right. Validation makes sure that the product must fullfill the main objective

Planning:In this phase how the model is going to be built is being processed. Verification the going to check that the procedure that is goign to be followed is the correct one. Validation: is going to check that the procedure taken keeps following the main objective.

Execution: In this phase the system is now being built, following the procedure previously established. Verification checks that the procedure is following the objective of the system. Validation checks that the procedure is going to finish a project that fulfulls the main requirements.

Closing: in this phase the end of the system finally is reached. Verification checks that the product was built right. Validation checks that the final project fulfills the objective established in the first phase.

With this example you now probablly know a little bit more about how to implement V&V during a lyfe cycle of a system.

Black mirror recomendation

White bear: In this episode a woman awakes in an abandoned house with no memories at all, aparently she is in her house but she remembers nothing at all, while the episode develops the memories of the woman star to comeback but there a some people who are trying to kill her, and everyone in the world just records how she is being chased with no help at all.

This is a gif of a dangerous sign in the episode – Zonared

International standars for V&V of software

Because V&V are models to evaluate the levels of goodness there are some standars that describes a level of quality for some saying, and these standars rely on rules that need to be followed and level of achieveness acomplished.

Some of the standars implemented in V&V are:

  • ISO/TS 17033
  • ISO 14021
  • IEC 17029
  • IEEE
  • ISO 9000
  • ISO/IEC 15408
  • IEC27001

These standars describe the level of achieveness of a system, every one of these standars descibre a diferente level of achieveness, if you want to knoe a little more about the standars pleas check out this link.

Black mirror recomendation

Shut up and dance: In this episode our main character gets blackmailed because some hacker caught him doing some bad things, our main character needs to follow some orders if he wants to keep his secret, secret, as the story goes our main character meets an adult man in the same situation as him, little did they know that hackers have some different plans for them.


This is a gif of the episode – Giphy

How to plan V&V

In order to do a correct planning about V&V some phases needs to be analyzed and described to finally do a V&V process.

This process is kinda similar to a lyfe cycle, but with more in deph about what needs to be planned before or to be prepared to do the V&V planning.

  • Requirements: Validate the requierements of the system and verify that are acomplisable
  • Architecture and Design: Validate that the sistem is well designed and runs according the objective of the system. Verification to check non functional requirements
  • Implementation: in each procedure implemented check that follows that the software must suceed and do some testing about in each implementation
  • Testing: checks that all functionalities of the system meets the requiremens previously established and to make sure that everything works as expected
  • Deployment: comfiguration and instalation must run as expected with no bugs and errors

Following these phases when building you ensure that your system is optimal to do a V&V implementation of the system, and now it is time to select one or more standars to meassure the level of V&Vness.

Black Mirror recomendation

Hang the dj: Imagine in a world in which there is an app that will show you who your perfect partner for life is, this is the story about two people who gets matched by the aplication, just for one night, and in that night they felt more for each other than for anyone in the world that they have met before or will met, is an app more powerfull than true love?


This is a gif of the episode – Revista Kuadro

Administrating the V&V Plan

This is probably one of the easiest topics to discuss because in the previous entry we discussed about the diferenece, how to implement, and measure the level of V&Vness which results in a very easy way to administrate the V&V plan.

Procedure to administrate the V&V plan:

  • Explain the objetives of the project
  • Document all the implemented functions and sequences
  • Make sure to test all cases to avoid bugs
  • Make sure to aproeach the system in a way that nothing stays outside the evaluations
  • If bugs found make sure to document which bugs occurs, under which circumstances and if corrected the way to corrected, to make sure that if some kind of similar bug occurs now there is a way to correct it
  • Make sure that procedures can run under any enviroment, if not make sure to run on at least most of them, and to acknowlegde which requieremnts are needed.
  • To ensure a bidirectional comunication with the customer, to keep updated all of the involved
  • Run updates to the system and maintenance
  • ALLWAYS document everything that happens in the system, bugs, errors, implementations, everything.
  • Make sure that the end of the system is defined and to redo the planing until a level of V&Vness is adquired.

With this procedure now we can make sure that you are now ready to do a good V&V implementation in your systems, I only recomend doing this if your project is big enough or if you want your project to be as clean as posible.

Black mirror recomendation

Bandersnatch: This is a movie in which we are the main character as the story progresses the main character will face some desicions and we are the ones who decide which opcion the character chooses, each decision takes the character to a different scenario in which good or bad things could happen, we are now the true puppet masters.

This is a gif of the movie – Giphy

Working from home?

The next document is about a podcast episode from CBC spark, more specifically it would about how working from home may seem a little different to some people but for others it like working as usual. As we all know in the current situation world wide there has been a direct order to stay home as much as they can, for some countries there is actually a certain kind of punishment because of breaking the rules, because the situation that is happening requires us to stay home to stay safe, even when working from home is not a possibility for everyone.

These seems something a little different from the ones who are talking because they have already talked about working from home but actually never talked about working from home, from home, which is funny thing.

Technology is a very special tool that now gives the opportunity to people to do the kind of thing that they are used to, but from home, even though this is not a solution for everyone, as they say, waiters, cashiers, food delivery people, and many more. This is actually one of the biggest barriers of the current working environment there are some people that can not do home work and that is the most difficult part about this pandemic.

On the first part of the podcast the speaker asks a serie of questions to a woman who is the CEO of a company, a company that actually has been doing remote work (home work) for a long time, the woman says that the main reason why remote work can be really successful is because there is actually no office distractions at all, there is nobody looking at you and what you are doing, and because they only work for 32 hours a week it gives everyone the opportunity to do other kind of things and not get overwhelmed by the job, and the way they communicate between them is trough emails and zoom videocalls, zoom viceocalls are usually when some really important topic must be solved.

Don’t misunderstand me, there are some benefits about working in an office but for that company those benefits does not overshadow the benefits of working remotely, and there is actually ways to make a great work environment, because as we saw in the previous deadline chapters the most important part about working in a team is to be in a loving work environment, that makes the workers feel a little happier, and help them to provide better results.

There is something really interesting about what they say about our private life, because when we are working remotely, we are most likely doing it in our houses, and of course our house is part of our private life, you do not invite everyone to know to you house, just a few of them, but when working remotely and videocalls are usually required managers usually ask the employees to have their cameras on, this because in my experience you can see what other feel through their expressions, it not that you actually want to violate their privacy but because you want to make the environment with the coworkers a enjoyable environment.

Usually remote work can be easy, for those who live alone and have like no distractions at all, but in these times, quarantine is the thing that we all are suppose to be doing, and because you are in your home “safe” you will be doing the kind of things that you would normally do when you are in home, like sing out loud when taking a shower, whistling all over the house, ask for things yelling, watching a movie, playing really loud songs, or even doing nothing, and for those who are supposed to be working and have like childer or people who have nothing to do at the moment results really hard to focus on the things they are doing because getting distracted is actually easier than getting focused when not living alone.

But what is actually happening to those who actually can not work remotely?, are they not working at all, are they doing it but cautioustly?, whan would happened to them if this gets worst?, all these kind of questions is the kind of questions that actually have no right answer, as the podcast says, food delivers still do it, but restaurants are all empty, the packages that their deliver they usually deliver them without having contact with the customer and washing and disinfecting everything.

The last part of the podcast is about what it takes to work efficiently from home, and the main thing that actually get the full potential of remote work is to being able to work in a work enviroment, if you are alone, no distractions and things that would get you focused then you are ready to work from home, but like most of the people out there our houses are places to get comfy, to do whatever we want and do the noise that we want, there is a lot of distraction generators that makes us not to get focused on these kind of things, working from home is a possibility that not everyone can do, and if you can do it there is a high chance that actually the environment you work in is not the one expected, so working from home becomes really hard for a lot of people, not only cashiers and food delivery, for the mayority of the people working remotely is not an option because there is nothing they can do.

Now talking from what I see

First of all what you need to know is that actually I am from Mexico, which means that the panorama that I see is totally different from other countries, here in Mexico only 35% of the companies offers the opportunity to work remotely, what happens to the other 65% of the companies that are not optimal to do home office?, what about the people that actually does not work for any company but they need to go out to work? In Mexico is a reality that not everyone can do home office, there are a lot of people who actually need to go outside to gain money, and if there is not all, most of the people in Mexico gain what they need, by this what I am trying to say is that there is a lot of Mexican people that their salary is only enough to pay the basic needs, what would happen to these kind of people, the ones that are living at the day?, quarantine is a great solution, but is not the solution for all.

The consequences that this coronavirus will bring to Mexico are something that the country have never seen before, because no grocery stores, no restaurants, no selling departments, no malls, no touristic places to visit, no tianguis, can someone imagine what would happen to a Mexico that would not be able to gain any money during the quarantine, if there is something that defines a Mexican is that a Mexican would do everything that he can to bring a bread to the table, but imagine, if no work can be done while quarantine how would a Mexican bring bread to his home?, by the only thing that can be done without working, delinquency, the rate of delinquency in Mexico would grow drastically, because people would not be able to gain any money, we do not know how much time would this coronavirus quarantine willlast, the only thing that we know is that Mexico is not prepared for the upcoming things, Mexico is going to face something that has never faced before, that is going to affect the economy in ways that we actually did not know that could be affected, things are getting rough for Mexico and will get worst, sacrifices will need to be done, a lot of people would quit school, a lot of people would get fired, and a lot of people will suffer, Mexico is not prepared and by how the information is communicated I do not feel prepared.

I am a student currently doing nothing studying and working on a project for Cisco, we have been moved to take classes via Zoom, and it is of course kinda different from having face to face experience, it is true that is actually harder to get focused on the things we are doing, bad internet conection is a constant problem, it is hard to get accustomed to the new experience of studying from home, and apparently teachers think that we have nothing to do in our houses that gives larges amounts of homework to do, is something that we did not asked for it but is the only solution available by the time, I really think that the amount of money that we need to pay get reduced, because we are not having all the experience the university offers, which for me it is like to pay for a service that it is not been granted to you at the moment, one time a teacher told me that we actually payed for the school bus even if we do not use it, a bus that at the moment is not being used by any mean, then why should we pay the same amount of money for only online classes?, something that I do not understand at the time, having classes from home is something cool do not misunderstand me, but this is not the way that things need to be ruled, my thoughts on this.

Yeah working from home seems a great alternative, for the ones who can do it, for me and my family working from home is not an option, even today 29/03/2020 we needed to go outside to work, because if we do no get out we do not make any money, if this quarantine lasts for two months or more imagine how would be for those who are actually in a worst position than ours, people are getting sick, people are dying and here in Mexico we do not have enough resources to have them all under care, whatever comes to Mexico I really hope that we are strong enough to get through it, we got rid of Spain, we got rid of USA, we can get rid of coronavirus things, as my last words, please stay safe, if you need to go outside because you have no other alternative then do it, but take care of yourself, take the precautions to avoid getting infected, and to the best you can with your money, buy only what is needed and use the last drop of water, things are getting hard but we are harder than that.

The in depth of USP

This is a picture that describes the amoun of time taken on each of the phases of the model, it describes the amount of time and the duration of the phase in terms of time.

When it´s time to create a software from scratches you must allways choose a model to develop your software, in which every model you choose you will allways follow the same phases in order to develope your product,which are:

Planning: Which is the phase where all the requirements and the tools to create the proyect are defined, basically define the structure of the proyect.

Modeling: Which is the phase were it is defined how the proyect must look at the end of the development.

Construction: Which is the division of the software in order to make the job easier and faster to complete.

Deployment: Which is the phase where the process of delivering the product takes part.

Communication: Which is the phase where the consumers gives feedback about the products in order to upgrade the software.

Unified Software Process

All this models follow this simple phases in their own ways, even though this model gives, the difference between these models and the USP is that this model is an iterative and incremental model that can be customized depending on the software needs.

This model adds four extra phases that allows the developers to upgrade the proyect at every main phase, which are:

Inception: This is the phase where the requirements and the goals of the proyect are, as well as the risks of developing the proyect.

Elaboration: In this phase an in depth analysis of the software is made in order to know the pros and cons of the software.

Construction: This is the phase were the software is developed, then is tested and finally prepared to be given to the consumer.

Transition: This is where the software is delivered to the users in order to receive feedback.

Personal Opinion

As I wrote in the description of my blog, I would like to help readers to understand the topics and explain how these topic helped me to develop better projects, first of all, in every post I will give a brief introduction about the topic, and then at the end explain what are my thoughts about it.

This is definetely a process that you would like to implement when working in a big project, why?, because the way that this model works takes too much time in analysing and verify each phase, when you try to create a small project like for a class or something that needs to be done in a small amount ot time is way better to use another model process, it won’t take a long amount of time and would fit the main need of a project, instead if you want to develop a big project, this is definetely the process to implement, the reason is very simple, with this method you can analyse, implement, develop, check, re-check, fix, repeat, test and fix again, this method allows to detect the strenghts and weaknesses of your project, it will tell when to and how to work on your project, I definetely recomend using this method only when working on big projects, because takes large amount of time and work.

References

Information: http://bawiki.com/wiki/Unified-Process.html, David Olson

Information: https://www.youtube.com/watch?v=yUB0BsEimTU, Education 4u

Photo: Wikpedia