VV Tools

When trying to automate validation and verification tasks the impact of efficency is important thast why its important to select the correct tools.In this post we will focus in some usefull tools.

Version Control Tools

Version control is useful when something goes wrong with the code and you need to go back to a functional previous version of the code, it is widely use throughout the tech industry:

Version ControlAdvantagesDisadvantages
GitFast and efficient performance
Cross-platform
Code easily tracked
Maintainable and robust
Command line (git bash)
Git GUI
Complex and biggerhistory log
doesn’t support keyword expansion
CVSCross-platform
Robust and fully-featured command-line
Support from CVS community
Good web browsing of source code repository
Collaborative nature if the open-source world
No integrity checking for source code repository
Poor support for distributed source control
Doesn’t support signed revisions.
SVNGood GUI
Good Windows support compared to git
Easy set up and administer
Integrates with windows, leading IDE and Agile tools
Doesn’t store time files modification
Doesn’t support signed revisions

Tools for Testing

There are a lot of tools out there that help testers in automation for software, and there is an increased demand that is rapidly growing. Here are some useful testing tools:

  • Selenium:
    • Framework for web application testing in browsers
  • TestingWhiz:
    • Complete package for several automated tests that includes web testing, software testing, database testing, API testing, mobile app testing, regression test suite maintenance.
  • TestComplete:
    • offers testing for desktop, web and mobile.

The lord is testing me

Software testing evaluates the functionality of the software product that was developed, making sure it fulfills the requirements established but also is a tool to find defetcs/bugs. the core important characteristics of testing involves security, quality, satisfaction and effectiveness.

Software Testing Process

Testing process can de divided into the following “evolution” points:

  1. Planning:
    • Scope of the test is set.
    • Assess of risks within tests.
    • Impact analysis.
    • List of test resources.
    • Determine the beginning and end of tests.
    • Dates for testing are stablished.
  2. Planning Scenarios:
    • Creeation of expected outputs.
    • Creation of scenarios tests.
    • Previous information is used to design the scenarios
    • Tests scenarios need to be simple and diverse
  3. Environment and data creation:
    • Necessary preparations are done before starting the test.
    • Project installed in environment where it will be tested.
    • Data necessary for the test is ready to be used.
    • The data goes accordance with the scope of the development
  4. Running Scenarios:
    • Test scenarios are perfomed.
    • Time pressure is important on the tests however not indispensable.
  5. Results:
    • Reporting the results of the tests.
    • Use of SS to report errors or any other way

Levels of testing

Types of testing

Testing can be divided in three main branches:

Some types of functional testing :

  • Unit testing
  • Integration testing
  • User acceptance testing
  • Localization
  • Globalization

Some Non-functional testing:

  • Performance
  • Endurance
  • Load
  • Volume
  • Scalability
  • Usability

Some Maintenance testing:

  • Regression
  • Maintenance

Testing Artifacts

Testing artifacts refers to the deliverables to the stakeholders of the project, these are:

  1. Test plan
  2. Test case
  3. Traceability matrix
  4. Test script
  5. Test suite
  6. Release Note
  7. Test data
  8. Test harness

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.

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

Modeling

These are the topics that I will be focusing regarding software models and standards:

  • CMMI
  • TSP/PSP
  • ISO-I15504
  • MOPROSOFT
  • IDEAL method

CMMI

Capability Maturity Model Integration (CMMI) refers to a model that helps organizations to improve their processes. So the creators of this are the SEI along with the US government.

This model evaluates three specifics sections:

  • Process and service development.
  • Service establishment and management.
  • Product and service acquisistion.

But its also supposed to be a behavioral model that can help on the behaviour of the organizations, so they identify different levels of maturity which indicates how an organization will act on different situations:

  • Initial
  • Managed
  • Defined
  • Quantitatively managed
  • Optimizing

At first this model was supposed to be focused in software engineering only but now it can be used in service development.

TSP/PSP

Both PSP (Personal Software Process) and TSP (Team Software Process) are based on processes that involves stablishing goals, the plan, measure and tracing of the work, however, as their names implies PSP focuses on personal processes while TSP focuses on team work but using the same principles of PSP but with aditional steps.

It kinds remind me of…

A little image to represent PSP,TSP and CMMI

ISO-15504

The Software Process Improvement Capability Determination is a model for the evaluation of the processes on software development products.

Objectives:

  • Develop a standard evaluation for software processes
  • Evaluate the development of such processes in the industry

Why is importan this model?

The technology industry increased vigorously and it seems that different organizations need to adapt and follow certification processes so they face a competitive market.

But in the other hand it seems that pretty much the organizations are “force” to follow this since other ogranizations impose the necessity to guarantee a detail evaluation regarding IT processes.

MOPROSOFT

It focuses on software development and maintenance by following of practices and processes of management.

Some characteristics:

  • Facilitates the compliance of other models (Pretty much othe ISO).
  • It’s simpe to adopt.
  • Low cost on implementation.

This model focuses more in management and it has three categories:

  • High Management (Management of business)
  • Management (Management of processes, projects and resources)
  • Operation ( Management of specific projects and development and maintenance)

IDEAL method

Initiating, Diagnosing, Establishing, Acting and Learning method its and improvement model for CMMI and other similiar processes

As it’s a process improvement that realiseas a methodical framework for organizations in planning and implementing processes.

The IDEAL model structure:

That’s it for all the 5 models…

“Quality is not an act, it is a habit.”— Aristotle

The first thing that comes to my mind when I think of the words software quality is “is it good?”, but how can we define good in this context?… good as in it performs perfectly?, is better than other alike software?

I’ve been searching for an exact definition of software quality and I found that there isn´t an exact definition but rather a vast of them,which most of them share that some requirements needs to be accomplished in order to meet some expectactions

But, how do we accomplish quality?

I supposed there were some rules or standards that developers need to follow to achieve quality and I found two main topics:

  • SOFTWARE QUALITY ASSURANCE (SQA) 
  • SOFTWARE QUALITY CONTROL (SQC)

Both focus on different activities to ensure software qualitiy, however SQA focus more on prevention while SQC focus on detection, so one is more oriented to the early stages (Design, managment etc.) while the other to the last ones (Reviewing and testing)