AIS5-CH4
AIS5-CH4
The Concept of Software Quality: Quality Assurance (QA), Quality Control (QC), and
Testing
Software Quality
- It refers to different processes that work together to ensure the overall quality of the software
product.
Two Basic Levels of Software Quality
- Functional
o the product’s compliance with functional (explicit) requirements and design
specifications.
- Non-functional
o system’s inner characteristics and architecture, i.e. structural (implicit) requirement.
Software Testing Methods - are the ways tests at different levels are conducted.
1. Black box testing
- The main purpose is to check the functionality of the software, making sure that it works
correctly and meets user demands.
- Black box testing applies to any level but is mostly used for system and user acceptance testing.
2. White box testing
- White box testing aims to enhance security, reveal hidden defects, and address them.
MSL
1. Functional Testing
- Functional testing typically involves the following steps:
1. Outline the functions for the software to perform
2. Compose the input data depending on function specifications
3. Determine the output depending on function specifications
4. Execute the test case
5. Juxtapose the received and expected outputs
2. Performance Testing - System performance under varying workloads is assessed through different
types of performance testing.
- Load Testing — at continuously increasing workload
- Stress Testing — at or beyond the limits of the anticipated workload
- Endurance Testing — at continuous and significant workload
- Spike Testing — at suddenly and substantially increased workload
3. Use Case Testing
- It’s the most widely used testing technique, followed by exploratory testing
- Describes how a system will respond to a given scenario created by the user
4. Exploratory Testing
MSL
- It is an interactive and free-form process, with the main focus on validating user experience, not
code
- It has much in common with the ad hoc or intuitive testing but is more systematic
5. Usability Testing
- Performed from the end user’s perspective to see if the system is easy to use
Test Automation
- is critical in terms of continuous testing as it eases the burden of managing all of the testing
needs, allowing more time and effort to be spent on creating effective test cases
The Process of Test Automation
1. Preliminary Project Analysis - This is where you figure out what needs to be automated.
2. Framework Engineering - This involves building the foundation for your automated tests.
3. Test Cases Development - This stage translates manual test cases into automated scripts
4. Test Cases Implementation - This is the stage where planned tests become executable.
5. Iterative Framework Support - This step ensures the automation framework and the tests themselves
are maintained and updated.
Regression Testing
- is the practice of verifying software behavior after updates to ensure that the changes haven’t
impacted existing system functions, stability, and overall integrity.
- Regression testing techniques:
o Retesting all test cases
o Selecting specific test cases
o Prioritizing test cases to verify the most critical ones first and then test the rest
o Hybrid techniques
The Future of Testing – As a part of technological progress, testing is continually evolving to meet
ever-changing business needs as it adopts new tools that allow the tester to push the boundaries of quality
assurance.
1. Security
- The World Quality Report survey shows that security is one of the most important elements of an
IT strategy. Input from security is vital to protecting the business.
- Security testing intends to uncover system vulnerabilities and determine how well it can protect
itself from unauthorized access, hacking, any code damage, etc.
- Four main focus areas in security testing:
o Network security
o System software security
o Client-side application security
o Server-side application security
2. Artificial intelligence
- The challenges of testing are increasing and their solutions have unlimited number of situations
requiring artificial intelligence to test them thoroughly.
- Different implementations of AI using machine learning-based algorithms will soon become
embedded in applications to perform tasks once reserved for humans.
3. Big Data
- Big data testing is aimed at checking the quality of data and verifying data processing.
- Big data testing demands a high level of testing skills as the processing is very fast.