As you continue working as IT manager for HWE Accessories, you’ll work this week to compile components developed throughout this course and create a post-implementation plan. Finalize your business

Introduction

This is a system testing document for the HWE Accessories e-commerce website. The document will look at how the e-commerce website will be tested, and it will contain black-box testing, white box testing, environment, security testing, user acceptance testing (UAT), and lastly, unit testing. Let us start by looking at black-box testing.

Black Box Testing

According to Johnson (2020), black-box testing is a “broad category that includes a variety of techniques and technologies that check software from the outside without scanning the code”. Johnson (2020) adds that black box testing is the testing of an application without knowing the internal working and structure of that application. Johnson (2020) says that black box testing can be done on several levels, including system testing, unit testing, integration testing, or acceptance testing. Black box testing looks at the input supplied to the application and the output expected (Johnson, 2020). The types of black-box testing are non-functional testing, functional testing, and regression testing.

Functional testing

Functional testing is the testing of specific functions of a system. In our system, we will test whether the payment system is working as expected and whether the payment system is secure. We will also check whether the registration functionality is working as expected i.e., it can register new users and only authorized users can access the “user dashboard”.

Non-functional testing

Non-functional testing is the testing of other aspects such as performance, usability, stress, compatibility, etc. (Johnson, 2020). We will test whether the website works well on mobile devices, how fast it loads on mobile devices, whether it can be accessed with ease by blind and even color-blind people, and usability in general.

Regression testing

Regression testing is done after a system upgrade, version update, and maintenance and its purpose is to check whether the changes have affected the non-functional and functional aspects of the system (Johnson, 2020). We will perform regression testing after updating plugins, website templates, and underlying software such as Content Management System (CMS) e.g., WordPress, and database e.g., MySQL database.

White Box Testing

According to Thomas (2020), white-box testing is the testing of “data structures, code structures, and internal design of application software”. Thomas (2020) adds that white box testing is also known as clear box testing, open box testing, and glass testing. Thomas (2020) says that testers performing white box testing need to understand programming. White box testing can be performed on various levels of testing such as unit testing, integration testing, regression testing, etc. and its main purpose is to analyze whether the code is well-formatted and supports performance, analyze security issues from the code, analyze loopholes from the entire code, etc. The people responsible for white box testing are the quality assurance testers from the third company that is responsible for designing and developing the website.

Functional Testing

According to Shah (2018), functional testing is a “type of black-box testing whereby each part of the system is tested against functional specification/ requirements”. Under functional testing, we will look at various functions such as whether the payment processing is working as expected, whether the payment processing process issues an alert to the user when he/she has entered the wrong card number, whether the payment processing system informs the user when there is no money in his/her account, the registration process of users, whether the system allows authorized users to log in and issue alert message when wrong password or username is entered, etc.

Environment

According to Hamilton (2021), a test environment is a “setup of software and hardware for the testing teams to execute test cases”. There will be a testing environment where code done by programmers will be integrated and tested on that server. When the website is finished and ready to be deployed it will be uploaded to the production server. The testing environment will be a true replica of the production environment and the only difference will be that the testing environment has test cases.

Security Testing

According to Zola (2020), security testing is a “type of software testing that’s deployed to identify vulnerabilities that could potentially allow a malicious attack”. Penetration testing will be performed by the company developing the website to ensure that vulnerabilities are identified and fixed before the website goes live. The security areas that will be looked at are SQL injection, Cross-site scripting, Distributed Denial of Service, etc.

User Acceptance Testing (UAT)

According to Kariuki (2021), user acceptance testing is done before the software is taken to live production and its purpose is to check whether it meets business requirements. This is done by end-users (Kariuki, 2021). It is the responsibility of the company designing and developing the website to select end-users who will perform user acceptance testing before the website is deployed to the production server.

Unit testing

According to Sherrif (2020), unit testing is a “type of software testing where you test each of your code units (the smallest functioning part of your code – typically an individual method, function, or class) as independently as possible to ensure they behave as they are expected to”. It is the responsibility of the company designing and developing the website to perform unit testing. Automated tools will be used to perform unit testing and a good example is JsLint which will be used to test JavaScript code.

References

Hamilton, T. (2021). Test environment for software testing. Guru99.

https://www.guru99.com/test-environment-software-testing.html

Johnson, P. (2020). Black box testing: what you need to know. WhiteSourceSoftware.

https://www.whitesourcesoftware.com/resources/blog/black-box-testing/

Kariuki, B. (2021). How to carry out effective user acceptance testing. Section.

https://www.section.io/engineering-education/how-to-carry-out-effective-user-acceptance-testing-uat/

Shah, H. (2018). What is functional testing? Explained with test cases and example. Simform.

https://www.simform.com/blog/functional-testing/

Sherrif, Q. (2020). Introduction to unit testing. Section.

https://www.section.io/engineering-education/software-testing-part1/

Thomas, S. (2020). Understanding white box testing. Einfochips.

https://www.einfochips.com/blog/understanding-white-box-testing/

Zola, A. (2020). What’s the role of security testing in software development? Information-age

https://www.information-age.com/whats-role-security-testing-software-development-123487978/