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

Verification and Validation of Software (V&V)

Before anything, we have to know what is verification and validation of software. Verification is a process of checking documents, design, code, and program in order to check if the software has been built according to the requirements or not. The main goal of verification process is to ensure quality of software application, design, architecture etc. The verification process involves activities like reviews, walk-throughs and inspection.

Validation is a dynamic mechanism of testing and validating if the software product actually meets the exact needs of the customer or not. The process helps to ensure that the software fulfills the desired use in an appropriate environment. The validation process involves activities like unit testing, integration testing, system testing and user acceptance testing.

Here is an image of the key difference between them:


International Standards for V&V in software:
ISO 9001 Quality management systems – Requirements1 requires verification and validation to be planned and carried out and records kept (refer clauses: 7.3.5 Design and development verification and 7.3.6 Design and development validation)

IEEE 1012 – Standard for Software Verification and Validation2 provides a comprehensive how-to for software V&V planning and execution.

Software Review is a very important part of SDLC that assists software engineers in validating the quality, functionality, and other vital features and components of the software. As mentioned above, it is a complete process that involves testing the software product and ensuring that it meets the requirements stated by the client.

It is systematic examination of a document by one or more individuals, who work together to find & resolve errors and defects in the software during the early stages of Software Development Life Cycle (SDLC). Usually performed manually, software review is used to verify various documents like requirements, system designs, codes, “test plans”, & “test cases”.

But, why is software review important? well, the reason that it makes so important is the following:

  • It improves the productivity of the development team.
  • Makes the process of testing time & cost effective, as more time is spent on testing the software during the initial development of the product.
  • Fewer defects are found in the final software, which helps reduce the cost of the whole process.
  • The reviews provided at this stage are found to be cost effective, as they are identified at the earlier stage, as the cost of rectifying a defect in the later stages would be much more than doing it in the initial stages.
  • In this process of reviewing software, often we train technical authors for defect detection process as well as for “defect prevention process”.
  • It is only at this stage the inadequacies are eliminated.
  • Elimination of defects or errors can benefit the software to a great extent. Frequent check of samples of work and identification of small time errors can lead to low error rate.
  • As a matter of fact, this process results in dramatic reduction of time taken in producing a technically sound document.

There are many different types of software review such as code review, technical review, walkthrough, inspections, pair-programming, software management review, software audit review.

If you want to know more about this visit this link:

https://professionalqa.com/types-of-reviews-in-software-testing


Planing V&V

What is Validation and Verification

Validation and verification is an activity that plays a very big role regarding processes and products of quality. That is why and concerning the historic problems that have emerged from software development, the study of V&V is an important advancement for the future evolution of software technologies.

Planing V&V

The planning of V&V depends entirely on the goals and objectives of the project at hand. To achieve said goals different life cycle methods have been developed. But in all of them it will be required to have a specific process that ensures quality within the project.That’s why that at the end of every life cycle it should be ensured that the work done in that moment complies with the aforementioned objectives.

The final objective of the process of V&V is to prove that the system it’s made for a purpose and it tries to apply specific techniques known as tests and reviews. The process of validation and verification es a set of procedures, activities and tools that are use in parallel to software development with the end goal of ensure that the product solves the problem that was initially said to solve.

Verification

Verification tests the consistency of the software with respect to the requirements, that is, if it answers the following question. Is the software built correctly. The process determines if the resulting product of a life cycle comply with the requirements established in the previous phase. The process determines if the resulting software is complete, consistent and right to start the next phase.

Validation

Validation proves if that is specified and implemented is what the user really wants, that is if it answers the question of has the correct software been built. The process determines if the software accomplishes its specifications. The process ensures that the software built behaves as expected and it complies with the client’s expectation

Software Review

“A process or meeting during which a software product is examined by a project personnel, managers, users, customers, user representatives, or other interested parties for comment or approval” it’s the IEEE’s definition of this process.

Objectives:

  1. To improve the productivity.
  2. the testing process time and cost effective.
  3. final software with fewer defects.
  4. eliminate the inadequacies.

Types:

Software Peer Review

This methodology uses the author and another colleague to review certain document/code/etc in order to do an evaluation of the content’s quality.

