QA General Test Scenarios
These are some of the basic test scenarios which should be covered during the testing.
CRUD Operations
System Messages Verification
Sorting & Pagination
Date Format Verification
Special Character & Validations
Spelling/Grammar/Alignment
If the test case scenario is “Validate the login functionality” – This would take in 3 test cases
- Login (successful)
- Login-unsuccessful when incorrect username is entered
- Login-unsuccessful when incorrect password is entered.
Each test case would in turn have steps to address how we can check a particular test condition is satisfied or not.
- Test Case is ‘How to be tested’ and Test Scenario is ‘What to be tested’
actually, a test case is a set of steps to be executed ,in order to validate the scenario.
Test case document template
- Regression testing is a black box testing technique.
- Re-executing the tests that are impacted by the code changes.
- Regression testing make sure that the older programming still works with the new changes.
- Tools: selenium can be use for browser based regression testing
- Testing technique performed to determine whether or not the software system has met the requirement specifications.
- Evaluate the system's compliance with the business requirements.
User Acceptance Testing
Business Acceptance Testing
Alpha Testing
Beta Testing
Test the Functional Correctness and Completeness,Data Integrity,Data Conversion,Usability,Performance,Timeliness,Confidentiality andAvailability,Installability and Upgradability,ScalabilityDocumentation of the final system.
Acceptance testing is basically done by the user or customer although other stakeholders may be involved as well.
The goal of acceptance testing is to establish confidence in the system.
- Black box testing technique
- Include both functional and non-functional testing/business process, use cases, or other high level descriptions of system behavior, interactions with the operating systems, and system resources..
- evaluate complete system functionalities.
- Types : Interchangeability, reliability ,performance ,functionality,Scalability ,load and stability,stress,regression.
- System testing is most often the final test to verify that the system to be delivered meets the specification and its purpose.
- It is automating web applications for testing purposes.
- Not a tool, but an API.
- Supports multiple browsers.
- Supports multiple languages,Operating systems.(PHP,Java,C#,Ruby)
- can integrate with other APIs as well(JUnit,NUnit,TestNG)
- Open Source
- Google developers are working on this API.
- Four components- Web driver,IDE,Grid,Remote Control.
Selenium Web Driver
Browser based regression tests
Selenium IDE
A Firefox add-on that will do simple record-and-playback of interactions with the browser.allows us to record, edit, and debug tests.
only work on Firefox.
- Testing of combined parts of an application to determine if they function correctly.
- Two ways, Bottom-up integration and Top-Down integration
- Top-Down integration-highest-level modules are tested first and progressively, lower-level modules are tested thereafter.
- Bottom-up integration low-level modules are tested first and progressively, higher-level modules are tested thereafter.
- Integration testing tests interfaces between components.
- After integrating two different components together testers do the integration testing.
Integration testing tools
- Each unit is tested separate before integrating them in to modules.
- This give the ability to verify that the system functions work as expected.
- The goal of unit testing is to isolate each part of the programmer and show that individual parts are correct in terms of requirements and functionality.
- unit tests are basically written and executed by software developers.
- White box texting method is used for executing the unit test.
Advantages of unit testing
- Issues are found at early stage,the issues can be found very early and can be resolved then and there without impacting the other piece of codes.
- Unit testing helps in maintaining and changing the code. chances of impact of changes to any other code gets reduced.
- Since the bugs are found early in unit testing hence it also helps in reducing the cost of bug fixes.
- Unit testing helps in simplifying the debugging process.
Unit testing tools
- J Unit
is a framework that I use for writing both unit and integration tests. it is the most popular testing framework for Java
programming language
- Mockito is the most popular mocking framework for writing unit tests.
- Db Unit is a JUnit extension that can be used to initialize the database into a
known state before each integration test and ensure that the database
contains the correct data
Today we'll learn what are the main levels of testing.Actually there are different levels during the process of testing. In this post, a brief description is provided about these levels.
Levels of testing include different methodologies that can be used
while conducting software testing. The main levels of software testing
are,
- Functional Testing
- Non-functional Testing
Functional Testing
This is a type of black-box testing that is based on the
specifications of the software that is to be tested. The application is
tested by providing input and then the results are examined that need to
conform to the functionality it was intended for. Functional testing of
a software is conducted on a complete, integrated system to evaluate
the system's compliance with its specified requirements.
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
- Regression Testing
- Alpha Testing
- Beta Testing
Non-Functional Testing
Non-functional testing involves testing a software from the requirements
which are nonfunctional in nature but important such as performance,
security, user interface, etc.
- Performance Testing
- Usability Testing
- Security Testing
- Portability Testing
Software Testing Life Cycle (STLC) defines the steps/ stages/ phases in testing of software.
Like SDLC, STLC has fixed phases.
- TEST PLANNING – Preparing the test strategy & planning
- TEST DEVELOPMENT – Creating the testing environment
- TEST EXECUTION – Writing the test cases/Creating & Executing the Test Script
- RESULT ANALYSIS – Analysis result and Bug report
- BUG TRACKING – Analyze Bugs and application errors
- REPORTING – This is a post conditional process which involves collecting data from end users
With respect to the software, there are three classifications of software defects or bugs as they are more commonly referred as,
Software Error
Software errors are sections of the code that are partially or totally incorrect as a result of a grammatical, logical or other mistake made by a systems analyst, a programmer, or another member of the software development team.An error can be a grammatical error in one or more of the code lines,or a logical error in carrying out one or more of the client’s
requirements.An error may or may not be detected during the coding or
testing of the program before it is released to a customer.
Software Fault
Software faults are software errors that cause the incorrect
functioning of the software during a specific application A software fault occurs as a result of an error that remains in the executing program However, not all software errors become software faults.Not all faults however are detected and the software may continue executing without any obvious problems.There are cases where software faults go undetected for many years of a programs existence
Software Failure
Software faults become software failures only when they are “activated”, that is, when a user tries to apply the specific software section that is faulty. Thus, the root of any software failure is a software error.
What is Software Quality Assurance?
SQA is an ongoing process within the development life cycle(SDLC) that routinely checks the developed software to ensure it meets desired quality measures.
SQA is based on planning and the application of a variety of actions that are integrated into all the stages of the software development process. - IEEE Definition.
-
SQA helps ensure the development of high-quality software.
- SQA practices
are implemented in most types of software development.
- SQA incorporates and implements software testing methodologies to
test software.
- SQA
processes tests for quality in each phase of development until the
software is complete.
- With SQA, the software development process moves
into the next phase only once the current/previous phase complies with
the required quality standards.
- SQA generally works on
industry standards that help in building software quality guidelines
- These standards include the ISO 9000 and CMMI (capability maturity model integration )
SQA Objectives
- Assuring the software will conform to functional technical requirements.
- Assuring the software will conform to managerial scheduling and budgetary requirements
- Initiating and managing of activities for the improvement and greater efficiency of software development and SQA activities.