Client-side testing refers to the process of testing the performance and functionality of a web application or software in the client's environment. This type of testing is typically performed on client-side applications like mobile apps and websites.
Client-side applications usually have the following common characteristics:
Serves a Single User at a Time: The user object is provided to the application at initialization time. For example, in the case of Statsig, the SDK makes a single network request to the Statsig server to fetch all the feature gates and experiment values for the given user. This way, checking feature gates or experiments uses local values rather than issuing more network requests, and every event log is associated with the same user implicitly.
Not in a Secure Environment: Client-side applications operate under the assumption that everything is public. For instance, Statsig provides client API keys for use in client SDKs, and the values their server returns about your features and experiments are all public.
Statsig takes advantage of the single-user characteristic and provides experiments at the device level. This ensures that users get a consistent experience before and after sign-in/up, as well as getting events generated post-sign-in/up attributed correctly. Many customers find this feature useful when running experiments on improving their apps’ sign-up flow.
Let's say you're running an experiment to test a new landing page design. You can use Statsig's client-side SDK to check if the feature gate for the new design is on for a particular user. If it is, you show the new landing page; if not, you show the old one. This allows you to test the new design with a subset of your users, gather data on its performance, and make informed decisions based on the results.
Remember, client-side testing is crucial for ensuring that your application provides a seamless and enjoyable user experience across different environments.