This type of review relies on colleagues over management representatives, and Peer Review it is more focus on a technical evaluation over control objectives.

The Power of Peer Review-Final ICSQ V2.0

Software Managment Review

it is a management-oriented study on the project state and its resources. it is defined by the IEEE as “A systematic evaluation of software acquisition, supply, development, operation, or maintenance process performed by or on behalf of management … [and conducted] to monitor progress, determine the status of plans and schedules, confirm requirements and their system allocation, or evaluate the effectiveness of management approaches used to achieve fitness for purpose. Management reviews support decisions about corrective actions, changes in the allocation of resources, or changes to the scope of the project”.

Here it’s the IEEE standard:

  1. Evaluate entry?
  2. Management preparation?
  3. Plan the structure of the review
  4. Overview of review procedures?
  5. [Individual] Preparation?
  6. [Group] Examination?
  7. Rework/follow-up?
  8. [Exit evaluation]?

Software Audit Review

IEEE defines it as “An independent examination of a software product, software process, or set of software processes to assess compliance with specifications, standards, contractual agreements, or other criteria”.

the roles of this methodology are:

  • The Initiator (manager)
  • The Lead Auditor (objective consultor and organizer)
  • The Recorder (documents the process)
  • The Auditor (examine the process progress)
  • The Audited Organization  (consultor)
Figure 01 Eight Principles of a Crypto-IT-Audit.png

Excellent service!

Software review insists in verifying the quality and functionality of a software product and this is done by performing tests making sure that all the requiriements are complited.

Documents are examined by a group of people to make sure all errors are found and corrected in the Llfe cycle.

Important Features

  • Productivity of the developers is increased
  • At the final stages of SDLC less errors are found
  • Time and cost are better
  • Flaws are eliminated
  • Less time for sound document

Types of software reviews

  • Peer Review
  • Management Review:
  • Audit Review

Peer Review

Evaluates technical characteristics and quality of the product, some types are:

  • Code Review
  • Pair programming
  • Informal
  • Walkthrough
  • Technical review
  • Inspection

Management Review: Evaluates work status which develops in the latest stages.

Audit Review: Independent individuals outside of the development team examine the product.

Process Review

Activities of IEEE Standard 1028 which are:

  • Entry Evaluation: Checklist for review condition.
  • Management Preparation: Making sure all resources are available.
  • Review Planning: Objectice that forms a resource team.
  • Preparation: Reviewers prepare group examinations.
  • Examination and Exit Evaluation: Results combined and everything is verified.

Software Verification and Validation (V&V)

V&V are independent procedures used to check a product/service/system meets the requirements and specifications demanded.


Verification means “confirmation by examination and provision of objective evidence that specified requirements have been fulfilled” by 820.3(a).


Validation means “confirmation by examination and provision of objective evidence that the particular requirements for specific intended use can be consistently fulfilled.

V&V has to have an Installation, Operational and Performance qualification to be green-lighted. Also, any software that has to be used by humans has to pass to this process of V&V.

ISO and other organizations are the ones that have to oversee the V&V of:

  • Quality management system
  • Calibration management system
  • Maintenance management system
  • Document management/PLM system
  • Quality system platforms/server validation
  • Resource management system
  • Clinical data tracking databases
  • Labeling software

We mention that V&V is a set of independent procedures/documents, here is a list with the main ones:Software Validation Protocol

Software Validation Protocol :

Network Diagram:
it illustrates how the system is configured on a network

Risk Analysis:

risk analysis document should evaluate safety and identify potential hazards

21 CFR Part 11 Compliance Analysis:

contains specific requirements for the use of electronic signature

Design Specification:

A document that indicates that the design criteria whereby the conformity with the requirement can be checked.

Verification Protocol :

Contents of the verification protocol define the type of tests to be performed and the procedures and schedules for tests.

Test Specifications:

Test cases are documents used in the process. In software verification and validation, they are used to determine if the product is built according to the user requirements.

Requirements Traceability Matrix:

This document links the requirements throughout the validation process. It ensures that all the requirements specified for a system are tested in test protocols.

