Wednesday, May 30, 2018

Software Quality Assurance 

According to the ISO9126 standard we identify six (06) main characteristics of software quality.

1. Functionalty
2. Reliability
3. Usability
4. Efficiency
5. Maintainability
6. Portability

Software security testing has basic seven (07) main characteristics.

1. Authentication       
2. Authorization
3. Confidentiality
4. Availability
5. Integrity
6. Non-repudiation
7. Resilience

Different types of testing approaches

Penetration Testing
 - Here the tester should stimulate on how an attacker would deal with the system or in another way he should stimulate a malicious attack on the system it self for testing purposes.

Static Testing
 - Testing source code compilation , syntax errors, program structure etc. Its basically verification.

Dynamic Testing
- Executing program/ part of the code  with a set given set of test data in-order to perform validation.

Whitebox Testing
- White box testing is when a tester walk through the program code to derive the test cases executable against the program code snippets.
  White box testing can be perform at unit/integration/sub-system/system levels.
  In many flavors - Static testing, API testing, Code coverage, Fault injection etc.

Sandbox Testing
- Mirrored production environment exposed to mostly third party developers and testers to carryout testing.

Testing can be aligned with any level of software development. Even if you are developing a POC (Proof of concept) you have the freedom to carry out the testing in terms of code validation and Non functional & functional requirements.

Automation Frameworks

In the modern day of computing there are many test automation frameworks we can use to automate. A few are listed below.

1. JavaScript - Jasmine is JS testing framework.
2. Angular / AngularJS - Protrator (E2E Testing)
3. Unit Testing - Karma
4. Performance Testing - Gatling, Jmeter, Flidder

To be continued ....