As you already know, the cloud is already a commodity and is part of the most software solutions available on the market nowadays. Nevertheless, if you do quality assurance or testing activities on cloud application, you have a lot of challenges.
QA and Testers are ignored by cloud
The expectation from the marker is to have people on these roles that know how to test applications and to run different procedures to ensure that the systems run as expected. You might say that testing an application that is running inside the cloud is the same as on-premises. It might be similar but not the same. Things like:
- Logs locations
- Metrics repositories
- New interaction with storages
- Access to resources
- A point in time restore
- Mechanisms to run different tests (e.g., DDoS attack)
- Security
- ... and many more
are different.
Personally, I would even say that from the cloud point of view, quality assurance (QA) and testers are left behind and ignored.
If we take a look at the learning paths or certifications available today (July 2020) on all main public cloud providers, you will see that there is nothing for them.
We have a lot of materials, content, and certifications for developers, automation, architecture, infrastructure, data, AI/ML, but nothing for them. This is applicable not only from the cloud providers but also from the online training platforms.
Part of my job is to support building continuous cloud capabilities across all phases of SDP (Software Development Process). It is frustrating to not be able to support QA and testers, and because of this, I decided to define a curriculum and a learning path for them.
Below I tried to cover the following 3 items from Microsoft Azure point of view:
- Curriculum
- Learning Path
- Useful Azure Certifications
Curriculum
Taking into account the daily activities that a QA and testers need to do when he works on cloud projects, I identified the following topics that are required:
- Fundamental knowledge of Azure (similar with AZ-900 curricula)
- Focus on core concepts and how to access Azure resources
- Ignoring specific development content
- Concepts of Azure DevOps
- Focus on how to run tests (units test and performance tests)
- Focus on working with Test Cases (define, modify, run)
- Focus on change and run a simple pipeline
- Azure database and storage
- Focus on how to access, configure and main differences between on-prem and cloud ones
- Focus on Azure SQL Databases, Azure SQL Managed Instances and Azure Storage (blobs and files)
- Azure logs and monitoring
- Focus on where counters, logs and audit information can be found for most used Azure Services
- Focus on Azure Monitor and how to execute queries
- Focus on Application Insights to track request flows (E2E)
- Most common data flow inside Azure (web applications, REST API, microservices)
- Simple app deployment using Azure VM Scale Sets
- Standard web application with frontend and a REST API
- Simple web application hosted inside AKS
- For both flows, the focus shall be on how a request flows from one service to another.
- Security & privacy
- Basic security knowledge for data and computation (mechanism for access, share, encryption)
- For security testing knowledge related to Application Gateway, Azure AD, Azure DDoS Protection, Azure Front Door, Azure Information Protection, Azure Sentinel, Azure Key Vault, VPNs, Azure WAF, Azure Security Center is required additional to strong knowledge for most used data and computation services.
It is essential to cover all the items from a QA perspective, with hands-on examples that are part of their day to day job.
Learning Path
A success learning path can be defined using materials that are available on the Microsoft website. Most of the content is from a development or automation perspective (complex one); because of this, some parts of the training content shall be ignored.
- Fundamental knowledge of Azure (similar with AZ-900 curricula)
- https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals
- Ignore materials where hands-on examples with code are presented if there is no interest in it
- Concepts of Azure DevOps
- https://docs.microsoft.com/en-us/learn/modules/get-started-with-devops/
- https://docs.microsoft.com/en-us/learn/modules/run-quality-tests-build-pipeline/
- https://docs.microsoft.com/en-us/learn/modules/run-functional-tests-azure-pipelines/
- https://docs.microsoft.com/en-us/learn/modules/load-test-web-app-azure-devops/
- https://azuredevopsdemogenerator.azurewebsites.net/ (useful for hands-on)
- Azure database and storage
- https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/
- https://docs.microsoft.com/en-us/learn/modules/create-azure-storage-account/
- https://docs.microsoft.com/en-us/learn/modules/secure-azure-storage-account/
- https://docs.microsoft.com/en-us/learn/modules/upload-download-and-manage-data-with-azure-storage-explorer/
- https://docs.microsoft.com/en-us/learn/modules/provision-azure-sql-db/
- https://docs.microsoft.com/en-us/learn/modules/access-data-with-cosmos-db-and-sql-api/
- https://docs.microsoft.com/en-us/learn/modules/store-access-data-cosmos-table-api/
- https://docs.microsoft.com/en-us/learn/modules/optimize-your-web-apps-with-redis/
- Azure logs and monitoring
- https://docs.microsoft.com/en-us/learn/modules/instrument-web-app-code-with-application-insights/
- https://docs.microsoft.com/en-us/learn/modules/capture-page-load-times-application-insights/
- https://docs.microsoft.com/en-us/learn/modules/monitor-azure-vm-using-diagnostic-data/
- https://docs.microsoft.com/en-us/learn/modules/analyze-infrastructure-with-azure-monitor-logs/
- https://docs.microsoft.com/en-us/learn/modules/cmu-monitor-cloud-resources/
- Most common data flow inside Azure
- https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/n-tier/linux-vm
- https://docs.microsoft.com/en-us/learn/modules/build-app-with-scale-sets/
- https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/containers/aks-microservices/aks-microservices
- https://docs.microsoft.com/en-us/learn/modules/intro-to-azure-kubernetes-service/
- https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/app-service-web-app/basic-web-app
- https://docs.microsoft.com/en-us/azure/architecture/example-scenario/apps/ecommerce-scenario
- Security & privacy
- https://docs.microsoft.com/en-us/azure/architecture/framework/security/overview
- Additional to it, core concepts on:
- Application Gateway
- Azure AD
- Azure DDoS Protection
- Azure Front Door
- Azure Information Protection
- Azure Sentinel
- Azure Key Vault
- VPNs
- Azure WAF
- Azure Security Center
, should be covered
Azure Certifications
The Azure certification that might be useful for a QA are:
- Basic certifications
- Azure Fundamentals - https://docs.microsoft.com/ro-ro/learn/certifications/azure-fundamentals
- Azure Data Fundamentals - https://docs.microsoft.com/ro-ro/learn/certifications/azure-data-fundamentals
- Specific for QA that needs to work a lot with databases
- Azure Database Administrator Associate - https://docs.microsoft.com/ro-ro/learn/certifications/azure-data-fundamentals
- Specific for QA that is doing security testing
- Azure Security Engineer Associate - https://docs.microsoft.com/ro-ro/learn/certifications/azure-security-engineer
Have ideas?
This was my own view related to the curricula for a QA from Azure point of view. What do you think? Did I miss something? Shall we cover less or more specific topics? Let me know to be able to improve the recommendations.
Comments
Post a Comment