Final Validation Report

V&V

Verification and validation of Software (V&V) focuses primarly on the requirements, it verifies that these are complete and correct also the result of the development phases should comply with the requirements but why do this?. Well it seems that all of this is with the purpose to get rid of all the flaws of software lifecycle artifacts, one step at a time.

Here is a good and simple video of V&V:

There seems to be 3 main implementations of V&V which are:

  • Testing(Post Process): focuses in dynamic execution of hard-coded software.
  • Lifecycle Frameworks (In Process): These are encyclopedic taxonomies of abundant software defect elimination techniques.
  • Lifecycle Methodologies: Step-by-step metric and measurement-based approaches.

Testing (Post Process)

Testing is diveded into 2 categories the white box testing and the black box testing:

  • White box: This method focuses in internal tests which focuses in examining software.
  • Black box: External testing which focuses on analyzing and excercise the software.

Here are some techniques used in both methods:

The IEEE Standard on testing documents is to act as a framework for test documents so there can be a structure in the process and there are 7 documents which have the following flow:

There also exists the testing levels which are perfomed in a specific hierarchy that keeps inceasing:

Lifecycle Frameworks (In Process)

IEEE says that V&V frameworks gives minimun and uniform requirements so there can be a comprehensive evaluation of each phase of any project to make sure of the following:

  • The flaws and bugs are corrected ASAP.
  • The cost, riski and scheduled effects are minimize
  • Improvement in software quality and management
  • Fast evaluation of any changes or consequences.

Here are some tasks that can be done along with the lifecycle phase:

Lifecycle Methodologies (In Process)

Lifecycle methodologies are more compared to lifecycle frameworks because they are predictive, measurable, and very effective, but they also are less because they are lean and reduced to only the essential.

It seems that the best way to approach V&V is through Life cycle methodologies which are fast and efficient. Compared to Testing that is inefficient LifeCycle frameworks that are not easy to understand. so it seems we have a winner.

Bibliography:

V & V Lifecycle Methodologies. (2002). Retrieved from https://www.stickyminds.com/article/v-v-lifecycle-methodologies#:~:text=According%20to%20the%20IEEE%20Standard,imposed%20by%20the%20previous%20phase.

(2002). Retrieved from https://davidfrico.com/vvbrief.pdf

Software Quality

What is Software Quality?

Defining Software Quality can be a tricky task, since it is an abstract concept that can have many different definitions, depending on the source. A variaty of standards, measures and characteristics exist to determine whether a software project is considered to be of good quality or not quite. However, one common factor present in several of the definitions is how well does the software conform to its functional and non-funtional requirements, which are established based on the needs and desires of the customer. This is called fitness for purpose, and it refers to the fulfillment of a product’s requirements. This is reflected at the same time through its functional quality and its structural quality. Other important aspects of quality software is that it is delivered on time, withi the budget, and it is maintainable.

Functional Quality

Based on the functional requirements, it determines how well the software satisfies a given design or specifications document.

Structural Quality

It determines how well the non-functional requirements are implemented in order to support the functional requirements.

The reason why quality is a lot more difficult to completely ensure for software products compared to physical manufactured products is because of its inherent complexity and visibility. The product complexity refers to the large amount of operational modes it permits, since software packages allow for millions of operational possibilities and often it is hard to correctly assure them all. The product visibility refers to how defects in software are most times not detectable by sight, like it is for industrial products during the manufacturing process, hence being invisible.

Software Quality

Our world runs in software, everything around us is software, the phones, the tv, even the cars depend on software. Therefore the relevance of software quality is increasing. But, what is Software Quality? Well, we’re here to define this concept.

Defining Software Quality

Software Quality is still an abstract concept, there are many variations on the definition. Wikipedia describes it as follows:

In the concept of Software Engineering, software quality refers to:

– Functional quality: how well it complies with a given design, based on specifications (how it compares to competitors in the marketplace as worthwhile product)

-Structural quality: how it meets non-functional requirements to support the delivery of functional requirements

it´s presence can be difficult to define, but it´s absence can be seen easily and instantly

A focus in process

Ensuring Software Quality

The role of standards in Software Quality