Testing features – Quality Assurance – Testing Software

Here bellow we can see a typical workflow where the red circle represent bugs.

basic-workflow.png

Do you think if this basic workflow where it’s merging features directly into master to later be deployed and tested is it enought good?

With this basic workflow approach the master branch has many commits and some of them could has issues developed during the sprint. GitFlow  is other alternative to this workflow which help to have a cleanest version of master  and let see more information about how does it works GitFlow.

Continue reading “Testing features – Quality Assurance – Testing Software”

Advertisements

Testing Roles and Responsibilities – Quality Assurance – Testing Software (Part 2)

In this article we’ll see which could be the most relevant testing roles and  the responsibilities . First we should differentiate between QA and Testing

2000px-Yin_yang.svg

  • QA Roles : Try to prevent bugs appearing  doing improvement in the development process through process improvements  also verifying that it is possible to make the software work under a given set of conditions
    • QA Lead
  • Testing Roles : Main task is search bugs before final user find them and testing roles are constantly thinking of things that have not been tried and find parts of the software that may be weak
    • Test  Lead Analyst: 
    • Test Engineer
      1. Manual Test Engineer
      2. Automated Test Engineer

 

Let try to define the responsibilities of each Role:

Continue reading “Testing Roles and Responsibilities – Quality Assurance – Testing Software (Part 2)”

Tests Plan – Quality Assurance – Testing Software (Part 1)

In this article I’ll  share my thoughts and experience about a possible  list of testing artefacts that could help to improve the quality assurance in the software development working with test plan.

checklist

Before to see the different test plans It’s important to know so basic artefacts like :

  • Test Case: List of  steps in order to cover only one application scenario where the test case should have a descriptive title of the scenario and describe the result of each step
  • Test Results: evidence of  execution of a test case
  • Test Plan: is a group of test cases
  • Regression Test: used to test the regression produced an existent  feature
  • Smoke Test:  list of steps to cover quickly different features without enter in details.
  • Automation: Not all the Test Cases could or should be automated.
    There are different ways to automated the test cases using : unit test, integration test, client side unit test or UI test)

There are  different test plans like :

Continue reading “Tests Plan – Quality Assurance – Testing Software (Part 1)”

Automate Manual Regression Test Plan – (Testing thoughts Part 1 of N)

In this simple article I want share some thoughts about how to automate  a manual regression test plan . I did a simple pool where I asked :

Which tool/framework do you use to automate the execution of a full manual regression test plan to validate business scenarios ?

Before to answer you should think about the “Ice-cream testing cone”

ICECREAMCONE_TEST

Ice-cream cone : testing through the UI like this is slow, increasing build times. by Martin Fowler in this article

From the previous image it’s clear that is not a good idea invest much time building a huge collection of UI Test and here we have the results of the Pool :

Continue reading “Automate Manual Regression Test Plan – (Testing thoughts Part 1 of N)”

Support Workflow: Gathering customers information to save time to solve tickets – Tools – (Part 1 of N)

It’s very common when a company start to increase the number of customers It’ll be probably increased the number of support’s tickets.

When I usually worked helping to the last line of support I saw for many tickets always was asked to the customers similar questions. I usually tried get from the customers configuration files , logs to know more information in order to progress the ticket .

Don’t you think this support workflow of retrieve the customer information could be improved it?

I think it could be automated the gathering information so when the customer will raise a new ticket it could be also attached the relevant information obtained from an automated tool .

With this approach we’ll have an “all in one ticket” because the ticket will have all the relevant information so it will saved time in both side .

business-customer-care-service_1325-159

Here we have some reasons why I think we should try to improve the support process workflow in order to

Continue reading “Support Workflow: Gathering customers information to save time to solve tickets – Tools – (Part 1 of N)”

Business Layer Software Architecture (Part 2 of N)

In a previous article about “Layered Software Architecture Part 1″ I shared my thoughts about it isn’t enough just applying any of the MvC, MvvM or MvP patterns to build a good Software Architecture.

For non CRUD applications where there are business logic in the app I think it’s a good idea if  :

  • Api Rest (Communication) Layer shouldn’t have business logic neither have  access directly to the Data with an ORM.
  • Api Rest (Communication) Layer should only limited to have simple data validations.
  • Business layer should avoid to have direct access to data via ORM or SqlQueries since the Data Access Layer is the responsible
  • We should try to build thin Api Rest (Communication) Layer and fat Business Logic Layer

responsibility

Here below we have a list of points of what I think it should be done  in business logic :

Continue reading “Business Layer Software Architecture (Part 2 of N)”

How to be sure you Web App works fine for N users – Load Testing (Part 1 of N)

Load Testing from my real work experience in enterprise companies.

This is the presentation which I did in this Meetup in dotnetMalaga 2017

Link to the presentation :
“How to be sure you Web App works fine for N users – Load Testing

testing_tools.png

Continue reading “How to be sure you Web App works fine for N users – Load Testing (Part 1 of N)”

Building release notes in agile development

Many Development Teams are working with scrum creating at least one new software version every three weeks . This workflow including a new version of documentation every three week.

Did we ask us if we should change how do we generate release notes ?

The number of released software versions is increasing using this type of agile methodologies but Don’t you think it’s time to change this?

 

Continue reading “Building release notes in agile development”

Feature Toggle (Part 1 of N)

Do you have a variable flag which depending of the configuration the flag will enable/disable (toggle) to execute some lines of code of a feature.? are you tired of this approach?

This patterns was known as “Feature Toggle” which is a set of patterns which can help a team to deliver new functionality to users rapidly but safely.

“Feature Toggling” could be done with t just a variable flag but there are other better way to do it but of course it will require more time to implement it.

Working with toggle feature it will help in:

  • Adopt new technologies as part of feature toggles
  • Clean Code (if don’t use just simple variable flags)
  • Reduce Risk branch merges issues “feature branch”
  • other more things!

overview-diagram.png

Image source from this great “Feature togglingarticle

“Feature Toggling” could be used when

Continue reading “Feature Toggle (Part 1 of N)”