Project 1 - V&V SW Analysis - I
Quetion: Write a Test plan to test features of a new mobile phone (Blackbox test).
What is testing?
Testing is a process where functional and non-functional attributes of both software and hardware are checked to make sure that the final product is free of defects. Embedded testing validates if the final product (of embedded hardware and software) fulfills the business requirements.
Methods of testing:
Black Box testing:
Black box testing involves testing a system with no prior knowledge of its internal workings. A tester provides an input, and observes the output generated by the system under test. This makes it possible to identify how the system responds to expected and unexpected user actions, its response time, usability issues and reliability issues.
Black box testing is a powerful testing technique because it exercises a system end-to-end. Just like end-users “don’t care” how a system is coded or architected, and expect to receive an appropriate response to their requests, a tester can simulate user activity and see if the system delivers on its promises. Along the way, a black box test evaluates all relevant subsystems, including UI/UX, web server or application server, database, dependencies, and integrated systems.
White box testing:
White box testing is an approach that allows testers to inspect and verify the inner workings of a software system—its code, infrastructure, and integrations with external systems. White box testing is an essential part of automated build processes in a modern Continuous Integration/Continuous Delivery (CI/CD) development pipeline.
White box testing is often referenced in the context of Static Application Security Testing (SAST), an approach that checks source code or binaries automatically and provides feedback on bugs and possible vulnerabilities.
Regression Testing:
Regression testing is a black box testing techniques. It is used to authenticate a code change in the software does not impact the existing functionality of the product. Regression testing is making sure that the product works fine with new functionality, bug fixes, or any change in the existing feature.
Regression testing is a type of software testing. Test cases are re-executed to check the previous functionality of the application is working fine, and the new changes have not produced any bugs.
Regression testing can be performed on a new build when there is a significant change in the original functionality. It ensures that the code still works even when the changes are occurring. Regression means Re-test those parts of the application, which are unchanged.
Regression tests are also known as the Verification Method. Test cases are often automated. Test cases are required to execute many times and running the same test case again and again manually, is time-consuming and tedious too.
What are test cases?
A test case is a document, which has a set of test data, preconditions, expected results and post conditions, developed for a particular test scenario in order to verify compliance against a specific requirement.
Test Case acts as the starting point for the test execution, and after applying a set of input values, the application has a definitive outcome and leaves the system at some end point or also known as execution post condition.
Attributes of test cases:
- Test case ID
- Verification method
- Testing status
- Responsible team
- Maturity
- Module name
- Pre-condition
- Test procedure
- Expected result
- Actual result
- Test method
- Test responsible
- Test designer
- Manual Automation
- Safety integrity level
- Priority
- Release
- Valid until release
- Customer demo
- Hardware variant
- Reuse
- Test suit
Testing Code:
if(owner long pressed Power button == 1)
{
The phone shall Switch On;
Company logo at the centre of screen;
}
else if (Customer pressed the power button ==1)
{
The phone shall Switch On;
Apps icon present in grid;
}
else if (Power_on ==1)
{
First icon “Call the phone” at the bottom bar of screen;
Second icon “Dictionary” at the bottom bar of screen;
}
else if (Call the phone == 1)
{
Contacts visible on chronological order;
}
else if (Dictionary == 1)
{
Search bar appear at the middle of the screen;
}
else if((Power On) && (long pressed Power On) ==1)
{
Switch off the phone;
Display “Good-Bye” message;
}
else if(Font is calibri (body) ==1)
{
The size of font is 12;
}
else if(Touch)
{
The UI to be touch responsive;
}
else if(No hard buttons)
{
The phone must be touch screen;
}
Test Cases:
US-1)
Test Case 1: Power button long pressed: phone shall switch on with a company logo at the centre of the screen.
Test Case 2: Power button not pressed: The phone remained switched off.
US-2)
Test Case 1: Power button pressed: phone is switched ON and all icons of the APPS shall be present in the grid.
Test Case 2: Power button not pressed: The phone remained switched off.
US-3)
Test Case 1: Phone is powered ON: The "call the phone" icon as the first icon at the bottom bar of my screen.
Test Case 2: Phone is powered OFF: The phone screen is blank.
US-4)
Test Case 1: Phone is powered ON: The "Dictionary" icon as the second icon at the bottom bar of my screen.
Test Case 2: Phone is powered OFF: The phone screen is blank.
US-5)
Test Case 1: Clicked on Call the phone: All the contacts shall be visible based on chronological order.
Test Case 2: Not clicked on Call the phone: Nothing happened.
US-6)
Test Case 1: Clicked on Dictionary: A search bar shall appear at the middle of the screen.
Test Case 2: Not clicked on Dictionary: Nothing happened.
US-7)
Test Case 1: Power button long pressed: Phone shall be switched off saying "Good-Bye” Message.
Test Case 2: Power button not pressed: The phone remained switched On.
US-8)
Test case 1: The font if calibri (Body) and size 12.
US-9)
Test case 1: The UI is touch responsive: The response time is very less.
Test case 2: The UI is not touch responsive: The response time is more.
US-10)
Test case 1: Phone has no hard buttons: The phone is Touch screen.
Test case 2: Phone has hard buttons: The phone is not Touch screen.